perjantai 27. kesäkuuta 2014

"Old" and "young" programmers

I started programming more than 20 years ago now, maybe 25. I don't really count the early meddling with Sinclair Spectrum's basic, or later with GW Basic programming since although I was learning something I didn't really have any grasp on topics so I don't think that really counts. It was only later when I "outgrew" those and moved onto Pascal (Turbo Pascal more specifically) I started really developing as developer.
What originally pulled me in programming was games (surprise! yeah, not really). I just wanted to create something like Ultima V (first game I really finished, albeit with some external help since my English was pretty bad at the time). Back then I was just struggling with very basics of GW Basic so anything serious was way out of my reach, but anyway, I dived in with enthusiasm, never really planning ahead, just starting to write code with nothing more than vague, not-really-fully-formed idea what I wanted to do. And that was fun!

Granted, ofter I ran in unexpected problems, like after I wrote a full game engine but kinda missed writing in the actual game. But it looked good (and still does, even today, even if it's just 320x200).

Then came the professional era. Apparently some people have energy to work with their hobby projects after day of work, but I've found out that I'm not one of them. After full day of coding (and I was full-time coder for a long time) I just didn't have any energy for side projects.

Fast forward to this day. Occasionally there are times there's no need to even think about the code at work so after day or two of that I find myself interested of working on my own projects again. There are few ideas (games) I've been toying with, in my head, for a long time so now that I could do hobby programming again I started with them.

But now there's something fundamentally different.

I just can't dive in anymore like in those days long gone. I need a plan.

That's the difference. The young me could just dive in, start writing code, then rework (I don't want to use work "refactor" here, that concept is too sophisticated for situation being described) until it did what was needed - and typically nothing more.

The old me just can't do that. Here is problem at hand - the game is in 3D world with objects, both static and moving - and right here my mind immediately starts breaking this in smaller parts. World itself, models moving in it, how to make it efficient, and everything related...The depth of the problem is opening in front of my mind eyes, and seeing everything that needs to be done appears to be a very strong demotivator. So much that needs to be done before there is anything... And this is ignoring all the cool stuff shaders can do that I'm not even aware yet.

I didn't really realize this when doing work stuff. Most likely because the change has been gradual. But since I took a very long break with hobby projects the change there is quite glaring, which made me to come to this (most likely overly simplified) realization:

Young coders will dive straight in with enthusiasm. You give them a problem and they go for it, producing a lot of code in short time. Lots of code, lots of check-ins, lots of hours worked and low pay. As a company you'll love these young guys!

Old coders plan. You give them a problem and few moments later they come back to ask questions. Questions you didn't really want to hear, like operating constraints. Details that should be irrelevant by business standards. If they are really experienced they want them in writing, as official specifications. Damn these annoying geezers, why can't they just do what they're told...

Do I regret becoming "old"? Hell no. Life's too short to (re)write same poorly thought out code half a dozen times.

Albeit sometimes I do miss the simpler times.

Ei kommentteja:

Lähetä kommentti