Programmer Personality Test Below is the programmer’s personality test. It is based of the Myers-Briggs Personality Test and has been changed to relate to your programming personality type. This is not a joke test and is really only relevant to programmers, however anyone is welcome to take the test. There are 12 questions with 2 answers for each question and you must choose one answer from each and every question. There are no ‘right’ or ‘wrong’ answers, your answer will simply show what type of personality you have.There are two things to note in this test. The first is that you should choose the answer that best describes your feeling about a subject. You may not completely agree with the answer, however the answers are polar opposites and you must choose which end of the spectrum you best relate to. The second thing to note is that many of the questions ask what is ‘best’ or ‘better’ without any context. This is done because, like an inkblot test, your answer will be shaped based just as much on how you perceive the question as how you answer it. Good luck with the test, and if you have any questions please email me. Question 1: You’ve just been given a complex task to code. What are you most likely to do? Get straight into the task by putting in the initial code and prototyping the task. Get everyone’s feedback on the problem, discuss all the possible options, then decide the best way to approach the problem given the current situation. Question 2: Comments should be placed: To explain anything that may seem ambiguous. Only when a programmer isn’t good enough to explain themselves in variable and function names. Question 3: Where do you spend most of your time? Moving registers around or doing pointer arithmetic (or creating functions) Drawing UML diagrams (or making objects) Question 4: Who is a ‘better’ programmer? Someone who went to university/college and has at least a masters in their field. They should read as many books on a subject as they can find before starting on it. Someone who has been coding since they were 5 and simply goes by raw talent alone. Question 5: Which is the ‘best’ way to program? In assembly or straight C. I’m in complete control of what the program’s going to do. Java or any .net language. Why waste valuable time on memory management and re-inventing the wheel when someone’s handled it for you! Question 6: Approximately what % of a project should be spent in planning? ~25% – The best way to complete a task is to plan as you go. ~75% – The more planning, the less code you need to write. By the time you code, you should simply be filling in stubs. Question 7: If something needs to be done properly: Get the team together and discuss the best way of solving the problem. Then break it up and give each piece based on people’s strengths. Do it yourself. Question 8: The ‘perfect’ language will: Allow anybody in the world to program. Allow me to make the best use of systems resources. Question 9: You’ve been given a task to do that will take one man month, how big is the optimal team? 5 1 Question 10: When you program you: Shut the door and the rest of the world out. Share a desk with a peer and have group meetings often to discuss what to do next. Question 11: White space should be: Used sparingly Used everywhere Question 12: What is the ‘better’ implementation: int main() { printf("5+6=%d", 5+6 ); return 0; } 12345 int main(){ printf("5+6=%d", 5+6 ); return 0;} //////////////////////////////////////////////// // AddNumbers // param1 firstParam - The first value to add // param2 secondParam - The second value to add // return - The firstParam added to secondParam // int AddNumbers(int firstParam, int secondParam ) { // Here is some info int theReturn = firstParam + secondParam; // Now return the value return theReturn; } // Entry for program int main() { // Initialize variables int firstParam = 5; int secondParam = 6; // Call the function int returnValue = AddNumbers( firstParam, secondParam ); // Print out the value printf("%d+%d=%d", firstParam, secondParam, returnValue ); return 0; } 1234567891011121314151617181920212223242526272829303132 ////////////////////////////////////////////////// AddNumbers// param1 firstParam - The first value to add// param2 secondParam - The second value to add// return - The firstParam added to secondParam//int AddNumbers(int firstParam, int secondParam ){ // Here is some info int theReturn = firstParam + secondParam; // Now return the value return theReturn;} // Entry for programint main(){ // Initialize variables int firstParam = 5; int secondParam = 6; // Call the function int returnValue = AddNumbers( firstParam, secondParam ); // Print out the value printf("%d+%d=%d", firstParam, secondParam, returnValue ); return 0;} For a full listing of the personality types, visit the key here