Tuesday, December 11, 2012

Skill Of Programmer Limited by Ego?

It's very easy to be overwhelmed when programing software. At times, it seems as like there is so much to learn in order to accomplish your task. Other times, parts of a project seems so mundane that you lose interest. Overall, completing an entire program or simply learning how to program requires humility and focus. 

An excerpt from Code Complete, written by Steve McConnell, states this about the character of a programmer:

"Nobody is really smart enough to program computers. Fully understanding an average program requires an almost limitless capacity to absorb details and an equal capacity to comprehend them all at the same time. The way you focus your intelligence is more important than how much intelligence you have."

McConnell, Steve (2009-12-07). Code Complete (Kindle Locations 26572-26574). OReilly Media - A. Kindle Edition. 

This statement, in a word, summarizes my entire, at times turbulent, relationship with programming. It's a love and hate affair that has challenged me on an emotional and intellectual level. As McConnell stated, it is much more important to be able to focus your intelligence that it is to possess intelligence. That reminds me that regardless of how much one learns, one must realize that they will never be able to "know it all". To be successful, you must possess the humility to realize this fact and take steps to change your view of programming as a whole. If you allow yourself to think that you "know it all" and you don't have to keep learning, your skills, and ultimately your success, will be limited by your ego.

In addition to humility, a programmer must make a constant effort to remain curious in order to stay current with technology, one must be intellectually honest to understand their weaknesses and address any shortcomings, and one must possess the discipline to approach every task methodically and with purpose. 

McConnell accurately summarizes the necessary skills of a programmer in Code Complete, at least in my opinion. However, I believe that these skills mentioned are critical to just about any skill you wish to excel in. 


  1. Great to see you were able to get to this chapter on Personal Character. I think a lot of coping with computers is about coping emotionally with the challenges that are thrown at you, as I mentioned earlier in the course. And I think you are right that this applies to many domains, not just programming and systems analysis.

    If you were interested I could give you more detailed feedback on your turn of phrase, which occasionally undermines the great points you're making in this post, e.g. rather than "However, I believe that these skills mentioned are critical to just about any skill you wish to excel at. " I would say "However, I believe that these skills mentioned are critical to just about any domain you wish to excel in. " although I guess it's a subtle difference ...

    1. That is such a small detail, yet I can see how much a difference it makes. I need to be more careful in proof reading my posts before publishing them. Thanks for the constructive feedback!