Subj : Re: Software Job Market Myths To : comp.programming,comp.software-eng From : rem642b Date : Tue Aug 16 2005 12:45 am > From: Richard Heathfield > I wouldn't bother putting a former employer section or a > qualification section on the form. Instead, I'd put in an aptitude > test. I took a whole battery of aptitude tests several years ago, and did very well on them all, verbal/written aptitude, mechanical/spatial reasoning, and computer programming. I even found a bug in the computer programming test. There was one question where a flowchart was drawn and some of the boxes were missing their labels as to what they did, and I was supposed to pick from multiple choice what to put in those boxes. But this flow chart was incapable of solving the problem correctly in all cases no matter how the labels were put in the boxes. Maybe somebody online knows this question: You are writing software to do quality assurance testing of small object coming off an assembly line. Its OK if there are bad object every so often, but not too many. So there's a threshold where if there are fewer bad units per hundred it's just fine, and if more than another threshold the whole lot is rejected, and if between the two thresholds you take another sample or somesuch. This was nearly nine years ago so I may have forgotten some of the rules. I remember for sure two samples and something about the two thresholds. Anyway, the flowchart had a bug that couldn't be fixed except by redrawing it with different connections. The only time an actual company gave me any kind of programming aptitude test was in 1974, Four Phase Systems. They produced their own line of 24-bit-word minicomputers, with its own machine language and assembly language, and their own version of COBOL that amazingly ran on this very small (by COBOL standards) computer. There absolutely wasn't enough memory to hold the entire COBOL comipler in RAM much less also hold all the intermediary data structures needed to cross-relate anywhere something was defined or used. So the compiler had an ingenious design: It alternated between one-pass data processing, which had a large block of program and lots of data passing through but only a tiny bit of data in RAM at any one time, and sort/merge phases, which had a tiny sort/merge program and the entire batch of data to be sorted filling all the rest of RAM. Of course the COBOL compiler was written directly in assembly language for their own kind of CPU. Anyway, the programming test consisted of reading part of a technical ("principles of operation" as the analagous IBM 360 manuals were called) manual describing a subset of the instruction set, then a task to write a piece of code to perform a particular task using those instructions. Since I had programmed in IBM 1620, IBM 360 and PDP-10 assembly language already, learning all of them from "principles of operation" manuals, no tutorials neede or available), this was a cinch. So first they started me adding features to their copy/rename file utility (basically equivalent to unix cat/mv/rm all in one program). Then they had me fix some bugs in their COBOL compiler. > Anyone who rates themselves so highly that they feel insulted by > being asked to do an aptitude test... need not apply. I would be glad to take your test, providing that it emphasizes stuff I already know for the closed-book part, and stuff that is easy to find on the net (but impossible to understand and answer questions correctly unless you already basically know the ideas of what the questions are about) for the open-book/Web part of the test. > Anyone who makes no more than, say, two mistakes on the test would be > invited for interview. What topics would you want people to know for the tele-commuting programming job you are offering currenntly? In any case, I'd like a job writing the CGI program that administers your test over the Web. My SegMat module would be useful for fill-in-blank questions, which I hope are more common in your test than multiple-choice or true-false. Sorry, I don't have software to do a good job of judging answers to essay questions, although I can check if certain key words or known synomyms are there or missing as a preliminary screening and aid to the grader, and maybe provide a coaching toward the correct answer. Like maybe you ask a question that has multiple interpretations, and you didn't realize that, and some applicant takes a different meaning and answers that question, but the coach recogizes the keywords are all wrong and offers one keyword to get the applicant on the right track, after which the applicant understands the correct meaning of the question and can then answer it. The applicant then gets very good partial-credit if he/she needed only that one clue to get the correct answer. Or maybe the applicant really did have the correct answer, but used a different synomym from what you had as valid keywords. So with the clue for the correct keyword, the applicant merely replaces the wrong synonym with the correct one and leaves the rest as-is. With both original and final drafts given to you in California Election Ballot format or something similar, it would be easy for you to recognize that the applicant should get full credit. > At the interview, one thing I'd do is present the applicant with > several code fragments (probably entire self-contained routines) > written or modified /that day/ - real code intended for production - > and ask the applicant to make detailed comments on those code > fragments. Do I have to guess what the basic purpose of the code is, or is that given? I ask because sometimes slightly different code solves very different problems, and if the code has a mistake that puts it midway between the two there's no way to guess which of the two it was really supposed to do. > For each one, I'd ask: > o What does it do? > o What is good about it? > o What is bad about it? > o How could it be fixed? Hey, I'd like to tackle something like that. Please post a couple such examples for me to try. (Um, wait, what language is this in? I don't know x86 assembler, sorry, and I don't have an APL font. Hopefully it's in some language I can both view and understand?) > I suspect that this would be a far more effective strategy than > relying on the experience people claim on their CVs. Here in America we use resumes not CVs. You must be in Europe. Let me check: 86.130.20.98 BT-CENTRAL-PLUS btbroadband.com Peter Collier 44 1473 336340 Yeah, Great Britain. Unfortunately your RIPE WHOIS record doesn't say what city or even what country (Eng/Scot/Wales/NorIreland) your ISP is located in. .