Benad's Web Site

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