Projects to work on

Disclaimer: these are just speculations, evidently I'm not successful at choosing projects and working on them.

People have limited time, energy, and abilities. While it's ultimately pointless, we are trying to figure what is worth spending those resources on. A possible set of priorities is to make something useful, lasting, interesting, fun, and what would actually be used; get closer to the world that is less terrible. With those priorities, nowadays it seems reasonable to invest some time into learning maths and programming, since those are powerful, easily available, and general-purpose tools. But then one should choose what projects to work on, and that's the tricky part.

The approach may seem obvious at first: identify what's bad or missing, improve or implement it, repeat. But "bad" and "missing" are subjective terms, so it may be rephrased with "…what you don't like or miss…". It leaves common users behind though, since preferences often change once one learns how things work, or at least gets enough experience with them, which is evident in various areas, including even distant from engineering and commonly appreciated ones – such as literature, visual arts, and culinary arts. Worse than that: the perception doesn't change once; it's a continuous process, which probably never ends (since there always is something new to learn), even though one may think that they've reached the peak, at many (mostly early) stages. So, there is a moving target, the direction of which is hard to predict, and the paths differ for different people; though it's not completely random, and there are common vectors.

One may ignore that, just making or improving things at the point where they currently are, following "worse is better", and hoping that nice things will arise out of this mess. That may be rather harmful in long term: the messy bits may be hard to replace, the "good enough" solutions drain motivation out of making better ones. Though it may work the other way around as well: the possibilty of better things may drain motivation out of making something in a finite amount of time.

Gradual improvement may be the way to go sometimes, but it may take more time and effort than making something new from scratch. Though seeing the state of distributed systems, web, and many other things, one may observe another harmful extreme, which is extensive and failing NIHing. Doing nothing isn't productive (and is wasteful, even), but doing something harmful is counter-productive. And many programming jobs seem to be neutral at best (see "bullshit jobs"), though that's even more complex than with hobby and non-profit projects.

Apart from those complications, there is a lot of fun and interesting things to try, learn, or make, what makes it harder to choose one (or few) to focus on, ignoring the others. Yet without focusing on anything, almost nothing gets done.

Perhaps a good option is just to work on the projects you are actually using or would like to use, despite the doubts that seem to just grow with time. I wrote but a couple of programs that I use, one of which is a hack to fix networking a bit, and the other one (the "semantic UI" prototype, which I'm using regularly to read web comics) may be worth working on – for the time being, at least. And contributing to FLOSS projects not just when one needs to fix something that is easy to fix – may be useful, too.