I have recently watched a talk from a guy that started his lecture reminding how he was so obsessed by learning new stuff in the 90s… He kept saying how it was so fantastic and delightful to be up until late at night just to use his bad internet connection available at the time, to share ideas with people from all over the world, write small perl scripts that perform all sort of things… One could easily notice how happy the time that seemed to be. I’m sure you have already heard stories like these from people who are in the software industry for 10 to 15+ years. I don’t know how do you feel when listening to these kinds of things, but I can say that I feel really bad when a hear these stories. And I feel bad for a simple, but paradoxical thing: I have never been that happy while developing software.
Don’t get me wrong, I’m a software developer since 2014 and I really love my job. But thse moments in which I have found myself on that kind of moment these people describe: being completely happy about learning a new thing, being glad to be up until late night just to build “that” cool code you just learned how to do, or just feel complete while being able to notice that your skills are evolving, well, these are pretty rare situations. Actually, these days whenever I start to study something new or to dive deeper into something in which I’m a beginner at, javascript for example, the struggle begins: I should really be learning this? How far should I go here? What about Python? Should I focus on Vuejs? Maybe React? Should I study from this book? What about that video course? And there it goes… A couple of days later I simply give up studying, until this cycle starts again with another technology.
This unending cycle may sound familiar to you. Many of my developer friends share the same feeling, the restlessness pursuit of the satisfaction of learning something new. Why It’s just so hard to feel happy about it, or just feel ok about doing something you like? People used to feel like this in the past as well? Is this feeling of constant unhappiness, incompleteness, anxiety a new thing for developers? Well, if we want to get closer to answer these questions we need to first understand the underlying of the feeling of “being happy” and “complete”. We are definitely in a collective pursuit of that feeling described by many speakers at conferences about how they were delighted when learning a new programming language or by creating open-source software, but with so many options available today for learning, training, exposing and such, we seem to be always surrounded by temptations that keep us distracted from the initial goal: enjoy learning a new skill. In order to get rid of that feeling or at least to get a bit further from it, let’s try to enlighten some aspects of our everyday life that relates to our sense of happiness about learning and evolving as software developers.
If we look 20~15 years back from now, we can definitely notice a world pretty different from the world where we live now. Of course, there are differences related to all sorts of aspects of human life, but sticking to the technology world we can agree that we used to have way more restrictions. Developers could write programs for machines with 64 to 256 MB of RAM, the web as we know was pretty much immature like a newborn and building C/Perl scripts to run in Apache servers were pretty much the closest you could get to be considered a “web developer”. Just to put it in perspective: it was only in 1996 when Microsoft launched the ASP extension for its IIS server. From that year on, servers got the capacity to process some logic and generate HTML as output: there was when the war between PHP and ASP started, the battle for the hegemony in the server-side world. If you think of the expectations of a developer from the 90s, you’ll probably agree that there was too much they could still ask for: “it’s getting clearer that we need to build more interactive applications with better layout presentations. I hope people come out with something that allows this…” and then CSS started evolving, among with Dynamic HTML (DHTML) and Mozilla’s Asynchronous Javascript (known as AJAX). “What about managing all my HTML pages in a more simple dynamic approach?”, there went some CMS (Joomla, Drupal, Wordpress). We could keep raising restrictions and limitations here for a while and describing the solutions that came out to get rid of each of them, year after year.
As a developer living in 2020, if you try to make the same exercise about the current restrictions, thinking on what are your expectations about the next few years, what can you ask for to make our work more productive, easy, or smart? I bet you can name just a small amount of things. We find ourselves currently in a very wealthy age of the technology history, at least in terms of software. We can build entire web apps with a few CLI commands (of course, simple apps, but sill, production-ready), we can rely on almost infinite hardware resources thanks to the many cloud providers we have at our service (AWS, DO, Azure), we have a bunch of well documented and ready to use tools that comes with the best practices for software development simply built-in (Ruby on Rails and friends). I’m not saying we don’t have challenges to overcome, of course, we do, but I’m talking here about the majority, the 80% of the problems we use to solve with software, they are relatively easy to solve today thanks to the bunch of techniques, tools and resources we have available. We have never been so productive, so capable of solving complex problems and organizing ourselves to overcome big challenges as we are today. Still, the ridiculous abundance of information that made it possible for us to found ourselves where we are today, somehow seems to have stolen from us the capability of enjoying it, and fully appreciate the path to our accomplishments.
As an analogy, think of a human living in 1900. They didn’t have on their disposition so many food options on the market as we have today. They couldn’t travel for a different continent in just a few hours as well. On the other hand, today we can simply walk a few blocks and choose between thousands of foods to eat, but we would probably eat it in a rush, in front of the TV barely tasting it. The same way, today we can travel to a thousand different places, but wherever we are, we will probably find ourselves there distracted looking at our smartphones instead of really being present. We have more options than we have ever had, but how good are these options if we simply lost the ability of paying attention?
This inability to pay attention hasn’t started from nowhere. With this whole evolution of technology, the old known business model of capturing attention we already know from the radio and the TV has come to the internet. Our attention serves a great purpose on the modern internet economy: Google, Facebook, Twitter, and many others have made their fortune by reselling our attention to companies who want to show advertising not only at their platform, but at almost every web page around. With the astonishing fast growth of these distractions, some of the companies who earn money by selling development tools, programming courses and such, started to invest aggressively on spreading their products and services through banners, mail marketing, content marketing and so on. This phenomenon definitely contributed to the increasing feeling we discussed earlier: it’s getting harder every day to focus and pay attention. It has a direct influence on how we, as developers, feel when learning something new, since we are constantly being invited to learn some other skill “check out this brand new course, the best teachers, the best technologies used by Google, Airbnb! Use our CDN, Container, FaaS solutions!”.
We have never asked for any of these distractions, but we cannot ignore their existence. The best we can do is to try to understand how these distractions appear in our everyday life and avoid them. Some people may feel that they read too many tweets from developers who seem to be always discovering new shinning tech stuff, some may notice they are too distracted by what people are speaking about at tech conferences. The key point is to be aware of where the distractions are coming from, and try to get rid of them in a way that works for you. By doing so, maybe one day we’ll be able to tell stories such as the one I told at the beginning of the post: “I use to enjoy so much the learning process, the time I spent on Github opening issues about projects I like related to DevOps tools…”. Learning something new should be joyful for developers instead of generating anxiety. It doesn’t matter if you share what you learn, if you write about it, speak at tech conferences and create OSS: beware that these emerging feelings that create frustration, are probably coming from distractions, created to sell, attract and “convert” you as a consumer. Try not to be one more lead in some sales funnel, and follow your own way through the path of the self satisfaction on evolving your skills as a software professional.
If you liked this article, consider sharing it.