Why did you decide to learn software development?

Posted by igoreskin on May 15, 2017

The closing chapter of Georgy Martynov’s novel “Guest from the abyss” begins with the words “Man and his time are inseparable”. The idea of inseparability of man and his time seems to be the most foundational underlying topic of all his work, so foundational in fact, that conveying this message to the mankind may even have been the very reason he wrote his books in the first place. The only reason that comes to my mind why his books haven’t been translated into e.g. English (at least not to my knowledge) is the fact that the genre chosen by him was socialist realism, the only available genre in the USSR in 1951 when he began to work on his novel, so it wasn’t really his choice.

You are probably wondering what on Earth all this has to do with software development, and I don’t blame you, but bear with me for a moment. Historical inseparability from someone’s or something’s time is cynically merciless, if you honestly think about it, and pertains to more or less everything, especially to things like skills – and you see, we are almost back in the subject. A skill is not just a set of conditional reflexes; it’s a living breathing organism with respective attributes, one of the most important of which is lifespan – not in a person, but in the world. At the earliest stage of its life, a skill is clumsy, inefficient, not awfully reputable, and only a few pioneers know how to work it, mainly because the field of expertise is still underdeveloped. As the technology develops and more people get into it, practice and competition refine the skill to perfection, and it looks like there’s no doubt it’s going to last forever. This is a pitfall – not because forever doesn’t exist from the astrophysical point of view, but because even for the purpose of the expression “I’ll love you forever”, the convention is that “forever” only means “for as long as I live”, and that’s no different with a skill. Eventually a skill faces the famous discord between dream and reality, when an enormous number of masters of the skill find themselves on the street in a “starve or retrain” kind of situation, and from this point on the downfall of the skill is fast and inevitable – history is flooded with examples. The good news is that in a western society current viability of any skill is actually quite easy to diagnose: viability of a skill equals its marketability, which is also the only true determining factor of its lifespan.

I may be falling into the same pitfall that I’ve just described, but I am of the opinion (and, according to e.g. Quora, I am definitely not alone) that perhaps for the first time in the history of the Earth we are witnessing a situation wherein the lifespan of a skill seems to be not only endless, but also subject to a geometrical progression in terms of its demand. A popular opinion states that the more functions of the society are “taken over” by computers, the more programmers the society is going to need to program those computers and the more qualified those programmers will have to become.

I love skills. To me mastering a skill has never actually been a means to an end – irrational as it probably is, to me the enjoyment of practicing a skill has always made practicing the end instead of the means. This kind of inclination, by the way, is not necessarily harmless and must be handled with care, otherwise you are in danger of wasting your life enjoying practicing a non-marketable skill (which is fine if you are permanently wealthy, but may be suicidal otherwise).

I’ve always been interested in computer programming, but more on a passive basis, considering it something almost extraterrestrial that only selected few can actually do – a place you always end up when you don’t do your research. Even before languages like Ruby and Python were born, I experimented with C and was fascinated by it, but way too caught up in my work and massive responsibilities at the time to actively pursue it. My serious, real-life interest toward the subject began to rapidly grow when, working on Wall Street for a year and a half, I was hearing every day about algorithms taking over equity trading as the explanation why even very experienced trades were unable to place successful trades anymore, and when one day I came to the office to find out that the company was moving out of three quarters of its premises, the bells of fate rang, I left the field and finally gave coding my complete and undivided attention.

When I started to learn coding, I immediately realized two things: firstly, the enjoyment of practicing it was something I hadn’t felt in years to say the least, and the second thing was not as much a realization as a feeling of regret and even anger that I didn’t submerged myself into it years ago, which is just a normal intuitive reaction of any human being with a healthy level of self-criticism.

The deeper I get into programming, the more I enjoy it. Although it’s a well-known fact that the more you know, the more you realize how little you actually know, this is exactly what makes this journey so endlessly fascinating. But this time it’s not even as much about the enjoyment of learning and practicing, as it is about an almost overwhelming feeling of becoming a part of a growing global phenomenon, something that can enable you not only to love what you do for the rest of your life, which is one of the definitions of happiness, but also, if you dedicate yourself to mastering this skill, to make a difference in the world and tremendously improve probably every single aspect of your life in the process. In other words, at this point in time learning and mastering the skill of programming seems to be the best, most logical and most productive way to experience the inseparability of yourself and your time in the absolutely best meaning of this expression.