Software development. Is it a difficult career or just a big lie?

Some people believe they must be exceptionally clever to become a software developer. Although I think that’s a false affirmation, I recognize it’s not an easy career. These are the easy and hard aspects I see in this profession.

Software development. Is it a difficult career or just a big lie?
Photo by Free Nomad / Unsplash

Software engineers have the privilege of being considered more intelligent than the rest of the population, even compared with other professionals.

Although I disagree, I also benefit from that prejudice. My intention in this article is not to debunk any myth or change your mind about this topic. Still, I will objectively describe the challenges we face in our profession so you can form your opinion. Similarly, I’ll also highlight our profession’s easy parts (even if we don’t like to admit it)

If you are a programmer, you will certainly relate to most of these items.

If you want to start or shift your career to development, you will know what to expect.

And most importantly, if you interact with software engineers daily, you will understand us better.

Stick with me and lets reveil some of the mistery involving our profession.

How hard is it to be a software development?

I like to say that being a software developer is easy, but being a good one is hard.

You can work at different levels, just like any other profession. Two programmers in the same position and earning the same salary may provide completely different experiences for their clients. This goes from the activities they do (some of them stick to their job description or even fall short by doing less than they should do) to the quality of their deliverables (one delivers a program that works at once, and the other delivers a program that requires multiple adjustments).

Then, the difficulty of your position is also determined by the level of quality you are after.

If you want to know how hard it would be for you or if your coworkers are as smart (or dumb) as you think they are, I’ve prepared a list of truths that describe both the easy and challenging sides of software development.

The easy part

Software engineering has some components that make it an easy career (yes, I’m exaggerating).

The fact is that the easy part gets bigger over the years as new technologies appear. Of course, the access to information we have nowadays makes every topic more understandable for people who don’t dedicate their entire lives to the subject. New languages and frameworks also cover the technical part and allow more people to create quality applications.

Maybe we owe the reputation of being a career exclusively achievable for geniuses because the statements below were false 30 or 40 years ago.

  • You don’t need exceptional skills. Although not everyone can read and write programs, many no-coding tools appear to equilibrate the game.
  • The entry barrier is almost nonexistent. No university degree or equipment is required, and infinite free tools, resources, and courses are available to begin your personal projects.
  • There are several roles in software engineering from which you can choose. So, whether you like to code, test, manage, or specialize in infrastructure or business topics, there is always a suitable role for you.
  • Competence is relatively low. Even though more and more new IT professionals appear every year, new IT positions are also created.
  • There is a massive community you can learn from. Whatever difficulty you have, someone else has already experienced and solved it. Every solution is available out there.

I can see you running to get an IT job, as it looks so easy… Not so fast. There are also several obstacles in this career.

The hard part

Unfortunately, not everything is joy and satisfaction for those who dedicate a big part of our lives to software development.

It sets up many technical challenges and obstacles we must go through every day. But the problems don’t end there. When we want to earn a living and dedicate many years to this profession, we must also stretch out by acquiring skills we are not so interested in developing.

So, technical, organizational, and human difficulties are always there to make our careers more interesting and challenging. These are some of them:

  • It’s overwhelming in the beginning. There are too many things to pay attention to. Several languages, technologies, roles, and systems to specialize in. And to much to learn before producing results.
  • You need lots of patience. It’s common to face a programming problem without any clue on how to attack it. Multiple analyses and failed tries are required to come to a solution. It’s easy to give up.
  • Programming is only a small part of software engineering. Communication and social skills are also required. This is the toughest part for most software developers. As we often excel in logical skills but lack social ones, we quickly feel frustrated when we depend on others.
  • You need to deal with uncertainties. Another tough one for logical people. Being deterministic is one of the best characteristics of programs. However, uncertainties appear when we add projects, politics, budgets, teams, and user behavior to the equation.
  • Big projects require broad knowledge. Our personal projects are usually small products no one would pay for today. When we work in big projects, a single technology or narrow knowledge is not enough. We need to understand the different parts of the system and even how the client’s industry works.

As you can see, although you may not need to be a genius to earn a living as a software engineer, it’s also not that straightforward.

Conclusion

After presenting both sides of this career (as objectively as I could), let me share my opinion.

I’ve had countless colleagues during these 20+ years working as a software developer, and they were of all kinds. Some were brilliant, but most were ordinary people inclined to systems. The area’s growth has brought a decadence in the quality of the professionals, making it easier not only to enter but also to stay in this world.

For that reason, this statement is still true:

Being a software developer is easy, but being a good one is extremely hard