No Silver cat -v: Reflections on Trusting the Bazaar, or, Lambda and Painters Considered Harmful
There are a number of things that programmers are supposed to do, before they can consider themselves real programmers: learning C, learning touch typing, or writing an OS for a Cray 1 using only the front panel.
My advice is somewhat simpler:
Specifically, read the right stuff. For example
one all of the following classic papers:
No Silver Bullet - Essence and Accidents of Software Engineering
A great recap of the field of software engineering , its problems and the lack of a "break-through" solution. And an invitation to strongly disagree. While agreeing. Or something like that.
UNIX Style, or cat -v Considered Harmful
In this great prophecy, Rob Pike and Brian Kernighan show what is wrong with UNIX today - about a decade before things actually started to go wrong. Read this if you are in a love-hate relationship with the modern unices. Double-read this if you write software for *nix systems. Learn this by heart if you write a *nix system. Plan 9 users may skip this - they'll already know everything said here.
Reflections on Trusting Trust
If you liked Hofstadter's* Gödel, Escher, Bach*, you will love this. Ken Thompson was the man, '84 was the year, great was the hack.
The Cathedral and the Bazaar
The story of developing fetchmail as an example for the Free Software Way of Software Engineering. Good stuff. A warning beforehand: it's a typical esr essay. Stay cool and don't quit on his self-praise.
Debunking the ‘Expensive Procedure Call’ Myth, or, Procedure Call Implementations Considered Harmful, or, Lambda: The Ultimate GOTO [pdf]
Part of the "Lisp Papers" by Guy Steele and Gerald Sussman, this one is more technically involved than the rest of the list - but still an exciting read. These papers more of less form the foundation of the programming language *Scheme*. Containing great thoughts and a well-compiled introduction into the main problems of (implementing) programming languages, all of them are well worth your time.
Hackers and Painters
Maybe *the* classic Paul Graham essay. I hope that every programmer on the planet has read this one at least twice - so this is the invitation to read it a third time. If you do not know this essay: read it if you are a hacker || you want to know what hacking is || you like well-written essays || you have never read any of Graham's essays || true.
Go To Statement Considered Harmful
Dijkstra's classic note where he makes the case for structured programming. Read it - and don't just think or say you know it. Completely banning gotos, and justifying that stupidity with Dijkstra's essay is, in my humble opinion, both the most common and the most severe case of ignorance among programmers and tech leads around the world. Know Dijkstra - know your rights!
Previously: Nice Hacks 2
Next up: The Turing Machine vs. The Coffee Machine
The machine thinks that the Web-Log entries No Silver cat -v: Reflections on Trusting the Bazaar, or, Lambda and Painters Considered Harmful, The German Programming Apprenticeship - A Review, and Test Driven Development might be related to the topic so eloquently discussed above. The machine is sometimes right.