If you are a gifted computer wizard from age 7, there’s no doubt you’ll become a great software engineer. But if this is not the case, why should you be one of those people spending all day typing at a keyboard making the machine do what you want?
I’m assuming you are willing to choose this career in order to make a living, and not just for your own enjoyment.
Enjoying the career is another topic, and one that must be carefully evaluated.
If you strive and don’t really care about computers all that much, then software engineering will not be a good choice, because in order to be good, you need to spend countless, countless hours refining your craft, keeping up with the industry at large, getting to know every single little detail you should know to do your work properly.
Passion is one key ingredient of being good in any profession.
You will learn every day
Every day you’ll be presented with new challenges. You’re an engineer working on potentially very complex problems.
You need to know how to figure things out, and if you don’t, you need to learn it on the job.
You are expected to be learning every day, and this is awesome as you’re not stagnating in the job market but building up lots of experience as the time passes. Valuable experience for your company, other companies if you decide to switch jobs, or even for yourself if you want to try going indie.
Being required to learn every day can either be frustrating, or very exciting. It all depends on your mindset.
It’s a profession in high demand
I don’t know a single developer that’s good and without a job or something to do. Good developers are in high demand. You might not find a job for a top or famous company, but local companies are desperate to find talent.
You can pick you own journey.
You can move to the Silicon Valley and join a top company, get a very high salary and spend the days with smart people building the next big thing.
You don’t have to move to Silicon Valley to find a job as a developer, especially as a Web Developer, one of the professions that is more open to remote working.
There’s no shortage of opportunities in the foreseeable future, too. On the contrary, there will likely be more demand for developers in the future, to develop new software or maintain an existing one.
Being able to work remotely
Remote working, even for just a few days a week, makes for a good work/life balance.
It’s not allowed in all the environments, but remote working is a perk that’s very well suited to software development.
If you are one of those developers that want a 100% remote job, then you are basically given the choice of living anywhere you want, with a decent internet connection.
No need to waste time commuting, having the problem of finding something good to eat during the day, being forced by office politics and rules to leave at some specific time of day, or - worse - waiting until people decide it’s time for leaving to avoid being the first out and sending the “wrong message”.
All you need is a good internet connection and some quiet place in your house (a dedicated room is highly recommended) and you can sit there, do your best work, and take time off as needed. Maybe you like walking the dog at 11:00 AM, and in some places, that’s totally allowed to pick your own hours, as long as you perform the job you’re expected to do.
Good pay and economic benefits
Software development is one of the jobs that - depending on your responsibilities and how good you are at your job - generally comes with a good pay.
As a remote employee, you can choose to work for a richer country and take advantage of the economic benefits of doing so. Of course, this depends a lot on the options available to you.
If you choose to be a freelancer, that’s another field where companies are willing to spend good money on talent.
You will likely be paid average in your first few jobs, however.
You have the option to go indie
Say you work 10 years for a company and one day you “go crazy” and decide to leave your job because it does not satisfy you anymore. Or you get laid off, or the company closes down.
Most professions require someone to hire you, but software development has this nice thing called indie development, where you basically go on your own, build something, and sell it to the world.
It can be a SAAS (Software as a Service - aka Web App), a mobile app a desktop app, even an ebook on the subject you’re the most expert about. You can leverage years of experience into a new venture, and you get a new experience you can offer to future employers as well.
It’s a creative outlet
It’s not painting or design, but programming is a highly creative profession.
Any time you set out to write a program you’re creating something new, much like when you were playing Lego as a child.
Many times you experiment with technologies, only to find that’s not a good way, so you choose a different path. Every time you write a new program, you learn something new.
It’s never boring (unless your job is boring in the first place, but the craft of programming in itself should not be boring - otherwise you always have the option to look for a non-boring job)
Coding is social
Even if one might spend 10 hours a day sitting alone with a computer, saying programming is social is perfectly right.
We use software built by people, people wrote the manuals and guides to using that software, we rely on Open Source software, interact with people on forums to discuss and learn more about programming, and finally, we make the software for people.
You work with a team, that might be distributed or local to your office. You have stakeholders, people are waiting for your fixes.
Programmers like to go to conferences, the bravest even speak at them, and we like to rant, comment or share things on Twitter.
We star projects on GitHub, open issues, submit a pull request to improve the work of someone else.
All of this is a social activity, and the best thing is that you can go at your own pace, and be as social as you want.
It’s up to you
Everyone has the same opportunities. We have access to the most powerful servers and services in the world. Your phone is thousands of times more powerful than the computer the NASA used to send people to the moon.
A person in Siberia can have the same hardware someone in Silicon Valley uses.
You have access to millions of books online. All it takes is time, dedication and perseverance, and you will learn all you need to learn to perform any kind of job.
The barriers are lowering every day. 10 years ago the landscape was completely different, and imagine 10 years from now.
You can make an app and sell it worldwide in very little time and upfront investment.
Those are 8 random reasons. I’m sure there are way more good reasons, and as many reasons to not become a software developer.