developmental stages of a computer programmer

if there were stages marking one’s growth as a programmer (aka hacker, coder), i’d be in the one where the programmer enjoys writing code to do low-level backend tasks that someone has probably already written.

i started working on a database abstraction layer before i left for ghana, basically a bunch of objects that my financial application uses to manipulate data in a database. but i’m not just building the objects that represent actual tables in my database, i’m building the underlying database interface object that they all inherit, which abstracts the difference between SQL inserts and updates, and in its latest incarnation, implements post-insert/update/delete trigger functionality. it’s pretty cool.

in a conversation with patrick, i mentioned that i feel like i’m giving myself a mini-computer science education. except my limited experience with computer science never seemed to focus on this art and evolution of programming. if i ever go back to school, i would like it to be more like art school for programmers. (does such a school exist? are there any good books on computer science/programming pedagogy? one i’ve already read and recommend is esr’s how to become a hacker.)

i think the next stage of development is one where i feel more comfortable putting together blocks of code written by other people to solve larger problems, requiring an almost intuitive understanding of how their code functions based on my experience solving similar problems.

the developmental stages of a programmer (as i see them)

  1. first exposure, tinkering
  2. solving small problems with control structures
  3. solving medium problems that other people have already solved
  4. building large applications using code that other people have written


If you don’t already have it, get “Design Patterns” by Gamma et al (“the Gang of 4”). Design patterns allows you to do #3 on your list except not using other people’s actual code, just their well-understood and well-tested approaches to software architecture. And you can start to fit what you’ve already written into certain boxes. “Oh, that’s a Factory, that’s sort of a Proxy with some other stuff added, that’s a Singleton….”

Comp 204 goes into this stuff in formal detail. I really wish there were SILS classes that went into these things with a more informal and practical approach….

tim, have you taken comp 204? or anything with stotts? his comp 144 looks pretty cool too.

i’ll check out the book.

I was in 204 for a few weeks this fall but had to drop it due to time constraints. Damn required classes. I might try to take it again next fall. I took Comp 145 with Stotts when I was an undergrad, he’s good.


the oft-cited _code complete_ has recently come out in a new edition.

Care to Comment?

Or if you'd prefer to get in touch privately, please send me an email.


Email (optional)

Blog (optional)