10 Stages in a Programmer’s Career

·

·

StageEpiphaniesSymptoms
1: Sinclair Basic“It can do anything if you just throw enough code at it”

“One day I won’t need to remember that ‘GOSUB’ is on the ‘H’ key”
* Pinball programming
* Spaghetti code
2: Pascal“User defined functions mean I can re-design the whole language”

“Holy shit, I can actually compile to an .exe?”
* Programming yourself into a corner
* Cut ‘n Paste programming
* The “Utility” library
3: OOP“I’ll model the whole universe, beginning with hydrogen, and then I’ll write the program”* Rube Goldberg contraptions
* “Car” inherits from “Parking Lot”
* Keep putting new functions in the base class
4: Perl“My programs will be better if I can squeeze more into each line”

“Oh cool, a CPAN library that does X, that’s one more feature I must add this afternoon”
* Concise Rube Goldberg contraptions
* Debugging with print statements
* Aggregate data structures stop at “Hashtable”
* “Hey, since when did my program become an operating system?”
5: Design Patterns“Program.cs is just a compiled config file”* Abstractions to nowhere
* Patterns for Patterns sake
6: Functional Programming“You should write programs by saying what you want, not how to get it”

“All programs just transform input, even the interactive ones”
* LINQ as a new kind of obfuscation
7: Metaprogramming“Program.cs just loads the XML config file, which is where I defined all the behavior”

“Programs should know what they are”

“The architecture plan should be executable”
* Gigantic memory footprints
* Data types are forgotten in favor of XML elements
8: Statistically driven programming“Now that I’ve defined the expected function, I can use it to generate unit tests that guide a genetic algorithm to create the ideal implementation”

“Bugs should heal themselves”
9: Maturity“If we don’t really need it, I don’t have to write any code”

“Users should be given tools and training, not a pushbutton/turnkey sealed-n-seamless ‘solution’”

“If these kids were to get off my lawn, I wouldn’t have to keep fixing it”
10: Senescence“Hey kids! Get the fuck off my lawn!”