Summary/Excerpts of (and not a substitute for) the GNU Free Documentation License Version 1.2:

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Having read this essay, I can't help but to wish that I had read it when I first started my career as a professional programmer. The author has done a great job of summarizing so many things we need to know as a programmer, from a programmer perspective. Started from the basic technical skills every programmer must acquire, to managerial skill one must have to manage a team of programmers (some of us don't wish to stay as a programmer for the rest of our career).

Emphasizes are put on the ethic of working as a programmer and as a member of the team. The requirement analysis may blurry, the individual team member skill may not be equal, and deadlines may be impossible, but that's all of it. We can't really complain because all of those must be accepted as the natural of professional programming. Inside this essay you'll find tips on how to learn communication language among your peers, how to talk to non-engineers, and how to deal with difficult people. As programmers are also human with their personal lives and personal problems, this essay also show us how to take a break when needed, and how to recognize when to go home, and how to communicate and negotiate with your boss, so that you won't end up working heroically for 50 to 60 hours a week.

All said and done, this is a very nice essay, one that should be a mandatory for wannabe and professional programmers. And if you're happened to be a manager who supervise a hive of programmers, this essay should provide you with an useful insight into their beautiful minds and habits.