Don’t Become a Software Engineer in One Year, or Anything Else for that Matter.

Behrooz DX
4 min readAug 17, 2020

--

My new late night habit is scrolling down through the default news and articles feed app on my android phone, which I don’t even know what it’s called really, hoping to find some eye catching content to read before falling sleep; from stock market insights to the newest Elon Musk’s tweeter outrage.

But recently, I have noticed an increase in the number of articles, writings and online course advertisements about “becoming a programmer in a year” or sometimes even shorter.

As someone who has taken the most traditional route to Software Engineering & Development (a bachelor’s degree in Computer Science, a Master’s in AI and nearly 10 years of active presence in the cutting edge industry), sometimes even I wondered if taking a shortcut would be a better idea.

It is no secret it rocks to be a software developer in today’s world. With a few years of experience and a moderate reputation, you don’t bother answering all recruiters’ calls just because there is too many of them approaching you. You get to bargain your job offers against each other more than most people can. You have the luxury of confidently confronting the entitled boss who bullies you and leave at your will, as you know the next opportunity -which is probably an even better one- is right around the corner, even during a pandemic where most people have to deal with an ongoing uncertainty.

But, can you really become that guy, in one year or less? Well, my short answer is no, although you can pretend like one and possibly get away with it for sometime.

Let me take a step back.

Within past few years, there has been an ever growing demand for IT professionals and especially those with coding skills. However, the fast rate at which new startups and companies appear everyday has caused many issues for those very same companies, leaving them not much time to establish base concepts.

For one, I have noticed most software development companies (especially the smaller ones) don’t have a clear grasp of the basic terminology related to the talents they seek to hire. Terms like “Developer”, “Software Engineer”, “Programmer”, and many others are used interchangeably in the job postings, as if they all mean the same thing. They don’t (ta da!!). And what is clear there, is that many employers don’t exactly know what they are looking for, all they know is they need someone who is able to pick up where their former programmer left off before accepting her new offer.

Based on my own experience, even title prefixes such as “senior” and “intermediate” are lot more confused and unclear in the software development industry than they are elsewhere, yet again indicating a lack of clarity in the field.

How does all that relate to my argument of this writing? Well, in my humble opinion, you may become a programmer in a year (and that is only if you are very talented and hardworking), but it is very unlikely for you to become a software engineer in that time frame. Sure, you may trick your interviewer to thinking they are the same thing, but I don’t know how far that is going to take you. And let me tell you, there is a huge leap from programmer to software engineer.

Let’s use a simpler, though not perfect analogy. If we compare a software engineer to a, let’s say, civil engineer, then a programmer would be the guy who knows how to nail gyp-rocks to studs and mud and sand them.

The difference between the two is crucial. Where I see a piece of land, a civil engineer can vision a skyscraper, estimate the amount of resources needed to build it, have a nearly accurate idea of how many people it can shelter, how big the sewage lines have to be in order to accommodate that population, how often should its bearing columns get inspected and so on. The other guy however, can install the flooring and walls inside one unit and that’s about it.

As software in general is much more of a black box to the average person than towers and buildings are, many people — including those who may want to hire you- aren’t exactly aware of what a huge gap there is, between someone who just knows how to get the code on that page working again and someone who can see the entire product all the way through and properly setup its corner stones.

One crucial skill in software engineering (if not the most crucial one) is not even about coding at all. Just like that civil engineer example, a software engineer needs to “hear that guy’s great app idea” and be able to translate it into a product, by mapping often unclear wishful thoughts of “the guy” to processes, flows, data models, action hierarchies and access levels. A software engineer must be able to vision that “tower” long before it is built, producing insights on how many users and requests it can handle using such and such infrastructure, what are its security risks, what design would give us a better chance for scaling in future, what technologies should be used and why, etc. Those are all way beyond a mere programmer.

You can [possibly] become a programmer in a year, but not a software engineer. In fact, you cannot become good at anything in one year. My humble advice is, if you know for sure that software development is your passion, take the longer way and rest assured it will pay off.

By becoming a real software engineer, not only you reward yourself with an exciting, fulfilling and secure career, but you will also save your fellow developers from the burden of having to undo everything you did and do it all over again!

--

--