Is software engineering for you

No GPT was harmed to write this post.

I want to preface this blog post by saying - I don’t want to discourage you or gatekeep software. My intention is not to make you think you can’t do it or shouldn't do it. Instead, I hope this serves as a compass to guide you through your software journey, should you choose to embark on it.

What do you really like?§

The question is simple, but hard to understand and even harder to answer. Software engineering is not just programming, its building something that can solve real problems. Many people when asked this question would answer I like programming or I like to code or I like to build products and so on.

On average a software engineer does the following things

  • Attend meetings
  • Discuss various design approaches
  • Validate said approaches
  • Fail to estimate how long its gonna take to build that feature
  • Finding out it won't work and redo them and the estimates (still wrong btw)
  • Finally writing bug-ridden code, that gets an instant LGTM!
  • Building a product Contributing to a well-established legacy codebase
  • Fixing bugs and supporting a product legacy codebase through its lifecycle

If you like the last three points and can tolerate the rest then welcome to the club, you can be an average software engineer. The reason I listed those out is because, it has been trendy to talk about learn to code while most of the software engineering is come up with a solution that can be realistically implemented within the upcoming sprint and also make sure that it's maintainable. It's very rare for you to work on something sexy and even rarer to ever encounter a time where those leetcode problems you grinded helped you in some way other than get lucky with an interviewer.

All I am trying to do here - is to present a case of reality. I want people, mainly college grads to understand that the dream most youtubers are selling you via their bootcamps and courses are not real. At least not to the extent you are imagining them to be.

Exceptional engineers rarely stick around for the perks, they do for the great people around them. Together they build products that have the potential to push the boundaries of software.

Software engineering can be really exciting, especially when you spend time on projects solving problems that you deeply care about, rather than just focusing on your day job

Learning to code§

You start your journey by picking a language, sticking to it, trying out a bunch of paths like - gamedev web embedded/systems mobile see what interests you, keep your head down and do what you love. Discover your strengths, seek help, get enough sleep, don't be afraid to look like a fool, take breaks, find solace in not being the best - but never stop improving. There will come a time when you are rewarded for your consistency.

Software is hard, but it only gets easier the more you build. Build build build.

Build more, build bad programs, build programs that are not so idiomatic, get feedback and improve. Gauge your interest. Understand that creating a product involves much more than simply writing code.

Don't be afraid to say programming is not for me.§

Programming is not for everyone. Everyone shouldn't code. It's pure FOMO that drives a good chunk of people into this craft and leads them to persevere just enough to secure an unfulfilling job. Besides If you just like tech and don't like programming you can tryout following domains

  • Networking and Data Centers
  • IT System Admins and DevOps
  • Software Sales
  • Product Management
  • Technical Writing
  • Software Support and Testing

Make a difference at your workplace§

Earlier I mentioned spend time on projects solving problems that you deeply care about, rather than just focusing on your day job. What if I tell you there is middle-ground? Do what I did and build tools for your team and the teams around you. Last year I wanted to write rust and get serious with it, so I did what shouldn't be done - pick a language and shoe-horn it into a solution. Surprsingly it worked and the tool came out to be half decent. Working on that project at my day-job (in my free time during the work hours) has given me immense pleasure and fulfillment.

So it can be done, given the culture at your work allows it.

Parting thoughts§

Software engineering can be very rewarding, but please don't get into it due to FOMO or because it seems shiny, especailly for the perks. Given the current climate in the industry I hope a lot of people have realised tech is not invincible. And eventually every industry goes through a cycle. Software can be a real pain sometimes - and for something you’ll be doing well into the future, it’s wise to pick a pursuit that you’re truly in love with.