If you're exploring new professional opportunities, a career in tech may have caught your attention as a potential avenue. Even if you already have one, you might have reached a point where you wonder if it was the right decision.
Having been in the software industry for 30+ years, I firmly believe that a career in tech, and especially programming and software engineering, is not only accessible to everyone, but it also represents a brilliant path to take in life. I am going to give you my top 10 reasons for this sentiment.
The world needs software engineers, desperately. There is not enough tech talent to satisfy the demand, and there are more ideas for software products than people to build them.
Programming requires creative thinking, and machines will not easily replace it; not anytime soon, at least. It is true that today, there are AIs able to generate code, but we are far from being to a point where programmers are going be automated out of existence.
Programming requires creative thinking and a deep understanding of human needs. For this reason, I do not believe that software will be able to replace humans in the art of creating software for humans.
Even if that were to happen, humans would move their focus to the next level. Instead of writing all the code, they'd write the code that is not yet possible to automatically generate, and they'd move their attention to where the human brain is required. I am actually looking forward to that kind of innovation. It will make coding even more interesting than it is today. Repetitive tasks, still very much a reality in software development, will be automated, and the most exciting parts of the work will be left to human creativity.
For all of these reasons, taking computer science and programming as a career path is a very safe bet to make. You will most likely not see a world without programmers in your lifetime. On the other hand, you might see many other careers disappear out of existence.
Many people work menial jobs while they are studying. Minimum wage jobs are popular among college students because they help pay the bills and are accessible without an education. However, programming brings "work as you study" to a whole new level. It opens up opportunities that are not available to most: well-paid activities while still in school.
That has been the case for a while. When I was in college in the early '90s, I was making more money than my college professors selling my software online as shareware. While the term is now antiquated, the concept is very much alive. You write software, put it out there for free, and people can use it with some restriction. If somebody likes it and wants to activate all of the features, they can pay a small amount to unlock it. You might recognize that model as "demo-ware" or "freemium."
Today things are easier than in the 90's. Even if you haven't completed your CS studies, it is not difficult to create software that can be distributed and sold for profit. For example, you can develop iOS applications and sell them on the App Store. With a minimal investment, Apple gives you all the tools you need to build applications and an amazing distribution channel that could make you a fortune.
I am not claiming that it is easy to get rich that way; far from it. However, it is not difficult to make enough money to help pay for college tuition and living expenses for a while. If you are good, it might be the beginning of a future enterprise that could become your fulltime job when once you finish school. Ironically, if you are exceptionally good you might not even have to finish school (but, we all know that you should, right?).
When I was in middle school, I wanted to be either an artist or a software engineer. I couldn't decide until I realized that I could do both. I could take software engineering as a career, and art as a hobby. Even better, it was possible to integrate art and coding, killing two birds with one stone.
No matter what your passion is, you can most likely find a way to integrate it with a career in tech. For example, if you love science, you can write software to aid scientific research. If you like writing, you can write code to help writers or a website for writers to share their work. If you love cooking, you can create applications to support cooks, or sites to share recipes. No matter what you are into, coding will integrate nicely and aid your passion.
In the US, software developers median salary in 2015 was $98,260 according to Labor Department reports. The highest-paid 10% of the profession earned $153,710, and the lowest-paid earned $57,340.
That was 2015, and numbers are going up. Today a talented junior developer with one year of experience can make as much as $80K, and even more. There are not many professions that pay that well from the beginning.
While a CS degree helps, in the USA you can aim to a high salary without a degree. After a few years as a software engineer, if you are sharp and continue to challenge yourself, you can climb as high as your potential can push you.
To build a healthy physique, you exercise by performing movements that challenge your body. Similarly, to keep your brain in shape, you need to exercise it by solving difficult mental problems. Coding is similar to lifting weights for the brain.
Research has found that learning to perform challenging tasks can keep cognitive functions sharp as we age. However, to be effective, the tasks need to be new and stimulating. In other words, you can expect to keep your mind sharp by doing the same thing over and over your entire life.
When developers work on challenging projects, they can push their brains to the limit on new and stimulating problems. Their mind has to stretch to create models and abstractions; such mental exercise makes developers very flexible thinkers.
Moreover, developers operate in a virtual laboratory where they can make small changes to solutions, and observe the effects immediately. As a result, their brain is subject to a feedback loop that challenges and corrects their mental powers at once. It is like having a personal coach who observes and corrects mistakes, continuously and tirelessly.
Software developers can code their entire career and never stop growing. Like martial artists, age does not prevent them from making progress. One can continue learning and growing almost indefinitely through the corporate ranks. Mastery and wisdom come with practice, and practice keeps mental functions active, preparing you for the next challenge.
Even if a developer doesn't want to code forever, there are career progressions that can lead to many different places. For example, developers often become:
- Consultants, helping other companies achieve their goals.
There are no limits to the career growth possibilities that you can have as a developer. I've even seen developers easily change careers paths to become successful lawyers, scientists, musicians, artists, etc. The mental exercise that coding provides, and exposure to many industries and problems, is a perfect launching platform to bring your influence and expertise anywhere you desire.
When I started coding, the languages to learn were mostly C, Pascal, Basic and Assembly (Cobol, Fortran, and Lisp if you were interested in more specialized areas). Today many more languages, frameworks, technologies, and environments exist and continue to evolve and improve.
Evolution is faster than anyone's ability to keep up with everything, and it is accelerating at a rapid pace. Large software companies are developing specialized languages and framework designed to solve their problems more naturally, and the trend is continuing and expanding.
There is no way you can learn everything and keep up with all tech trends and new technologies. The problem is not running out of things to learn. The problem, if anything, is to keep current in at least a few areas.
Since there is never a shortage of things to learn, there is also no shortage of challenges. As a developer, there are virtually infinite problems to resolve. For each problem, there are countless ways to solve it. If you want to challenge yourself, there is always something that will do it.
In my 30 years in the industry, I have never met anyone who could claim to have mastered programming skills to the point of being bored. If people get bored, it happens because they are not looking for challenges or because they are interested in a career path change.
If you like to keep your mind busy and resolve problems, programming is a lot of fun. There are always problems and technologies that can challenge and capture the attention of every personality type, aspiration, intelligence level and passion.
When you get bored with a technology, you can change and move to something else. When you get tired of a company, you can move to the next one; there are countless organizations hiring developers, and most of them are desperately looking for talent. When you get bored with a particular industry, you can find a different one where you can apply your skills. In the process, you learn a lot about many different things.
For example, I have been personally involved with:
- Embedded systems.
- Telephone answering systems (back in the '80s)
- Real estate.
- Mobile applications.
- Large-scale web hosting.
- Web development.
- Computer language design and development tools and platforms.
- Virtual machines.
- UI and UX.
- Learning systems and narrow AI.
- Big Data and reporting.
- 2D Image filtering and elaboration.
- 3D image rendering and raytracing.
- Micro-controllers and IoT.
- Education Technology.
- Cloud computing.
- SOA (Service Oriented Architectures)
- SAS (Software as a Service)
For each of these areas, I just scratched the surface. There is practically no end to the depth and breadth potentials in any field, and there are so many areas and industries to explore that the fun will never end.
I studied CS in Italy and worked there for many years. At 26 I got married to my American wife and moved to the US. The skills that I acquired in Italy were the same skills I needed in the US. I didn't have to relearn anything. When I came to the States I made a few phone calls, showed up for an interview, did some familiar C coding on a whiteboard, and got hired. It took about two weeks to find a well-paid job, even if it was my first time in the states.
Programming is like a lingua franca. No matter where you learn it, it stays the same everywhere you go. It is similar to a career passport for the world. It can bring you anywhere and everywhere.
The same cannot be claimed for many other career paths. For example, if you study law, you usually only learn the law of a particular country or even state (unless you specialize in international law). If you are a doctor, your license needs to transfer if you want to change geographical area. If you study political science, your knowledge mostly applies directly to a particular government. In other words, many fields are localized, and they don't easily transfer to other places.
With computer science and programming what you learn somewhere in the world is immediately applicable anywhere. There are no certifications or licenses that need to transfer, and there are no language barriers. Everything in technology is universally in English; you learn it once, and it follows you anywhere. How cool is that?
Why does it matter? Let's say that you find love in a foreign country and you decide to move there. As a programmer, once you can legally work in the country, you can just go there and do it. No extra schooling is generally needed. Coding skills open the door to interviews and jobs without geographical obstacles. It is pretty amazing. If you have the skills, you can also work 100% remotely for any company in the world without having to move at all.
A career in tech is fun, makes you a better thinker, keeps you mentally young, gives you a passport to companies everywhere in the world, keeps you challenged, is not going to be automated out of existence, pays well and is compatible with whatever passions you might have.
Even if math is not your strength, there is much coding you can do without advanced math knowledge. You don't necessarily need a CS degree, and there are many informal ways to learn.
If you are in tech, you made a great choice. If you are thinking about tech, I hope this list of reasons will give you a little more confidence in making that step. You won't regret it. I promise.
Learning to code products doesn't take as long as you think - more precisely, 300 hours to learn, build, and launch. Learn about the history and misconceptions of development preventing you from even starting and then hop on that tech bus.