Software Engineering is one of the most in-demand job at the moment and technology companies continue to be very profitable. In today’s post I would like to discuss few ideas that may help you decide if you should join the fray. Let’s get started.

How much does it pay?

A Software Engineer gets paid a decent amount, but it varies significantly based on years of experience, type of experience and location. In a lot of cases salary is not the whole story – stock options and bonuses are pretty common in our industry. Use this link below to calculate for your location, but just to give you an idea, the following graph can show you the range:

Source: US News

Like I said earlier it really depends on location, years of experience and the specific technologies you have experience with. Remember that Software Engineering is not the highest paying job.

If money is your primary objective you may want to look at some of the alternate professions – medical professions seems to do much better for example.

Having said that, it is still pretty high on the charts specially when you become a senior engineer or manager. Also, remember that the world needs software engineers, so there is a decent amount of job security. Even when there are lay offs it is not too difficult to find a new job as long as you have the skills that are relevant in today’s market.

How hard is the work?

Don’t let the “desk job” or “indoor work” connotations fool you – creating software is hard and complex, requiring deep context and expertise. There are plenty of long hours and stories of crunch time and employee burnout are abound. In most cases, unless you are a contractor, there isn’t any overtime.

Inevitably you end up working long hours trying to meet unrealistic deadlines.

Having said all that, you are creating something and that in itself is its biggest reward. You made something and it’s alive and out there doing real things, impacting people’s live. That just feels great. Not all engineers get so lucky though, there are way too many failed and unshipped products out there.

What personal traits are needed to succeed in this profession?

Creativity and Problem Solving: In general software engineering requires a lot of mental work. You must be good a logic and math, you must also be creative and must learn to communicate ideas effectively. You should be able to hold many thoughts and problems in your mind at the same time. You must enjoy problem solving. You must deal with problems you haven’t faced before. You must be resourceful and learn to not reinvent the same wheel.

A love for Learning: Unlike some of the other professions, learning and improving is a must for software engineers. You must always be learning or get left behind. If you enjoy learning, this is a great because you almost never run out of things to learn and improve.

Social Skills: There are some exceptions to this rule but most of the software is not built in isolation, you need leadership and social skills, you must learn to collaborate with others, you need excellent communication skills to convert ideas into words, and be able to make others understand complex problems and solutions. Often time it requires you to navigate politics. Unlike some of the other profession, for example, a dentist or a day trader, you must learn to negotiate in an amicable way.

If you meet the above criteria, then rest assured that this is one of the most satisfying thing you will ever do and you’ll also be really good at it. Get ready to be rewarded tremendously.

Do I need a degree in Computer Science?

You don’t need a degree in computer science to become a software engineer, but I highly recommend it. You can choose the self taught way, but rest assured it will always be the elephant in the room and its not without reason – there is a lot to cover and going through a degree program does help with that.

If a degree program is not an option for you then the second best option is to go for a boot camp or diploma program, you will still need to learn a lot on the job but it will get you started on the right direction.

Self taught learning should be your last option, it requires a lot of discipline, motivation and energy. Not everyone is made for it. Having said that, plenty of folks have shown that it can work. If you do decide to take this path I highly recommend reading Aditya Patange’s post on medium about it.

Parting Thoughts

In my opinion, creating stuff that makes an impact on other people is one of the most satisfying thing in life, and you can do pretty good for yourself as a Software Engineer. It’s not without challenge though, so don’t run in blindly. Know what it takes and use it to succeed.

Hope this was helpful. Feel free to reach out and ask questions or share your thoughts on our community page.