Being a software developer for about 10 years now I receive many questions about the IT industry. Some of them come from people who want to make a career change and others from ambitious high school/college graduates who want to make a lot of money. Here are some typical questions:
- I want to make this cool app, how can I do it?
- How much money can I make in the IT industry?
- I like video games, which way should I follow to get a job?
Software development is a beauty because it is such a creative job, pays above average salaries, puts your mind to work and -the best of all- can be self-taught.
This means that you can break into the technology industry without having to study 4 years for it. Don’t get me wrong. I am not saying the university is not important – all I am saying is that it is not necessary.
I have met people who achieved very high-level positions in the industry and yet have no science degree (hi Shane!) or no degree at all. This is partly because the job itself is so practical and because the demand for new people is much greater than the supply.
Why become a software engineer?
The average person earns ~£37,500 per year here in the UK with London-based jobs paying around £42,000 according to Glassdoor. That’s £2,643 after tax every month in the pocket! If you manage to make it into one of the big names (Facebook, Google etc) you are looking at a six-figure salary before tax.
What is more exciting, is that the entry barrier is quite low compared to other professions. There is no such thing as a “chartered” or “qualified” engineer title you must obtain before you can start working. There is no need to belong to a recognized organization to get a job. It is also considered a low-stress job which means you will not have to say “I’m really stressed today!” many times in a month. If a doctor makes a mistake that can cost a life, whereas in the technology sector a mistake can be “patched” in the next cycle.
In your day to day job, you are constantly looking to solve problems, more like puzzles, that enable you to think in a constructive way. You get to challenge yourself daily and develop skills that are transferable in other areas of your life such as time management.
But it is not all rosy though and salary is not correlated with job satisfaction. Projects have the usual deadlines and boring meetings & office work require physical exercise to stay fit. You could be very well paid but having to work with a hell of a person every single day, is not money worth getting, is it?
You get to work with clever people with poor people skills which can be hard. Various tasks have nothing to do with the actual work. It is not uncommon to spend hours in meetings that produce no useful outcome or interviews that fail to find skilled new people. Not to mention you will have to train yourself from time to time and keep up to date with new technologies that come out.
After a few years in the industry, I personally feel blessed having a profession that allows me to turn my computer hobby into a real job.
Now that we’ve established how awesome technology jobs are, let’s see how we can make it to the real world.
How to become a software developer without a degree
1. Find which area interests you the most
There is no point in diving into a field you don’t like. There are numerous fields in technology one can follow. Although they all lie in the same sector, they can be quite different. For example, you may like building websites for companies but hate designing solutions to problems, in other words, writing algorithms. Supporting a business with heavy traffic or building the first line of defence to hackers are other options too!
Everything can be taught using online courses and dedicating your own time to it. Many online platforms offer free education with a paid certificate only in case you want to prove you obtained it. Most of these platforms offer forums for each course where the participants can share their progress and seek help.
So to get a broader view of the Computer Science field I suggest you start with introductory courses and then narrow down as needed. None of the below requires any prior experience and they can be completed at your own pace:
- Introduction to Computer Science by Harvard on Edx
- Learn by solving real-world problems in gaming, finance, cryptography etc
- Free or $90 with a certificate
- Complete Java Masterclass
- Java 8 expertise, quite valuable for the money
- Very well-rated by other students
- CS 101 Bootcamp: Introduction to Computer Science & Software on Udemy
- Provides a quick all-round education for beginners
- 30-day money back guarantee. Smaller course but great if starting out
- Programming for non-programmers: iOS 10 and Swift on Lynda
- Build a basic iPhone app and learn the iOS ecosystem
- You will need a Mac computer
- Intro to HTML/CSS: Making Webpages on Khanacademy
- A Step-by-step guide to building a website
- Free course with voluntary donations
- The Complete Web Development Course on Udemy
- Great value for money (58-hours video, 15 projects)
- Probably the easiest way to start making side income with web development
There are of course hundreds of other courses worth mentioning that you can find online and so many different paths one can take. The point is to just start. It doesn’t matter if that’s not the perfect course for you. Most of the courses are short and explore various areas. You will find motivation because as we have agreed already, building something is a very creative and exciting process. I still remember the first application I built, it was a theater reservation system. The excitement I felt when the project was complete was worth all the effort and frustration I went through while trying.
2. Practice, practice, practice…
If something is important in the technology field, that is to be persistent and consistent. Trying, failing and trying again is the key to success. Nobody will teach you how to program but yourself. You can go to the best university in the world but it’s only by getting your hands dirty that you become successful. It is also what will give you the most satisfaction after completing a task.
Imagine a baby that learns how to walk. It stands on its feet, hit the first object and fall down. Will it stop? Hell no! It stands up and learns to avoid this object next time. Will do it 1000 times and the baby will not get hit ever again. Practice is what makes acrobats balance on a 2cm rope for a minute and a pianist performing flawlessly for 2 hours without reading any notes.
3. Ask for help
Getting stuck is inevitable. Sometimes this is a good thing since you will manage to find the way out by thinking and trying different methods. In fact, getting stuck in programming is the only way to learn. Struggling too much is not though. Asking for help in forums, on StackOverflow and reaching out to people (including me!) is the way forward. You should not spend much more time than needed on one problem because you are not gaining anything as well as missing out on progressing quickly.
I remember I could spend 3 hours on a simple exercise because I was too stubborn to solve it out of pride. How stupid I was.. Remember, pride will not get you as far as a little help will. Offering help on the other hand, also gives you bonus points, since you experience how other people think and you develop a broader view of problem-solving.
4. Publish your work
Ok, you put all this effort and completed a few courses on a specific domain. First of all, congratulations! It’s a huge achievement and you will not regret it. But demonstrating your work and passion is very important.
Similarly to how you want to see previous reviews before buying an Amazon product, people will want to see your skills before they hire you. Especially when you’re going the solo way by being self-taught.
Showing your work and demonstrating your past projects is as important as doing them in the first place. This is why everyone should have a blog/website or an online Github account to post their work publicly. This not only helps you establish a reputation prior to meeting someone but proves your ability to work and your level of expertise. It doesn’t matter if it’s just a simple website – just put it out there so people can see. What matters is that you have some skills already, you have passion and huge potential! Here’s how to start a blog in 5 steps.
There are plenty of meetups you can participate and learn from others. For example, I am into Artificial Intelligence lately and attending the London Data Science meetup. This allows me to share my thoughts with like-minded people over free beer and pizza 🙂
Skills matter more than papers and you will be in great demand in a growing industry. Smart homes, virtual reality (VR), driverless cars and governments pouring billions of pounds into research & development are just a few examples. College education has been disrupted. It’s not a myth, it’s the reality. High school graduates study up for a few months and score a £30,000 first job in the industry. You can even create jobs by starting a small company or building an iPhone app.
It’s not who has the best degree and CS degrees are usually out of date after 4 years. It’s about who has the best skill set and can solve real-world problems. Nowadays, this is the best shortcut to success.
Now you may call me a hypocrite since I already had a degree before joining the IT job board. However, this allows me to compare whether obtaining a degree is necessary or not. Yes, you may occasionally notice some learning gaps here and there or have a harder time during the courses compared to other students. But it is easy to fill these gaps while growing your career and by studying when needed.
All you need is the willingness to learn… Now go out there and build something!
I’ll be keeping an eye on the comments 😉
If you find this content valuable, please share it with your friends on Facebook or Twitter. You help me bring more readers to this blog and encourage me to write more useful content like this one!