Cognitive Dissonance in Programming
11–20 of 51 posts
Re: Cognitive Dissonance in Programming
#12I freely admit I'm defective. Software development is a constant cycle of solving problems and then solving the problems created by solving the previous problems. Fortunately, I love solving problems.
For example, if you’ve ever written a “perfectly good, you know it has to work piece of code” and spent hours trying to prove that the compiler is wrong, or some other crazy reason. If you are humble about it, you can more quickly accept that you might have made a mistake and possibly find it more quickly.
This class of bug is, to me, the “it’s impossible for this code to break” type, where it really is impossible and you made an obvious mistake. In the rare cases where it is a serious problem and not your fault (also possible, but quite rare), it’s important to know how to do the hard work to debug deeply.
A skilled programmer knows both how to trust their tools, question themselves, but also how to question, build or fix their tools if necessary. I think patience/persistence and confidence/humility gained through experience, combined with being creative, thoughtful, open-minded and somewhat of a perfectionist (but not completely one!) is what it takes to code.
Re: Cognitive Dissonance in Programming
#13> A programmer who truly sees his program as an extension of his own ego is not going to be trying to find all the errors in that program. On the contrary, he is going to be trying to prove that the program is correct – even if this means the oversight of errors which are monstrous to another eye. From the original 1989 "Version 1.0" of The Hacker Test[1]: 0477 Ever spend ten minutes trying to find a single-character…
Re: Cognitive Dissonance in Programming
#14I wanted to be a programmer from the age of 8. I noodled around a bit in BASIC, and then taught myself C at around 15 or 16. I was easily into my 20s before I could even reasonably claim that I understood C. I've turned 40 this year and even though I've written a lot of code in the last 30 years, I still don't really feel like I'm a good programmer, so I tend to always blame myself before the libraries or the compile…
I've learned not to beat myself up about it.
Re: Cognitive Dissonance in Programming
#15It is an interesting perspective, but I find it flawed. First of all, the author doesn't seem to understand artists, so those analogies fail. Secondly the comment of: "But the one thing we never seem to hear* is a simple 'I goofed again.'" tells me they haven't worked with many senior devs. I find once devs have enough experience to not have self-esteem issues over their own skills, there is little hesitation to admi…
Re: Cognitive Dissonance in Programming
#16And so on.
Re: Cognitive Dissonance in Programming
#17This is a great article and more people should read it. I was wondering why the sentences sound so familiar and it turns out it's heavily plagiarised (as in, a substantial number of sentences and paragraphs are lifted verbatim from) Gerald Weinberg's book The Psychology of Computer Programming (listed at the end as one of the "references"). Read this book; much of it is still very applicable decades later (and the ex…
Re: Cognitive Dissonance in Programming
#18> A programmer who truly sees his program as an extension of his own ego is not going to be trying to find all the errors in that program. On the contrary, he is going to be trying to prove that the program is correct – even if this means the oversight of errors which are monstrous to another eye. From the original 1989 "Version 1.0" of The Hacker Test[1]: 0477 Ever spend ten minutes trying to find a single-character…
Re: Cognitive Dissonance in Programming
#19It is an interesting perspective, but I find it flawed. First of all, the author doesn't seem to understand artists, so those analogies fail. Secondly the comment of: "But the one thing we never seem to hear* is a simple 'I goofed again.'" tells me they haven't worked with many senior devs. I find once devs have enough experience to not have self-esteem issues over their own skills, there is little hesitation to admi…
Re: Cognitive Dissonance in Programming
#20I thought this was an interesting article, but in real life I'm not quite sure how big the problem of programmers being unwilling to admit their own mistakes is. A checkin goes through many checks and eyes in which mistakes are bound to surface, and not admitting to those mistakes is not really an option most of the time. What's more, they are different kinds of checks, so if you can find an excuse for one thing tell…
Cognitive dissonance appears to be a very big problem with security - people not aggressively auditing their systems, rationalizing away concerns, etc.