I met a traveller from an antique land...


We’re all basically building castles in the sand. Whether the surf comes in tomorrow, next year or next decade, don’t kid yourself of its permanence. We’re crafting art for the moment, and tomorrow’s programmers will create new art for tomorrow’s needs. The questions include:

  • did you do it well?
  • did you learn something from the experience?
  • did you give something back to the community, leave some breadcrumb, which will help the next guy, help advance civilization however little up to the next ladder rung?
  • was it beautiful? to you, to anyone?

If any of all of those are true, look yea to Ozymandias… and be at peace.

That quote there came from a Redditor in response to a post about code at startups that never make it. The poster mentioned how all the hard work that goes into a startup ends up thrown away and forgotten, and I noticed that this is pretty relevant for anyone in software - especially when we first start out - since most of our work will inevitably end up discarded, whether they be personal projects, or homework, or things we write at work.

“What is Code?” by Paul Ford over at Bloomberg is a great article that offers a really neat and informative (for me, at least) insight into the great (and not-so-great) aspects of software as a tool, science, and industry. It’s is a very lengthy read, but well worth it. I particularly like how he emphasises the sheer amount of work that goes into everything:

Apple and Microsoft, Amazon and Google: factory factories. Their APIs are the products of many thousands of hours of labour from many programmers. Think of the work involved. Someone needs to manage the SDK. Hundreds of programmers need to write the code for it. People need to write the documentation and organise the demos. Someone needs to fight for a feature to get funded and finished. Someone needs to make sure the translation into German is completed and that there aren’t any embarrassing mistakes that go viral on Twitter. Someone needs to actually write the software that goes into making the IDE work.

Think about it! This doesn’t just apply to software, but most things - there always seems to be far more work and effort than first meets the eye.

That’s why seeing fantastic open source projects, where people spend seemingly hundreds of hundreds of hours building on a truly useful tool to give away for free, never ceases to amaze me. An example that comes to mind right now is pg-promise, a truly awesome, fantastic, comprehensive and well-documented PostgreSQL library written pretty much entirely by one person. It’s a tool I use every day at work. I have been slowly reading the author’s documentation and articles and every few days, I find some new neat detail or trick in the library that helps me out. I think the library is partly sponsored, but it still really does feel like a work of love.

Typically, we are told to just focus on getting experience and projects on paper for resumes and portfolios. “Everything is good experience for you”, they say. “Employers will love it”. And I know a lot of people who think this way, who see writing software as a means to an end, or something they just have to do.

There’s a nice, poetic beauty to writing thousands of lines of code that promptly gets forgotten. Programming, work, building personal projects… it’s not just good experience for jobs or portfolios, but an awesome, creative, learning process that leverages the hard work of countless people before us to craft something. Even if the idea isn’t particularly unique, your implementation probably is, because it is, well, it’s yours. I hope that makes sense.

At the end of the day, we’re all just castles in the sand, and everything we do is rather meaningless in the grand scheme of the universe. We can choose, however, to put some heart in the things we do, no matter what it is - and that is what makes all the difference.