Programming

Ah, programming. The source of inspiration, irritation, intrigue, & suspense.

I'm originally schooled in the Object–Oriented way, with Java as the language. Very quickly I found out that while I enjoy programming, I don't enjoy navigating projects so large and complex I can't possibly fit them into my head in their entirety. Projects with multiple nested hierarchies of libraies, .jar archives, and XML config files.

(I also really dislike having to type "public static void" every time I need to... you get the idea).

Oh, and while I'm at the topic, a word about "the passionate programmer". That phrase, to me, reeks of lack of taste. Programming is an unemotional, cerebral, analytic activity. The lifestyle isn't something to be excited about, either: welcome to death by the desk.

I've been obsessed by a programming problem. I've daydreamed in code. I've had occassions when I went to bed after having racked my brains about a problem for the whole day, and went straight back to the computer first thing after waking up.

Obsessed? Maybe. Passionate? No — it's not emotional. "A passionate programmer" is as much of an oxymoron as an "analytical dancer".

Programming, to me, is a way to get the job done.

To stay continually excited about programming, one needs to: 1) focus on solving real–world business problems; 2) cultivate a "beginner mind" and learn as much about the theoretical underpinnings of Computer Science as possible: computability theory, data structures & algorithms, the works.

I sincerely think that every programmer needs a period in their life where he or she is working in another industry entirely, and doing programming as a hobby. That way, one can focus on whatever one thinks is fun and challenging, and pursue one's interests. Nothing improves one's ability like pursuing such topics.

The cool thing about programming is being a perpetual student. Once you accept the fact that no matter how much you know, you really know very little, you can relax and enjoy the journey.

And this, my friends, is how I stopped worrying and started programming.

In this category

  1. Why I am excited about Light Table
  2. Test-driven development: two scenarios
  3. Some screencasts I'd like to see
  4. Some self-published programming books worth knowing about
  5. Lisp and Brain Neurochemistry
  6. Hands-down the best introductory Clojure video tutorial
  7. On the shoulders of...
  8. Let us kill SOPA before damage is made
  9. Why I support Wikipedia
  10. Problem-solving with Automata-Based Programming