Signup to the waiting list!
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.
More lab tutorials:
- The stack I use to run this blog
- 8 good reasons to become a software developer
- SEO for developers writing blogs
- Review of the book The 4-Hour Work Week
- Build a lifestyle business
- Build your own platform
- As an indie maker, what kind of product should you build?
- Create your own job security
- Developers, learn marketing
- The freedom of a product business
- Generating value
- Have a purpose for your business
- The idea is nothing
- The niche
- Remote working for software developers
- Product / market fit
- The best podcasts for frontend developers
- Why should I create an email list?
- Disconnect time from money
- The scarcity principle applied to software products
- The social proof principle
- How I added Dark Mode to my website
- My notes on the Deep Work book
- The pros of using a boring stack
- How to estimate programming time
- On going independent as a developer
- How to learn how to learn
- Why interview questions for programming jobs are so difficult?
- Do I need a degree to be a programmer?
- Everyone can learn programming
- How to be productive
- How to get the real number of pageviews of a static site
- Have you filled a developer bucket today?
- How I record my videos
- All the software projects I made in the past
- Tutorial purgatory from the perspective of a tutorial maker
- Every developer should have a blog. Here’s why, and how to stick with it
- Having a business mindset for developers
- How to write Unmaintainable Code
- What is Imposter Syndrome
- How to work from home without going crazy
- How I prototype a Web Page
- You should be the worst developer in your team
- How to start a blog using Hugo
- Write what you don't know
- How to block distractions using uBlock Origin
- Coding is an art
- I wrote 1 blog post every day for 2 years. Here's 5 things I learned about SEO
- Dealing with the fire
- On being a generalist
- The Developer’s Dilemma
- My plan for being hired as a Go developer. In 2017
- Productivity gains of using a Mac and an iOS device
- How to go from tutorials to your own project
- This is my little Digital Garden
- How to start freelancing as a developer
- Sharing the Journey Towards Building a Software Product Business
- Subfolder vs subdomain
- How I use text expanding to save time
- Software is a superpower
- I love books
- How I decided to create a new projects management app
- On using IndexedDB as the main database
- How to automatically cut silence in videos