Software is everywhere. It runs our computers and mobile devices, drives the internet, IOT, AI, and maintains critical business functions. Our cars, televisions, and even refrigerators are powered by software. This means software engineers are in high demand both inside and outside of traditional tech verticals.
But is it for you? You may have the aptitude for coding, but do the specifics of the career match your preferences and lifestyle? We’ll look at a few pros and cons to help you with your decision.
The Pros of a Software Engineer Career
Software development has a number of points in its favor. Consider whether these benefits would make a difference in your life.
You’ll Be Paid Well
Software engineers are paid a handsome salary. According to Glassdoor, entry-level software developers make $74,000 on average. Senior engineers can make $115,000 or more. In California’s silicon valley, drawing a salary of over $150,000 is not uncommon. Google, Facebook and several startups pay above-average salary plus SOP (Stock-option-plans) and excellent 401K and health benefits.
Considering that the average entry-level salary for jobs, in general, is $28,000 a year, software engineers are compensated well for their skills. Although MS in Computer Science Engineering is highly desirable for long term success and upward growth, in many cases, you don’t even need a college degree. According to a Stack Overflow report, 56% of developers don’t have degrees in computer science or related fields. As long as you have the skills and the discipline, employers will talk to you.
There’s a Lot of Demand for Software Engineers
The US Bureau of Labor Statistics notes that software developer positions are expected to grow at a rate of roughly 17% between 2014 and 2024. That’s significantly higher than 7%, the average growth rate.
There’s already a shortage of qualified software engineers, and that shortfall is expected to grow. If you have the skills employers are looking for, and if you’re good at what you do, you won’t have a problem finding a job.
You May Enjoy a Flexible Work Schedule
Software engineers generally need a computer and an internet connection, and that’s it. They can do their job from anywhere. And an increasing number of tech companies are converting to a remote workforce. With the right position, you could travel while still keeping your job. You could live anywhere in the world. You could roll out of bed and work in your underwear, on your schedule.
Not every employer is this flexible, but many are. Enough that this is a very real perk of the job.
Enjoy Invigorating, Casual Work Environments
Software engineers are intelligent people with varied interests. Working with a team of developers can bring you into contact with an intellectually-stimulating crowd. If you’re a developer that works in an office, you’ll find powerful partnerships and close friendships. You’ll enjoy going to work (except when you don’t — see cons) and you’ll sharpen your skills and your mind.
You’ll also live in t-shirts and jeans.
There’s Huge Potential for Entrepreneurship
The world is rife with software startups. If you have an idea for an app or some other potent software solution, there is quite a bit of investment capital looking for ventures to fund.
Of course, running a business requires additional skills, on top of your development chops. You also need to commit. But if you have the drive to build something for yourself, and the skills to realize it, you could easily parlay your software engineering background into your own company.
Many Developers Find Their “In” Through Unorthodox Channels
Tech employers often aren’t concerned with how applicants came to their skill set. They only want to know that you have the required experience. It’s common for completely self-taught software engineers to land challenging, lucrative positions.
You don’t need a four-year degree, though it can help. Many developers get their start through software boot camps and other training opportunities. Software engineers are one of the few positions that require highly specialized knowledge but don’t always require a traditional education.
The Cons of a Software Engineer Career
The benefits above don’t come for free. There are costs to be paid, and these are sometimes enough to dissuade undecided job seekers to consider a different track.
You May Work Long Hours
Software development deadlines can be tight. Depending on the company you work for or the type of project you’re working on you may be required to work overtime, and occasionally put in weekend hours. You could be doing it from home, and you’ll be paid well for your time, but an acceptance that your family and social life may have to take a backseat may be necessary.
Your Age works Against you (Important)
New technologies are launched every 2-3 years, and you must learn them. While it may be easier for your brain to learn newer technologies when you are in your 20’s, but your power to absorb more modern technology and implement it in your 40’s reduces significantly. Memory issues arise as software engineers become more forgetful a lot quicker than other professions. Changing or finding a new job as a technical software engineer becomes hard in the late 30’s, harder in 40’s and extremely hard once you reach 50’s unless you are a known person in your field or your intelligence is closer to that of Einstein. Having a 10 years IT experience is great, but having 25 years of experience plays against you. Moreover, you will find it hard to change your career to any other field like sales, manufacturing, etc .. because you had no exposure to other industries while sitting in front of your computer every day.
Development Can Be Stressful
Deadlines are just one of the ways that software engineering can be stressful. The work itself can also be taxing. It frequently requires developers to work through complex problems and design exquisite logic flows. It can require a high degree of focus, which can be draining over time.
Compounding the stress is the needed vigilance against mistakes. A small coding error can show up later in the development process as a major bug. This places a large amount of responsibility on developers to maintain clean code.
You’ll Need to Continually Learn
Programming languages ebb and flow. A platform or scripting language might be wildly popular, and then recede into the distance when something better comes along. Developers that have placed all of their coding eggs in one proverbial basket may find themselves out of demand.
In order to remain viable over the long term, you’ll likely need to learn new languages, new development platforms, and new ways of working. As a software engineer, you can’t rest on your laurels.
You’ll Be Stuck in a Chair
This might not sound like such a bad thing, but it’s unhealthy to remain sedentary for long periods of time. Given the long hours that software developers work, they often find themselves sitting a lot with little chance for exercise.
There are ways around this, of course. You could use a standing desk. You could schedule exercise breaks. But some people are more apt to stay sedentary if presented the opportunity, so it’s worth considering.
There’s a Lot of Competition
There’s considerable demand for software engineers, and there are also plenty of people interested in the field. The better the job, and the more perks involved, the greater the competition will be to fill it.
This doesn’t mean you can’t get a great job. They’re available and commonplace. But you’ll need to make certain your skillset is impressive. It’s good to learn extra languages and it can be helpful to specialize. The jobs are there, but you’ll need to earn them.
Promotion gets Harder
Starting from Software Engineer >> Sr Engineer >> Project Manager >> Product Manager >> Director >> Vice President
Upward movement gets harder after you reach the Project Manager role.
Software Engineers can be rich folks, owning multiple properties/homes but it is an extremely stressful career and protecting your job once you reach the age of 50 can be an ongoing challenge.
Software engineering is a great career, but one must plan on a side income by the time one reaches 30’s. It could be rental income, opening a UPS store in partnership etc. You may be forced to exit the industry in your 50’s and should have something to fall back on.
Working for a larger company will be more systematic but exposure to various technologies and troubleshooting techniques will be limited. Working for a smaller company could mean less discipline but more exposure to various tasks and technologies.
The decision is yours. If you’re passionate about the field, it’s for you. If you’re just looking for a job you’ll need to weigh the high salary and flexible work environments against possible long hours and mental fatigue. If you’re up for the challenge if can be a rewarding career.