As a lifelong coding hobbyist now beginning to move beyond the scope of what I’ve needed to learn for the sake of my own personal projects, the myriad skill sets conducive to progress in the countless spheres of software engineering present a wealth of possibility, as well as the dizzying challenge of determining how to best continue developing my skills.

For example, I’m always drawn toward digging down deep and experiencing how the pieces fit together, so the drier details of algorithms and data structures are a natural starting point. But from there, what? And to what ends? The question of how the self-directed learner should plot a trajectory through the initial phase of their skill development is very open, all the more so in the absence of any formal education. What should my focuses be? My lack of context and clear direction so far has made realigning my career goals toward software engineering seem a daunting task—and I’m just getting started.

But where external signposts fail to point the way, intrinsic motivation may help. And when issues of prioritization arise, one question that has often helped to spur me toward a more proactive mindset is: what needs to be done that hasn’t already been done? It’s not exactly the biggest money play, but my instinct has always been to direct my efforts toward what will do the most good for the most people, incurable idealist that I have always been at heart (both motivating and reinforced by spending almost a decade in the education field), so for me it’s a natural question to want to ask. And it’s usually been a productive one too, at least in terms of offering guidance.

Less so in my programming pursuits to date, however. This seems partly due to the accelerating pace of industry developments and the warping effect of the global crises on people’s irrational decision-making and motivational perceptions, but mostly just the pernicious reality that money talks and that, as ever, the most powerful and best-funded actors don’t tend toward the altruistic end of the incentive spectrum. (Hence more or less all of our problems these days.)

For whatever reasons, it’s very tricky for me to get a read on just how quickly the world of software is changing, and what the rate of that change means for the human-facing priorities we’ll be dealing with in five and ten years, or indeed sooner. As a result, it’s quite a challenge to see the forest for the trees—let alone the lay of the land beyond. On the other hand, it’s nice to have a guiding principle that probably isn’t going to wear out anytime soon.