5 Hard Truths No-One Is Telling You About Software Engineering

5 Hard Truths No-One Is Telling You About Software Engineering

by | 5 min read

Most of the content on software development will tell you how great it is to be a software developer.

You can earn a ton of money, you get to work remotely, and if you are in the office there is free food and drink and even pool tables and games consoles.

What is there not to love about being a software developer?

Well for one, you aren’t going to have time to play on that PS5 sitting in the lunch room and as it turns out, there are quite a few things that no one is telling you about a career in software development.

1. You are never going to be an expert

There is so much to learn in software development that it is impossible to be an expert in anything beyond a very specific field.

You essentially have 2 options:

  1. Niche down and learn as much as possible about one topic and remain relatively clueless about everything else.
  2. Learn as much as you can about lots of different areas but get comfortable with the fact you will never be an expert.

Personally, I prefer option 2. I would much rather be a generalist that can easily adapt as new technologies come out than throw all my eggs in one basket and become good at just one thing.

You will likely suffer from imposter syndrome at some point in your career. Even if you do become an expert at one particular thing, you will also likely be acutely aware of everything you don’t know at the same time.

🚀 Are you looking to level up your engineering career?

You might like my free weekly newsletter, The Curious Engineer, where I give career advice and tackle complex engineering topics.

📨 Don't miss out on this week's issue

If you are trying to learn as much as you can about multiple areas in tech it is important not to get too distracted by shiny objects. New programming languages and frameworks come out all the time, but only a handful ever stick around.

You might never become an expert in a certain field, but if you are constantly switching to every new thing that comes out, you won’t even get to achieve a level of proficiency that you can be proud of.

2. Burnout is very common

With everything there is to learn in tech it is no wonder that burnout is such a big issue.

There is constant pressure to keep up to date with new technologies and updates. For example, C# is soon to release C# 12 with more syntax changes to the programming language but it was only 6 months ago that C# 11 came out.

On top of that, when you are working as a developer, there seems to be an endless backlog of work to complete, and companies never seem to have enough developers to keep up with the amount of work they want to do.

This often results in tight deadlines and additional stress for all the developers involved. Some industries are worse than others for this. Game development is particularly bad as can be fast-paced startups.

I have suffered from burnout once and I got very close a second time but I started to recognise the signs and made some changes before it was too late.

In some cases, burnout can be somewhat self-inflicted. When I look back over my career it is often me that is pushing myself to work harder, trying to learn as much as I can and trying to prove to myself and others, that I deserve the success that I have received.

Imposter syndrome is real and it is not healthy if you end up pushing yourself to burnout to overcome it.

3. Diversity is a huge issue

Take a look at the career website for any of the top tech companies and you will see a vast mix of ages, races and gender in the photos they are showing.

In some cases, they aren’t even that subtle and will just have an illustration instead.

Slack Careers Page Illustration

However, if you are reading this then there is a 95% chance that you are male between the ages of 18 and 35. I know this from looking at my YouTube stats of the audience that watches my videos but it is also typical in a lot of tech companies as well.

In nearly every tech job I have had there has only ever been a handful of women among the software engineers and all of us have been either in our 20s or 30s.

This is a massive issue.

I have said it before and I will say it again. Software development is mostly about solving problems rather than writing code.

Studies have shown that the more diverse a group is, the quicker and more creative they are at solving problems. They have shown that diverse groups are 6x more innovative and agile, and 8x more likely to achieve better business outcomes.

If you are not one of the 95% then please give us a wave in the comments I would love to hear about your experience working in tech.

4. Social skills matter more than technical skills

If you look at the senior engineering managers, the VPs of engineering or even the CTO. Chances are it won’t be their technical skills that got them to where they are today.

Most people in these positions are generalists rather than specialists. They have a large knowledge of lots of different technologies but aren’t an expert in any one of them.

This is what you want from someone in this position. It isn’t likely that they will be writing much code anyway and you want them to have an understanding of as much of the business as possible.

Equally, they need to be good communicators capable of talking to both the business and the developers.

So if you have your sights set on being the next CTO then you need to be working on your communication and social skills more than your technical skills. It doesn’t matter how good a programmer you are, if people don’t like working with you, you aren’t going to get very far in tech.

5. Your software will never be perfect

If you are a perfectionist, then you may find software development incredibly hard.

There are always going to be parts of your application that you aren’t happy with. When you are working for a company you need to find the right balance between speed and quality.

There will be things that you have to compromise on just to get a feature released, which is where most of the tech debt comes from.

You can tell yourself that you will go back and make it better later but realistically you probably won’t get time.

No matter how well you test your application there are inevitably going to be bugs in your code. It is just the nature of the game and you just need to do your best to avoid them.

A good product that you can release this week is much better than a perfect product that will take 6 months.

🙏 Was this helpful? If you want to say thanks, I love coffee ☕️ , any support is appreciated.


How to Build a Project That Will ACTUALLY Get You a Job

How to Build a Project That Will ACTUALLY Get You a Job

  • 23 June 2023
Trying to get a job as a software developer is hard enough at the moment. But what if you don’t have a computer science degree or any…
10 Questions You Should Be Asking at your Technical Interview

10 Questions You Should Be Asking at your Technical Interview

  • 21 April 2023
We have all been there, you have managed to get through the interview with some of the senior engineers and answered their barrage of…
AI Can’t Do This - SECRET to being a SUCCESSFUL Software Engineer

AI Can’t Do This - SECRET to being a SUCCESSFUL Software Engineer

  • 07 April 2023
AI is advancing rapidly and it is now able to write pretty decent code if you give it the right prompts. It is not too much of a stretch to…
Backend Developer Roadmap 2023

Backend Developer Roadmap 2023

  • 31 March 2023
There is so much to learn as a software developer it can be difficult to work out where to start and what you should be learning. To help I…
The biggest regret in my software engineering career

The biggest regret in my software engineering career

  • 10 February 2023
I have been a professional software developer for 12 years now, working my way up from Junior Developer to Engineering Manager. Over my 1…
The Comfort Zone is Ruining Your Life

The Comfort Zone is Ruining Your Life

  • 25 January 2023
From the moment we are born, we crave comfort. We cry when we are hungry, we avoid talking to new people, and we pick the easy subjects at…
How to Succeed as an Introvert Engineer

How to Succeed as an Introvert Engineer

  • 16 January 2023
As a child, I was often called shy. I didn’t like being the centre of attention and would hardly speak to others unless I knew them very…
How to Know if Programming is the Right Career for You?

How to Know if Programming is the Right Career for You?

  • 05 October 2022
Software developers, especially working in major cities, can easily earn 6-figure salaries. For those working in the Bay Area with stock…