Once upon a time, about a decade or two ago, anyone that did ‘things’ with computers was labeled as nerds. They were the folks that spent a good majority of their time hidden away from the public eye. No one really knew what these ‘computer guys’ were up to — nor did they comprehend what was happening behind closed doors.
To the outside world, the ‘computer guys’ always seemed to be staring at their dark background screens, perched on their chairs in dimly lit rooms.
Or so the story goes — perpetuated by the help of Tinsel Town, aka, Hollywood.
At some point, the tropes and tales changed, mostly around the turn of the century. Y2K never happened, the Internet started to move beyond dial speeds, and the first generation of digital natives grew from homegrown tinkerers to creators and teachers.
Then some of them started to make money — copious amounts of money — millions and billions of dollars kind of money. Naturally, people started to notice.
Fast forward a decade or two, we’re now at the point where the nerdy, lanky kid with the big glasses is no more. Everyone is a coder, dressed as hipster lumberjacks and siping away at barista brewed coffee.
How did we get here?
Doctors and lawyers aren’t the only ones making bank
The hipster lumberjack look is just another stereotypical trope that popular culture developed in order to help people comprehend the new breed of knowledge workers.
Programmers are now painted as smart and generally well-paid individuals that work with the mysterious ‘code’ to produce software and applications that run businesses and processes transactions. They are the people building the robots, launching rockets into space, and making games.
However, for those who are already ‘coders’, we know that the world of code itself is large, vast, and cannot be encapsulated into a single trope. A working program has many working parts and a specialist is needed for each layer and segment. The work is complex — mostly because we are translating thoughts and ideas into something that is digitally concrete.
According to Glassdoor, the average front end developer salary sits at around $86k per year. Indeed runs the figures at a higher average of $103,808.
Backend developers earn slightly more, with the average rate sitting at $118,813.
When compared to the national average of $35,977 per year for income as reported by the U.S Census Bureau, being a software developer puts you way above a majority of people.
Better teachers, more inspired students
Let’s be honest — we’ve moved beyond the days of heavy, doorstopper-sized textbooks. It is rare to see anyone nowadays sinking themselves into such a volume. YouTube, Udemy, Udacity, and various other learning platforms have replaced traditional and linear learning with interactive and immersive tutorials, walkthroughs, guides, and courses at a fraction of the price.
Bootcamps give learners a quick dive into the barebones of a working application, helping students become self-sufficient learners — because that’s what developers, programmers, and software engineers are. There may be some theory involved but a lot of learning nowadays is often unguided, de-structured, and often left for the student to explore based on the problem they’re trying to solve.
Gone are the days of rote learning and reading a book cover to cover. That stuff often turns up later — if ever. Teachers of code are not restricted or limited to a traditional institution. Instead, they are programmers themselves, either looking to make some extra cash on the side or have reached the ‘code retirement’ age, where they move on from traditional development work and into a full-time teaching role.
The cost of learning is also significantly reduced — if not entirely free. This makes the barrier to knowledge much lower than what it was a few decades ago. The knowledge itself is no longer cordoned away to the truly dedicated. Places like Treehouse gamifies the process, making it appealing to children and teens. Anyone can learn how to code if they have the time and desire to engage with the content.
Programming is a tool, as much as it is a career
The thing about programming is that it is essentially a tool. This is something that many learners of code (and even some veterans of code) often miss. It exists to translate and transform ideas into a digital format. Each language is a tool, as much as cloud providers are a service.
As developers, our task is to use these tools in a way that produces the desired end result. so while programming may be the ‘cool’ thing right now, it is not the end goal.
A career in ‘code’ should not define your final path. Rather, it should be a stepping stone towards helping you achieve your personal goals and provide the opportunity to work on something that nurtures your values and interests. If you find yourself working on something that feels soul-sucking — it is not the act of programming itself but perhaps a myriad of other factors such as work environment, the sector of work, or the people in your team. Or perhaps your ‘code’ toolbox is not suitable for whatever the organization is trying to achieve.
Whatever the case, you shouldn’t let yourself believe that act of programming is the root cause. Your ‘tool’ isn’t the issue. The work is the issue. The only way to fix it is to remove yourself and move into a different space that is better at nurturing your skills, creativity, and ability to create something out of nothing.
Let’s get real — code is cool now.
It pays well. It’s easy to pick up. It’s everywhere and there’s a massive job market for it.
But it is also a tool — or rather, a collection of tools that can be used to create the thing commonly known as ‘code’. Never mind the plaid shirts and wireless headphones, when everyone seems to know how to ‘code’, the thing that separates you from the rest is the ability to demonstrate your ability to think and translate ideas.
It takes a certain level of creativity to pull all the different parts together to form the final app, software, website, or widget. While you can learn to code, the act of coding itself is mostly preoccupied with creating something based on the limited knowledge that you have on your chosen language and infrastructure stacks.