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)
- first exposure, tinkering
- solving small problems with control structures
- solving medium problems that other people have already solved
- building large applications using code that other people have written