To me, programming is sometimes like playing Lego
…with fractal bricks.
The trick is to know when to end refining suber-sub-bricks to build the sub-bricks needed for your bricks.
To me, programming is sometimes like choosing a pair of ski shoes
…at the rental store.
Those colors sucks, when that shiny foot-molded pair over there wouldn’t get me blisters.
To me, programming is sometimes like playing crosswords on the newspaper
…which was found laying on the subway seat you’re on.
It’s much less fun when that guy before you already filled half of it.
I don’t really know if I’m making any sense, here. I guess I just need to write random thoughts about my programming habits.
You know, I’ve got a natural dislike for the use of existing libraries.
Existing libraries are great. Most of the successful programs are built on top of them. Existing libraries profit from their wide-spread use, by becoming more robust. Existing libraries make your development faster, for you don’t have to code it yourself.
So, a good programmer is a programmer who knows how to reuse code. Not reusing algorithms and patterns when they already exist marks one as a fool. Going rogue when the whole world has followed a standard marks one as a fool and a pain in the ass to work with.
I used to be kinda ashamed of my habit of working with my own tools, and abnormal my dislike for third-party libraries. I also thought that this was likely among the reasons why I had so few projects finished : while I lose time reinventing the wheel, surely do I lose motivation along, too ?
A couple of years ago, when surfing the web for terrain rendering techniques, I came across several blogs from fellow coders. Fellow “rogue” coders, if I may say so. I was too shy at the time to even post “hello” or “nice !” on their blog (which was a mistake : Let’s stop being shy, shall we ?), but after a while reading through all their crazy stuff, I felt like struck :
- Man, did their projects started the same way than mine. They just had an urge to code and they went at it, just for the sake of it.
- Man, did I feel close to them at times. Some in particular expressed (in better terms than I could) their reluctancy to work with anything else than their own code.
- Man, did I feel small in comparison. Despite all this, they actually pushed their projects far beyond my usual breaking point.
- Man, did I envy them. Far from fearing the disclosure of all that shameful geekness, they showed their stuff in the open, and were listened to, and fun !
A blog for NeREIDS may not even have been created if it wasn’t for them. Go check Shamus Young’s Programming page, Michael Goodfellow’s Sea-of-Memes project, and the now professional-quality Voxel Farm by Miguel Cepero. I’m sure there are many others out there…
Bottom-line is : reinventing the wheel does not seem likely to be, in these bloggers’ case, a criteria for procrastination. I’m quite positive it isn’t.
It may not even be a criteria for slow progress.
Well, I’m coding NeREIDS mostly because I find immense fun in doing so. Granted, I may have a peculiar idea of fun. But this is my own, and struggling to import code from somewhere else or learn and use a library is not part of it.