Years ago when I first started software development, mentioning you were a 'coder' would conjure images of basement-bound geeks hidden away in the bowels of the company. Today, software developers are more likely to be seen as globe trotting digital nomads working while sitting under a palm tree and drinking a coconut.
In this two-part article, I will address the two main questions when it comes to changing your career. Is it worth taking the leap? And practically what steps are required to make the transition?
There are many reasons to become a 'coder' and I've listed the main ones below:
Software development is well paid and it's easy to find work
Some years ago, my brother wanted to change careers. He had studied Maths and was training to be an accountant. Somewhat unsurprisingly, he was finding the work boring and wanted to try something else. At the time, I was living and travelling in Peru and working as a freelance iPhone developer. After some convincing, he decided to quit his job and fly over Peru to meet me. We spent a month in the shadow of three huge snow capped volcanoes while I taught him how to build iOS apps. It took him some time to get the basics, but soon he was developing his own gym logging apps and 2D games. After several years of hard work and guidance, he moved to Australia and landed a job as a junior developer in an app development company. He found the work interesting and quickly progressed. Now, 6 years later, he is responsible for the whole Asia Pacific region. Managing a team of over 270 people and earning a high 6-figure salary.
The modern world runs on software and technology is always developing. For that reason, new systems are being built and older systems need to be maintained. Since software development is a technical skill that takes time and dedication to learn, there just aren't enough people to cover all the work. As a result, it's easy to get a job, the pay is high and you have a lot of job security.
Software development is a transferable skill
If you study as a lawyer in the UK, you would need to re-train if you moved abroad. However, with software development, your skills are directly transferable. As well as providing excellent job security, this allows you to live and work pretty much anywhere in the world. The skills are also transferable between roles and programming languages. I started off building data-driven websites, then transferred to iPhone development and then to Android... Once you obtain core concepts, learning new languages takes weeks rather than months or years.
The work is varied, interesting and creative
Most people don't appreciate how interesting software development is. You are presented with a problem and then you can use your creative problem-solving skills to find the best solution. It's a bit like a Sudoku or crossword but on a much larger scale. As you become more skilled, your solutions become quicker and more intuitive.
Equally, it gives you the ability to harness the power of computers to build your own creations. If you have a cool idea for an app, you can sit down and code it! For example, recently I built a sound chair. This is an arm chair with speakers built into it so you can feel the vibration of your music in your whole body. I wanted to be able to also have a light that would pulse with the music so I did some research online, bought some components and ended up programming an Arduino to connect to a LED light array to provide the light effects. Then I built an iPhone app that would connect to the Arduino with Bluetooth Low Energy so I could control it on my phone. I had never done something like this before but because I had the software skills, I was able to complete the project in a matter of hours.
It's easy to be your own boss
As a software developer, you get to decide if you want to work for a company or work for yourself. Most people I know who are employed have a very nice work environment. Think table tennis tables, comfy sofas and even free beer during the day! They are also working very reasonable 9-5 schedules and are earning upwards of 90k euros. In many cases, it's easy to do remote work. One of my friends decided to spend 4 months travelling across the South of Europe without even telling his employer. He was literally sitting under an umbrella on the beach working on his laptop while drinking a nice cool cocktail.
Personally, I've never liked being tied down so I've always been self-employed. When I'm working on a project, I may be very busy for 6 weeks. But that is followed by quieter patches where I'm only working 4 - 6 hours per day. If I feel tired, I can just take the day off. If I want to wake up at 11am that is no problem, I can work a bit later. I have also done a lot of travelling. I've been to Argentina, Japan, Thailand and Australia to name a few places. Recently, I spent a summer converting a campervan and spent a year driving around Europe. I work hard, get paid a high hourly rate and get to live my life to the fullest.
It is easy to learn (relatively)
The best thing is that you can teach yourself how to be a software developer. Everything you need to get started is available online. There are many good online courses and programs. You don't even need to use a paid course. A good starting point is to think of something you would like to build. Maybe it's a website or a basic game or a mobile app. Then you can search online for how to make the most basic "Hello World" app for that platform. After that, you just take it step-by-step researching each new feature you want to add. Your first attempt probably won't be a work of art but if you are committed, over time your skills will naturally improve. This is an area where having a mentor really helps. We can provide guidance and support to stop you running into common problems. You will develop faster and avoid a lot of frustration (take it from someone who learned the hard way!).
You don't need qualifications
You may feel that all this is too good to be true.. Where is the catch? Do I need to shell out for a Computer Sciences degree to get a foot on the ladder? The honest answer is that there is a catch (kind of). Software development is an art and it takes time and dedication to master. The benefits are huge but 95% of people give up within a few weeks of starting. The good news is that you don't need any formal qualifications. I have employed many people over the years and mostly I look for skill, results and dedication rather than formal qualifications. If I were presented with two candidates, one who had a Computer Sciences degree and nothing to show on Github (a place to host all your personal projects) or someone who dropped out of school at 16 and was self-taught with many completed projects to show, I would go for the latter.
So really, the only barrier is your dedication and interest. This is another case where having a mentor can make all the difference. You have someone to support you when things are tough and keep you accountable when you want to give up. In most cases if you can keep going past the 6 month mark, you would be ready for a junior programming position which is the first step on the career ladder.
I hope you enjoyed this article. It is supposed to be inspirational and to showcase the benefits of becoming a software developer. But it addresses the "Why?" instead of the "How?". In part 2, I will share insights from my own experience of how to become a freelance software developer.