Aptitude tests for computing jobs broadly fall into three groups:
- A standard battery of tests assessing competencies such as numerical reasoning, logical reasoning and non-verbal reasoning which are required in technical computing jobs.
- A hybrid test comprising of elements involving logical reasoning, numerical problem solving, pattern recognition, ability to follow complex procedures and attention to detail. Neither of these first two types of test require any knowledge of programming
- A programming simulation involving pseudo-code, control structures (e.g. loops), look-up tables, sets, arrays, boolean true/false, looping and other programming structures. These are given to experienced programmers to assess their competence.
The test given here is a hybrid test (type 2 above). Hybrid tests involve:
- Logical thinking and problem solving.
Numerical problem solving is analogous to the trouble shooting required in programming - Pattern and syntax recognition. Involves recognizing similarities and differences in strings of characters and numbers, understanding graphical representations of procedures and symbols, finding which element does not match the corresponding elements and information checking and attention to detail: a single misplaced semi-colon or bracket can crash a program.
- Ability to follow complex procedures. Involves following coded instructions and rules, sequencing events into a logical order, sorting and manipulating lists of items according to specific instructions, deciding how one set of instructions affects another and interpreting flow diagrams.
Other attributes required by programmers and other computing professionals
- Time management.
- Creativity.
- Teamwork.
- Determination
- Clear, concise documentation: software development involves writing things down and looking them up again.
- Ability to quickly learn new skills and update existing ones by teaching yourself.
Also a receptivity to new ideas: computing is a fast changing environment! - Programmers also need to be reasonably quick coders, although accuracy is more important than speed.