I don't know why I haven't found this before, but Robert Read's* How to be a Programmer (PDF version) is well worth your time:
To be a good programmer is difficult and noble. The hardest part of making real a collective vision of a software project is dealing with one's coworkers and customers. Writing computer programs is important and takes great intelligence and skill. But it is really child's play compared to everything else that a good programmer must do to make a software system that succeeds for both the customer and myriad colleagues for whom she is partially responsible. In this essay I attempt to summarize as concisely as possible those things that I wish someone had explained to me when I was twenty-one.
This is very subjective and, therefore, this essay is doomed to be personal and somewhat opinionated. I confine myself to problems that a programmer is very likely to have to face in her work. Many of these problems and their solutions are so general to the human condition that I will probably seem preachy. I hope in spite of this that this essay will be useful.
Computer programming is taught in courses. The excellent books: The Pragmatic Programmer, Code Complete, Rapid Development, and Extreme Programming Explained all teach computer programming and the larger issues of being a good programmer. The essays of Paul Graham and Eric Raymond should certainly be read before or along with this article. This essay differs from those excellent works by emphasizing social problems and comprehensively summarizing the entire set of necessary skills as I see them.
In this essay the term boss to refer to whomever gives you projects to do. I use the words business, company, and tribe, synonymously except that business connotes moneymaking, company connotes the modern workplace and tribe is generally the people you share loyalty with.
Welcome to the tribe.
Robert and I have the same set of favorite books, but we also agree that most of the problems in software development aren't technical-- they're social. His technical advice is solid, but I recommend skipping directly to the team and personal skill sections, which are exemplary.
Robert's essay is so good, in fact, it's a shame he isn't selling it in book form.
* No, not the Brady Bunch Robert Reed. Robert Read has a blog and a homepage.
Posted by Jeff Atwood View blog reactions
« New Job at Vertigo Software Cognitive Diversity »
What's funny is that I run into this essay via del.icio.us few days ago... and skipped it :(
Drazen Dotlic on May 4, 2005 02:20 PMHey Jeff, I'm enjoying reading this essay, thanks for the pointer!
Thomas Williams on May 12, 2005 10:34 PMLike Drazen, it sat in my "favorites" for a while until I got around to it. Definitely worth the read, and certainly better than I expected from an author I had never really heard of.
Jeff Atwood on May 13, 2005 02:32 AMI've now had this one marked to read and finally getting to it. Like Thomas, thanks for the pointer. Now, how to get co-workers to read it. :-)
Erik Lane on May 17, 2005 12:51 AM| Content (c) 2008 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |