Everyone knows the software market is one of the hottest out there: promises of big salaries, job security, and room to grow are common in our field.
That’s not news, and the conversation has already reached the general public. This was the cover of a Brazilian business magazine back in March 2020:
“They’re in their early twenties, they choose where they’ll work and for what salary. To hire them, companies go as far as buying entire startups. Training schools open up across the country already with a waiting list. Welcome to the fantastic world of software developers.”
The promise of a high salary without needing to know much makes a lot of people suddenly interested in the field. Of course that’s an exaggeration, the product of outlier cases or of companies with an infinite war chest to burn that don’t mind fueling a market that can’t sustain itself in the long run.
It’s not hard to find people who never cared about programming before and now have a sudden interest, almost always tied to some unrealistic or irresponsible financial promise.
Whoever preaches that programming is easy always forgets to add that the result is proportional to the effort: if you take a quick course that consists only of sitting in front of the PC and repeating what the instructor does (the way most courses work), the only thing you’ve actually become is a good code typist, not a programmer. And much less a good programmer. Maybe you’re even at the average level of the professionals you’ll work with, but make no mistake, average and mediocre are twins.
Not to mention remote work, which got huge adoption because of the pandemic but now seems to be the default for most tech companies. Don’t think, of course, that it will stay this way forever. You can already see a countermovement happening at some Big Techs.
I bring up remote work because it strikes me as tremendously irresponsible for companies to open remote positions for juniors or even interns. For someone at the start of their career, taking away the chance to interact more often and more intensely with senior people, taking away the chance to build bonds with people who otherwise wouldn’t be in their circles, is the same as taking away the chance for fast and solid personal and professional growth.
Professionals at the start of their careers need frequent interaction, examples to follow, and quick, practical access to more experienced people. Remote work takes all of that away from you in exchange for cheap comfort. If you’re a beginner and there’s one thing to take from this text, it’s this: don’t accept that comfort in your life. Remote is the easy path, and easy paths rarely end well. Even if you can’t see it clearly now, the professional price you pay is too high.
Considering all of this, all this sea of promises and these shortcuts, it’s clear why so many people fall for the con and choose to pursue a career as a programmer even without liking the profession.
And in the job market the effect of that is also quite visible: less and less qualified professionals charging more and more.
If, with all of this in mind, you still go for tech, go all the way in. Don’t settle for being just one more in the mass of programmers who only know how to copy snippets of code from one place to another. Apply yourself! Learn how to learn. Build and develop side projects day after day, don’t limit yourself to your working hours, solve real-world problems yourself. Even the ones that have already been solved, try doing it yourself. Don’t be a programmer who’s an expert in one framework or one language; the market is already full of them. Apply yourself to learning the core of our profession. What is solid and doesn’t change decade after decade. Stop orbiting the outer layers and focusing only on one technology or another, that changes every day. Every day a new framework shows up, a new revolutionary technology, and the sooner you find out that’s not what matters, the better. Learn algorithms, data structures, design patterns. And, above all, practice. Every day. Practice, practice, and practice again. Don’t be satisfied until you run into a problem you can’t solve, and celebrate when you find one; it’s in those moments of frustration that real learning happens.
Also, don’t skip reading good books and following good professionals. Again, don’t focus on books about language A or B. Or books about framework X or Y. Screw that! Read the greats of our field, learn from them. Read Clean Code, The Pragmatic Programmer, or Coders at Work. Search YouTube for content from these authors, like the excellent talks by Robert Martin, which are a free treasure for everyone.
By the way, the first lesson in The Pragmatic Programmer is “Care About Your Craft”. And it says: why spend your life developing software unless you care about doing it well?
In other words, decide to be a programmer only if it’s to be a good programmer. Otherwise, pick another profession. And don’t fall for the fairy tales; being a real programmer isn’t easy, isn’t fast, and will be far harder if you choose to do it alone (remote). As in any profession, there are no shortcuts. Either you’re all in, or you’re the average.