Everyone knows that software developers is one of the best paid professions. However, the most prevalent assumptions are that entering this career is a long and complicated process and that most people are just not cut out for this type of job. Many people believe that you will need to have a degree in computer science and be really good at maths just to get your foot through the door. But what if I told you that you don't necessarily need any of these to start your career in software?
I have been a software developer for a number of years and I neither have a degree in computer science nor I am particularly good with maths. I have learned how to code on a job and I still use calculator to solve relatively simple multiplication and division problems. Over the years, I have met enough software developers whose career progression was similar to mine, so my experience is certainly not unique.
While it is true that software development may not be for everyone (mainly for the reason of preference rather than the ability), it is one of the least bureaucratic career options out there. Therefore, if computational technology is something that excites you, read on. I will tell you how I entered the career and how you can do it too.
How I became a software developer
Although I never did a degree related to computer programming, I have completed a Bachelor's and a Masters degrees. My Bachelor's degree was in Environmental Biology and my Masters degree was in Environmental Informatics. Even though the latter sounds like it is related to computers, it had nothing to do with software development. Instead, it was mainly about using specialists software in the context of environmental science. So, my formal education did not prepare me for the career of a software developer and this wasn't something I was planning to pursue.
When my university education was completed, I managed to secure a job in environmental engineering industry, exactly as I wanted at the time. My goal was to use my skills to the best of my ability to contribute towards what's good for humankind. Money wasn't my first priority at the time. However, as a professional with a Masters degree performing an in-demand job, I did expect to be paid reasonably well.
My initial pay was low. However, this didn't bother me too much. After all, I was doing a graduate scheme where I was learning the actual skills required by the industry and not just gathering theoretical knowledge, as I have been doing in my university for 4 years prior to that. Higher pay was meant to come later. At least, this is what my assumption was.
My job was mainly about using software to construct flood prediction models. The year was 2012 and this was the year when whole of Great Britain got severely flooded. The software that we were using was highly accurate. If you input as much data as possible into it and calibrate it against the actual historic flood events, you would be able to predict how effective various types of flood defenses would be and what would be the best locations for those. It was a relatively cheap and effective way of establishing what needed to be built before relevant authorities would actually commit to building something.
While I was learning how to operate flood modelling software and studying various hydraulic equations, I started learning a programming language called VBA (Visual Basic for Application). I didn't do it because I had an intention of becoming a software developer. I was using tedious and repetitive tasks in Excel quite a lot and VBA was the language built into Excel to automate many of the routine boring tasks. Later, I found that there was a more professional version of the language called VB.NET and I started to liaise with software developers from our company to build extensions to various software packages we were using. I just found coding to be interesting.
So, I was at the crossroads. I could specialise as either a hydraulic modeller or a software developer. Both choices would require equal amount of effort to master. At first, I was thinking that being a hydraulic modeller would be a better choice. I wanted to do something unique and be involved in something that genuinely help people. However, there was one important factor that made me reconsider my choice.
At the time, my salary was lower than what warehouse operators were getting in the local area. This prevented me from having the life I wanted. My social life wasn't great, because I just couldn't afford to go out with friends as often as I would have liked to, while being too ashamed to admit it. Having holidays was something I had to completely forget about. Even though I could afford to buy basics, I knew that if an unexpected expense would materialise, I would struggle quite a lot.
The problem was that my income situation wasn't due to me being a graduate trainee. I knew plenty of hydraulic modelers with several years of experience and none of them was in a financial situation much better than my own. Environment engineering is not a field that attracts huge amounts of money and many highly qualified and talented people were kept there by being subjected to constant guilt tripping, even though staying in the industry wasn't in the best interests for any of them. Many publications and internal documents that we were encouraged to read told us in a subtle way that if we would not be working in this industry, we would be a part of the system that destroys the environment.
Despite all of this, one day I realised that the people who benefit from my flood modelling work the most are home owners whom I've never met. As I didn't have any realistic chance of becoming a home owner myself while I was still doing that job, I stopped having any doubts about my career choices. I firmly decided to take the path of a software developer and move to a different industry.
This was, by far, the best career choice I have ever made and I have never looked back. Since then, I have changed a number of jobs, because I now have options. I no longer even have to apply for jobs, as recruiters themselves send job offers to me. I no longer have any reason to complain about my finances and I do live in a house that me and my wife own. As well as all of this, I find the job really interesting. I still insist on working on those types of projects that make people's lives genuinely easier, but I no longer have to sacrifice my personal wellbeing in order to do so.
How can you become a software developer too
Although I didn't specifically do a degree related to computer programming, I do have a degree nonetheless. However, if you don't have one and are considering to become a software developer, this should not put you off. I worked in a number of different companies as a software developer and I met enough people who did the same kind of job and didn't have any degree at all. My degree is vaguely mentioned at the bottom of my CV and I never get asked about it during job interviews. Software industry is one of the least bureaucratic industries out there and being able to demonstrate programming skills is far more important than having a certificate with a qualification on it.
Getting an office job is a prerequisite for becoming a software developer without a specialised qualification. There are plenty of office jobs which don't require any specific qualifications to enter. Once I got my foot through the door, Excel automation is what has worked well for me as a starting point.
Many office-based jobs involve using Excel and many of the tasks associated with Excel are boring and repetitive. Therefore, if this is what your job involves, you can make a start by learning VBA and getting some of those tedious tasks automated. Once you become reasonably proficient at it, make sure that your co-workers and superiors know about these skills of yours. You can then start liaising with actual software developers and contribute towards what they are doing. If you keep at it, you will gradually become one of them.
An alternative way that has worked for several people that I personally knew is to start volunteering for tasks that put you closer to the software-building process. For example, you can start getting regularly involved in manual software testing tasks. While doing so, you can start learning how to automate certain testing processes by writing scripts in actual programming languages or sit down with developers to get familiar with how the software works from the inside. The rest of the process is the same.
There are also a number of courses that are endorsed by high-profile universities that you can take online in your own spare time with an official certificate being given at the end. Some of such courses, like the ones available at Coursera, are available free of charge and you only have to pay if you will need the certificate at the end. However, even those certificates cost well less than actually going to a university. So, doing one of such courses is just like doing a real university module, but without any annoying side-effects of being in a university, such as having to pay outrageously high tuition fees, having to deal with militant "social justice warriors " and having to endure indoctrination attempts from ideologically possessed professors.
Finally, there are several paid certification programs organised by vendors of particular technologies, such as Microsoft and Oracle. Those certificates are well recognised in the software industry and having one of those will give you a distinct advantage in your career.However, those certificates are not for beginners. Before you can become a certified Oracle database developer, you need to have a good understanding of how relational databases work. Likewise, if you want to become a certified C# programmer, you need to know the basics of object oriented programming.
Whichever path you chose to become a software developer, there is a wealth of good online resources to guide you in the process. I have previously listed some of those for various career scenarios. For example, resources for becoming a web developer or a mobile app developer can be found on this website.
A word of caution
Although software development is a great and rewarding career, it is certainly not for everyone. What helped me personally is a great enthusiasm for technology since the early age. If technology is not something you are particularly excited about, then working in the sector will be extremely stressful and you will only grow resentful over time. I saw this happening to people.
First of all, even though you don't necessarily need a formal qualification, you will still need to dedicate sizable chunks of your spare time to study how to code, especially at the very beginning. However, there are also some other factors to watch out for. If you are not sure whether software development is something you could do as a career, this article will help you. It lists 10 common points about a typical career in software that many people would not be able to easily tolerate on day-to-day basis.
However, if you have decided that software development in particular is not a right career for you and you don't have any advanced qualifications, don't despair. There are plenty more well-paid career choices where your performance matters much more than your qualifications. Any sales-related field where commissions are paid is a good example. I will post an article about getting into one of these, so watch this space.
Written by Fiodar Sazanavets
Posted on 18 Feb 2018
Imdad azman 12 May 2018
Good quality post! I do feel the frustration when starting to learn a new language and encountering the bugs in making projects. But the excitement I get after solving the bug is just unexplanable.
Eric 22 Feb 2018
Very good article.
Fiodar 18 Feb 2018
Excellent post and thanks for sharing it. I started out as an engineer and switched to CE with no formal training.