4 answers
Asked Viewed 207 times Translate

What are some pros and cons about being a software engineer?

I am a senior in high school and I am interested in the technology field. I have been thinking about getting a degree in computer science and I just want to see what I might be getting into.
#givingiscaring. #schooling

+25 Karma if successful
From: You
To: Friend
Subject: Career question for you
100% of 5 Pros

4 answers

Updated Translate

John’s Answer

Nyla on the bright side, software engineering has one of the highest paying base salaries, and it keeps rising. On the down side, that’s really appealing to a lot of people. While there’s a huge job market, you have to have something that sets you apart from the other candidates for the really good jobs and the ability to advance within those companies. That means you may need to be thinking about getting a master’s or even a doctorate. Ultimately, no amount of education can help you if you don’t have the talent. Anyone can program. Not just anyone can create world-changing applications. While the goal of many software engineering programs is to produce professionals who can stay afloat as technology, code, and computers evolve, you have to work to get that knowledge. Software engineering pays well and the market is booming, but you have to keep learning to make yourself a hot commodity. You have to know several different programming languages—and if you don’t know it and need it for a project, you’re going to have to learn. Additionally, many companies ask long hours of their engineers, especially with an upcoming deadline or big customer. Be prepared to put in a lot of work, in a lot of different ways.

• HIGH DEMAND – Good software engineers find jobs. There is a need for software engineers in the domains of development, testing, and support. Every company has a requirement for a team of software engineers who could develop, maintain, test and support software. Working in such company helps an individual to learn and grow and in turn, they make remarkable progress as a software developer.
• BUSINESS OPPORTUNITIES – One of the best reasons to enter the software industry is to become an entrepreneur. Software engineers have a chance of starting their own software as a service company. There are no extra costs for starting a software company. The only requirement for software developers to start a company is a good computer.

• HIGH COMPLETION – Software industry is highly competitive. You need to work hard and be determined to stay focused on your work. Otherwise, you will face trouble at work.
• LIFELONG LEARNING – As they say the whole life is designed for learning, which is actually true for software engineers. They cannot stop learning new programming languages. The frequency of learning has to be high too.
• DEADLINES – To finish projects on time, software engineers often work for 18-20 hours a day and even on weekends. This can be hectic for few. So staying fit is one way to remove lethargy. But still, it’s a stressful situation to be in.

Good Luck Nyla

Thank you so much! This gives me a lot to think on. Nyla B.

Thank You Joseph. “At the end of the day it’s not about what you have or even what you’ve accomplished… it’s about who you’ve lifted up, who you’ve made better. It’s about what you’ve given back.” – Denzel Washington John Frick

100% of 2 Pros
Updated Translate

Mark’s Answer

There is high demand and good pay in software engineering.
You can find work in most larger cities. You can work at home at many companies.
It is very rewarding to see your application in use in the "real world". Most projects take months, and it's very satisfying to see something launch after you've been working on it with a team for so long.
Software development can offer a large variety. You aren't typically doing the same thing every day. You move from project to project and team to team and that can make work more interesting and less monotonous.


Working in IT almost always means demand exceeds supply. That means you never feel like you are caught up, and there is always another project or problem to fix. Sometimes there are too many projects and problems to fix.

Working on software can mean long nights or weekends, depending on your role and industry. Many times software upgrades or go lives need to happen at night or on the weekend when people aren't using the application or web site traffic is low. Sometimes you need to be "on call" to deal with the software crashing in the middle of the night or on the weekend.

Many coding roles require a lot of "heads down" hours with just you and the computer. Some people don't like that.

Technology is constantly changing. You'll need to be ready for life long learning or you'll risk being "stuck" maintaining old code instead of working on the new exciting stuff.

Thank you so much! The last con about being "stuck" is something I didn't think about. Nyla B.

Updated Translate

Hannah’s Answer

Two very important things to think about:
1) LEARNING to be a software engineer and studying it in college is *very* different from the actual career.
2) At the end of the day, your experience as a career software engineer is mostly determined by the culture of the company that you work for.

Majoring in engineering is very, very difficult, and will make you question why you ever picked the degree in the first place. You will want to throw your laptop out the window, and most of what you learn in class you actually won't directly apply in your career. That being said, if you can get through the degree, you'll have the focus and drive to become an excellent engineer. However, if you are only interested in pure software development, I would recommend that you pick whatever major you are interested in, then minor in CS-- there are tons of self-teaching resources for software dev to help boost your skills .

If you are part of company that does not support its employees well or has a culture that encourages overworking and artificial urgency, engineering can be harrowing and extremely stressful, and you will experience burn-out. Be very careful about where you choose to work and make sure that you will be supported as an employee.

The field still lacks diversity. It's definitely getting better, but the majority is still overwhelmingly white and male. Imposter Syndrome is very real, and you will experience some kind of racism or sexism at some point in your career (whether it's in school, after school, or both) if you are a minority. Again, make sure to pick a company that supports and protects their minority employees, or else you will become extremely demoralized and frustrated.

Very high base salary, vast array of industries and products to get involved in, flexibility of work location and environment, opportunity for new and interesting tasks every day.

If you are part of a company that encourages a healthy work-life balance and supports their employees, being a software engineer can really be a dream job! Of course, there will always be crunch-times, but your day-to-day work will generally be consistent (hours-wise) and interesting; there is a lot of flexibility in your career path, and you really feel the satisfaction of *building* something and watching it come together.

Thank you so much for answering! All these answers are such a great help! Nyla B.

Updated Translate

Daniel’s Answer

Hi Nyla!

Software engineering is not my day job, but my undergrad degree is in computer science and I get to work with software developers every day.

Your experience as a software developer depends somewhat on where you work. Yes, it is true that some companies ask their developers to work 12+ hours/day, but this isn't healthy and you don't want to work at these places. Certain industries, such as the gaming industry, are known for their long hours and stressful work environments, and this isn't conducive to a long career as a software developer. You will burn out. I live and work in Portland, Oregon, and culturally it's much more laid back relative to San Francisco or Seattle. I've always worked 40-50 hours/week. Unless you get unlucky with an on-call rotation, it's unlikely you'll be asked to do more.

There's also an unhealthy obsession with talent and so-called "unicorns". It's more important to work well as a team than to be the one person heroically keeping the company together. While you need to be a competent coder, soft skills are what make a team effective and also lead to opportunities for advancement. Team projects in school are a great way to learn these soft skills, or at least get a feel for how a real software project might go. When you interview for software engineering positions, it's important to be able to articulate how you think through problems and show that you can work well with others.

If you enjoy solving complex problems, automating things, or constantly learning new skills, software engineering is great! Most of the downsides are organizational in nature. Software development takes time and if the business doesn't know what it wants, you can spend a lot of time retracing your steps and throwing out half-finished work. You can have the best team and fail to deliver because of a dependency on an external team that has their own priorities and conflicting orders from the executive suite. Also, meetings can be a significant detractor from the act of coding, the thing most software developers are happiest doing!

The good news is that you can avoid a lot of these organizational problems by being selective where you work. Startups can be exciting, because you're solving new problems without all the organizational baggage of a much larger company. You also tend to be much closer to the user, so you can get that feedback directly instead of relying on management to relay it to you. Some large companies also have great engineering cultures. Facebook is known for being a great place for software developers, and I'm partial to my own company (New Relic) as a great place for early career engineers in particular.

Thank you so much! I wasn't even thinking of how states are culturally. I was focused more on companies culturally. Nyla B.