Hacker News new | ask | show | jobs
by otis_inf 4169 days ago
You're new to writing software? Because after 20+ years in the trenches, it can become second nature to you. The thing is: to get from A to B is a journey you can perform in a million different ways. When you're new, and young, such a journey is an adventure: what shall we meet along the way? Who knows! Let's find out! The more experienced you get, the more you know which things to avoid, what to do to get certain things done and how to make things easier for yourself and others. That also means that a journey from A to B isn't an adventure anymore, it's a carefully planned expedition, because you _know_ that by not carefully planning it, you'll hurt yourself and perhaps won't make it to B.

This means that all the fun of exploring and adventuring to get from A to B is more or less gone, as you already know what lies ahead and how to avoid it. You _know_ what's coming and thus how to deal with it. You also _know_ which parts are a chore and can suck the energy right out of you. This alone can make a journey that would otherwise be fun, a problematic undertaking we probably would like to avoid if we had the chance.

The post absolutely doesn't state you should avoid crap, it also doesn't state one can achieve greatness without avoiding mess and misery. It just writes about by learning a lot over the years the adventure of a journey from A to B is fading away and with it, the fun and excitement.

The post hit home with me a great deal as it perfectly answered why I didn't code on a Saturday anymore (e.g. silly stuff like a small game or tiny tools), but only program software during work days and only for work: it wasn't a problem to find ideas to write a silly program for, it was the baggage that came with it as I already knew I had to do X and Y to get started properly, Z to get something on the screen, get a lib for E and F and as I knew that would likely be a chore I wouldn't even start, as: why bother with chores on a free Saturday if you can have some fun?

It's still possible though, don't think it's all grim and gloomy and dark, you just have to put what you _think_ up front what could happen aside and still do it. You'll learn it isn't so bad, but sadly the fun of adventuring and exploring into new territory is often not there anymore, simply because it's familiar territory. That's often a good thing in life, but if it's adventure and excitement filled exploration is what you're after like all those years ago, you're not going to find it (easily).

Cheers :)

1 comments

Thanks for sharing your view. I realize I share exactly the same experience of foresight vs. loss of fun. I.e. "I have no idea how to implement this" is a really hard thing to come by and it's more like "yeah, I would need to implement that, that and that...".

Somehow my POV has shifted from an energetic craftsman to the proverbial mathematician of so many jokes whom realizes a solution is feasible and loses all interest in the practical solution for the fun of it.

The problem in software engineering with this mathematicians approach is that a theoretical solution seldom stands up in real world unless a sufficient domain solution is implementable using a well defined and concise algorithm, thus the foresight is not necessarily that prescient to start with, so I realize I'm not in possession of any true understanding of value but just realize the long, long road ahead when starting something new.

It might be an idea to use a more formal, functional oriented language to implement your ideas, e.g. F# or haskell, where defining what you're going to need and want to achieve is half the work?

Though it might indeed be redundant, as designing the algorithms and understanding they'd work is enough: typing it in and seeing it work is an exercise performed so many times it's become a chore.