Let me finish this long series (
Introduction and Parts
1,
2,
3,
4 and
5) without an audio post.
As I referred in
Part 1, what prompted me to start reminiscing about my experience and evolution as a programmer was
this post by Kragen Javier Sitaker. In one of his "phase" was "Learning How Magic and Beauty are Possible", he discovered that well-made algorithms can be beautiful. As he later started to work, he faced the realities of practical software development rather than just "beautiful" software code. Sadly, I knew many programmers that were stuck in that phase of insisting on algorithmic beauty, and do so with arrogance.
In a way, while I have great admiration for good computer scientists, I
see myself more and more becoming a kind of "elegant hacker", or
"software engineer" if I want to be pretentious. And, personally, I never really liked mathematics, regardless of my natural talent for it. My attention is more and more focused on run-time integration rather than the mathematical perfection of a few lines of code. After all, beautiful code is not always useful. I also greatly dislike "over-engineering" of code, and most forms of code generation. Small, to-the-point and modular code is what I like most. With the context of my experiences with C++ and Perl in a commercial programming environment, this should make more sense.
Practically, I'm focusing more and more my learning into technologies like the
Spring framework, run-time kernels like
OSGi, continuous integration with
Hudson, distributed version control with
Mercurial, and so on. Also, as I mentioned in the
previous part, I'm interested into higher-level scripting languages like
Groovy that run on top of the Java virtual machine. That's all I can foresee for now. For sure, though, whatever I'll try, I'll be very opinionated about it.
Published on November 28, 2009 at 10:58 EST
Older post: APJ 5: Java (transcription)
Newer post: Geek resolutions for 2010