Signs that you shouldn't be a programmer
Signs that you shouldn't be a programmer
The following may not have any remedies if you still suffer from them after taking a programming course in school, so you will stand a better chance of advancing your career by choosing another profession.
1. Inability to determine the order of program execution
Symptoms
a = 5
b = 10
a = b
print a
You look at the code above and aren't sure what number gets printed out at the end
Alternative careers
Electrician
Plumber
Architect
Civil engineer
Artist
2. Insufficient ability to think abstractly
Symptoms
Difficulty comprehending the difference between objects and classes
Difficulty implementing design patterns for your program
Difficulty writing functions with low cohesion
Incompetence with Regular Expressions
Lisp is opaque to you
Cannot fathom the Church-Turing Thesis
Alternative careers
Contract negotiator
Method actor
3. Collyer Brothers syndrome
Symptoms
Unwilling to throw away anything, including garbage
Unwilling to delete anything, be it code or comments
The urge to build booby-traps for defense against trespassers
Unwilling to communicate with other people
Poor organization skills
Alternative careers
Antique dealer
Bag lady
4. Dysfunctional sense of causality
Symptoms
You seriously consider malice to be a reason why the compiler rejects your program
When called on to fix a bug in a deployed program, you try prayer
You take hidden variables for granted and don't think twice about blaming them for a program's misbehavior
You think the presence of code in a program will affect its runtime behavior, even if it is never invoked *
Your debugging repertoire includes rituals like shining your lucky golf ball, twisting your wedding ring, and tapping the nodding-dog toy on your monitor. And when the debugging doesn't work, you think it might be because you missed one or didn't do them in the right order
* - Memory constraints, shifted offsets, and compiler peculiarities notwithstanding. See discussion on Reddit. Judge accordingly.
Alternative careers
Playing the slot machines in Vegas
Contrapositives
What Makes a Good Programmer by Cam Riely
5. Indifference to outcomes
Programming could still be a hobby for you, but it would be in society's best interests to defend itself against your entry into the world of professional software development.
Symptoms
You aren't interested in fixing a bug that can be worked around by rebooting the computer
Your installation program silently deploys unsolicited third party programs that are unrelated to the function of yours *
You don't use any ergonomic model when designing user interfaces, nor do you have any interest in usability studies
Your program exhibits pretension and grandeur beyond its utility, eg: displaying splash screens over active programs while loading in the background, or placing multiple launch icons in premium desktop locations *
Your program produces output to be read by another (eg: a browser), or implements a network protocol, and relies on the other party's software to be significantly tolerant to spec violations
You write busy-wait loops even when the platform offers event-driven programming
You don't use managed languages and can't be bothered to do bounds checking or input validation
Your user interfaces do not make the difficulty of accidentally invoking a function proportionate to its destructiveness (eg: the "Delete Database" button is next to "Save", just as big, has no confirmation step and no undo)
You don't use whitespace, indentation or comments
* - These are actually imposed by management more often than by the programmer, who only implements them. We'd still group them together for the sake of this self-test, though, and at the most suggest that one seek employment at a better firm, while the other goes back to business school to learn less destructive ways of making a profit.
Alternative careers
Debt collection
Telemarketing
Signs that you shouldn't be a programmer
The following may not have any remedies if you still suffer from them after taking a programming course in school, so you will stand a better chance of advancing your career by choosing another profession.
1. Inability to determine the order of program execution
Symptoms
a = 5
b = 10
a = b
print a
You look at the code above and aren't sure what number gets printed out at the end
Alternative careers
Electrician
Plumber
Architect
Civil engineer
Artist
2. Insufficient ability to think abstractly
Symptoms
Difficulty comprehending the difference between objects and classes
Difficulty implementing design patterns for your program
Difficulty writing functions with low cohesion
Incompetence with Regular Expressions
Lisp is opaque to you
Cannot fathom the Church-Turing Thesis
Alternative careers
Contract negotiator
Method actor
3. Collyer Brothers syndrome
Symptoms
Unwilling to throw away anything, including garbage
Unwilling to delete anything, be it code or comments
The urge to build booby-traps for defense against trespassers
Unwilling to communicate with other people
Poor organization skills
Alternative careers
Antique dealer
Bag lady
4. Dysfunctional sense of causality
Symptoms
You seriously consider malice to be a reason why the compiler rejects your program
When called on to fix a bug in a deployed program, you try prayer
You take hidden variables for granted and don't think twice about blaming them for a program's misbehavior
You think the presence of code in a program will affect its runtime behavior, even if it is never invoked *
Your debugging repertoire includes rituals like shining your lucky golf ball, twisting your wedding ring, and tapping the nodding-dog toy on your monitor. And when the debugging doesn't work, you think it might be because you missed one or didn't do them in the right order
* - Memory constraints, shifted offsets, and compiler peculiarities notwithstanding. See discussion on Reddit. Judge accordingly.
Alternative careers
Playing the slot machines in Vegas
Contrapositives
What Makes a Good Programmer by Cam Riely
5. Indifference to outcomes
Programming could still be a hobby for you, but it would be in society's best interests to defend itself against your entry into the world of professional software development.
Symptoms
You aren't interested in fixing a bug that can be worked around by rebooting the computer
Your installation program silently deploys unsolicited third party programs that are unrelated to the function of yours *
You don't use any ergonomic model when designing user interfaces, nor do you have any interest in usability studies
Your program exhibits pretension and grandeur beyond its utility, eg: displaying splash screens over active programs while loading in the background, or placing multiple launch icons in premium desktop locations *
Your program produces output to be read by another (eg: a browser), or implements a network protocol, and relies on the other party's software to be significantly tolerant to spec violations
You write busy-wait loops even when the platform offers event-driven programming
You don't use managed languages and can't be bothered to do bounds checking or input validation
Your user interfaces do not make the difficulty of accidentally invoking a function proportionate to its destructiveness (eg: the "Delete Database" button is next to "Save", just as big, has no confirmation step and no undo)
You don't use whitespace, indentation or comments
* - These are actually imposed by management more often than by the programmer, who only implements them. We'd still group them together for the sake of this self-test, though, and at the most suggest that one seek employment at a better firm, while the other goes back to business school to learn less destructive ways of making a profit.
Alternative careers
Debt collection
Telemarketing