How to Become a Software Developer without a Degree

software developer without a degreeBeing 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:

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.

Tip: You can try more data-oriented courses too, for example, Introduction to data analysis using Excel or The Data Scientist’s Toolbox.

2. Practice, practice, practice…

Udemy Top Online Courses
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 🙂

Final thoughts

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!

Share this article:

Share on facebook
Share on twitter
Share on pinterest
Share on whatsapp

Join the Newsletter

Every 2 weeks, I send a handwritten email with honest, valuable content.
No spam, ever.

    We respect your privacy. Unsubscribe at any time.

    You may also like...

    46 thoughts on “How to Become a Software Developer without a Degree”

    1. Hi Mike. Nice article. I actually did the “complete web development” Udemy course and I like the practical approach and real world projects in it. As my job is not offering me a lot of opportunities to code I will soon start a professional university program on Java that will keep me coding for many hours a week. Yeah!

      Reply
      • Hi Ilas, thanks for sharing that! Do you prefer more back-end development then? I used to do some web development too but nowadays it’s algorithms that attract me more. If you need any help in Java let me know…

        Reply
    2. Indeed, the focus is more on back-end. Overall my intend is to reach a high quality level of programming where Java is just the way to get there (and likely I will stick to it). And thanks for the offer Micheal … I will surely make use of it once I start the university program.

      Reply
    3. I am 14yr old from India and I have learnt web designing and development,IOT development,C programming and can i get a job at big companies such as Google,Microsoft or Facebook

      Reply
      • Wow, 14 years old! You can definitely do that Aayush. You have passion and motivation (I checked out your Calculator website!).

        Keep it going. A good book to prepare you for Google-like interviews is the “Cracking the Coding Interview: 150 Programming Questions and Solutions”.

        Reply
    4. Hi Mike, great article! I have been working as a software developer for 12 years at one of the biggest banks in South Africa and have no degree at all. Promotion is also on the cards for those who don’t have degrees: I have been a senior technical lead for the past two years now working on one of the most important projects at the bank in the past 15 years.

      All of the points you raised are completely valid though do you have any suggestions on getting a job overseas without the neccessary qualifications? I find it extremely frustrating to go through the entire interview process on Skype just to get thrown out at the end due to not having the required qualifications.

      Reply
      • Hi William, I agree this is quite frustrating but I’m surprised this is happening to you.

        Was this a one-off or has it happened multiple times?

        My experience says that after becoming a senior and having acquired the necessary work experience the degree qualifications become obsolete. They’re often not even mentioned unless the dissertation topic or something similar is relevant.

        With the exception of some very specific job roles requiring certain certifications e.g. Cisco CCNA.

        My advice would be to focus on proving you’ve successfully delivered what the role needs thanks to your previous positions. Now if there’s a strict company policy on hiring people with degrees there’s not much you can do about it, apart from trying to find out from the job description and not waste any time interviewing there.

        Reply
    5. Iam 18 years old engineering student in electronics degree. But I was very interested in computer courses. But I can’t afford to take any course as I wish. I completed android development courses in websites like udacity , udemy etc. I have done courses in ethical hacking in websites like cybrary , udemy. After completing all these courses I dived deep into android and iOS development. I made some own apps and published in third party websites. Can I get a good job without complete my degree.

      Reply
      • Well done for doing all of these side projects. That means you’re passionate and love the subject! Of course, you can get jobs without completing your degree – like Bill Gates, Steve Jobs etc 🙂 But if you want my advice, finish your
        degree since you’re in. It’s on a related subject and will help you with credibility too. Also, try to build a website or blog where you list your side projects and showing what you’re capable of doing – See here for starting a blog: https://www.foxymonkey.com/start-a-blog-beginner/

        Reply
    6. Thanks Michael, great article!!. I also have great love for software development but my challenge is find my area of interest and most times getting the right materials to use.

      Reply
      • Thanks for your comment Oladotun! Do you mean it’s hard for you to decide where to focus (web dev, iOS, algorithm development etc) ? If so, try to get a taste of everything and follow what you like the most. That’s what I did a few years ago.

        Reply
    7. Hello, I am a 12th standard student in India and have an interest in programming, learning python.
      Should I go for a CS degree in well known universities of India after 12th or concentrate only in learning programming languages and then seeking for a developers job? What are the odds of getting a
      good job if i be an expert in python or any other language? Please suggest me with your opinions.

      Reply
      • Hi Yeshvir, I’m glad you brought that up. I’m not sure how the situation in India is, but I believe that if you’re an expert in Python you will not have a trouble finding a job without a degree.

        However, make sure that you have side projects that can show your skills. Building a website showcasing your work and adding your projects to your CV will definitely help. Let me know how you get on!

        Reply
    8. Hi Michael, I hope this message finds you well! I recently decided to test out switching my career from accounting to software development. I am a few months out of a well known U.S. university and know I am not passionate about the accounting industry I recently joined. I believe I can create more value and raise my potential by being a software developer. You suggest writing a blog to publish your work and to illustrate past projects to others to stand out. I am coming into this career without any knowledge in CS, I don’t even know how to touch type. However, I am highly driven and my sibling, who has a prestigious CS job, is my mentor.
      Would it be beneficial for my new software career to start a weekly blog where the theme is my rise from not knowing anything about CS to landing a prestigious software development job? I plan on detailing what activities I had done in the past week and any helpful tips I came across or could offer to audiences in a similar position. I also hope to inspire my audience to not give up on a path to a better career. My only fear is that dedicating time to this blog will take vital time away from learning Java and my own skills needed to get my first CS job. Based on your experience, do you believe this blog could help me significantly in beginning my CS career? Or do you think my time would be more wisely spent focusing on learning then creating a blog solely to publish my work. Thank you so much for your time! 🙂

      Reply
      • Hi AD and thanks so much for taking the time to write such a great comment.

        I believe you’re doing the right thing by following what you like. Now to answer your question more precisely.

        I think showing your journey from “zero to hero” could add a lot of value to other people that are thinking of doing the same. You can be a great example plus you’ll get some support from like-minded readers, not to mention networking opportunities.

        Look at this article. it’s just one article in the middle of the internet ocean and has attracted so many future CS engineers simply because there is a huge demand for this type of content.

        But more importantly, writing is beneficial even if you have no readers. Writing has helped me SO much to structure my thoughts. I am not sure it will significantly help you begin your career, but it will definitely make you a better thinker/planner and it’ll probably make you smarter too. It’s a great self-improvement hack.

        Also, writing makes you stay committed to your goals simply because you’re publicly holding yourself accountable. In fact, I recently heard that if you publicly commit to something you have an 80% higher chance of meeting your goal. That goal could be anything – from losing weight to getting a computer science degree 😉

        I indeed highly recommend that everyone in the industry demonstrates their work and their skills by publishing some projects. However, it has to be done within limits. You don’t want to blog more than you work or you’ll end up a copywriter (a really good profession too if you ask me 🙂 ).

        So yes, don’t be afraid to start and let me know how you get on!

        Reply
    9. Thanks for your very helpful answer! The content of my blog will be displaying the journey from “zero to hero” and offering tips. In your article “How To Start a Blog in 5 Steps – A beginner’s guide” you suggest to “Try to connect all your social networks to your blog and reach out to people once you have some content.” How do you suggest I go about doing this when I share my social media site with many coworkers without giving off the perception that I have a foot out of the door of my current firm. Personally, I think I’m going to say it is just a hobby that interests me and that I am trying to develop myself to adjust to market trends. From your experience, do you think this will be effective or should I say something else?

      Reply
      • Thanks for the great question, AD. You will be surprised that when having software engineering activities outside work you actually increase your perceived value at the company not decrease it. This is because you are more valuable to the firm and sometimes you can also help with hiring – a very painful process for tech companies.

        Speaking at meetups, blogging, honing your coding skills, participating in external hackathons are all things that make you a better colleague and firms will have to think “What can we do to actually keep this person?”, not the opposite. You’re learning different technologies, becoming a better engineer and you can bring back the know-how to your company. It’s a win-win situation and you don’t have to pretend anything 😉

        Reply
    10. Great answer to the Question. but main problems is that most of companies ask for the degree first and then takes the interview. So at most of 97% companies or industries will ask degree fires they will not see talent. They want talent but want graduated too.

      Reply
    11. Hi Mike, I am Lyusi a Front-end Developer from Alibaba, thanks for article!
      I don’t have a degree in Software Development, when I started my first HTML/CSS course no one believed that I can become a developer…
      Soon it will be my second year in one of the biggest e-comers companies in the word.
      Have a dream, follow it~

      Reply
    12. hi Michael,iam Aishwarya 20 years old from India ,i finished 1st year of electronics engineering and i couldn’t complete my degree after my marriage though my husband gave all the support and freedom, now iam not going for college and I regret every single day for not completing my degree and my husband is a software engineer ,by seeing him I got more interested In this computer world .I started asking him many questions about this !!and iam more curious about coding and solving problems and how does it works !!!!and again I kept on asking him and he sent the link of your article ,just now I finished reading your article and trust me its a great article and inspired many of people like me to get in to this computer world !!!and from today I will start focusing on what u told and will start learning!!
      thank you sooo much 🙂

      Reply
      • Hi Aishwarya, software development is a fascinating area and I’m excited to hear my article helped you start!
        You’ll be one more example showing the only thing you need to succeed in software engineering is passion! Keep up the good work 😉

        Reply
    13. Hi Mike,

      I’m 49 and am very interested in re-inventing myself as a programmer. Can you send me a message if you have time? I’m a Canadian living in Thailand so work would have to be remote, I can put 100% effort, but at my age…I’d like to be sure to get results…so need to learn the proper stuff in 2018.…!

      Reply
      • Hey Bruno, thanks for commenting. I believe, first of all, that you’ll have to discover what you like doing. Programming is a broad area (can range from mobile app developer to building algorithms for data science, machine learning, back-end API development, DevOps, sysadmin etc).

        The best way to do that is to take a few courses. Here’s Web Development one and a CS 101 quick general course on Computer science that will help you do that.

        There is high demand for software engineers and if you find what you like doing then the world is your oyster! I suggest you publish the projects on Github or on a personal blog to show people that are interested in hiring you afterwards. One step at a time, I’m here if you need anything!

        Reply
    14. Hi Michael, just wanted to thank you for this awesome post! I have a few questions, I have seen in many places that a verified certificated even from EDx isn’t worth anything (or if it is, it would be negligible) on a resume and so to that wouldn’t it just mean that an actual degree in computer sciences related field is required?

      I really want to get into this now after years of procrastination and right now I’m currently already on a medical sciences course at university, so I was hoping to get a certificate from EDx upon the online course completion for Python but I’m not even sure if it’s worth it from what I’ve seen people say.

      Not only this but I’ve seen job listings for various scientist/software developer/data analyst positions at different companies that state this type of job requires an “advanced degree in computer sciences/mathematics”. Surely in this case an EDx certificate and some GitHub projects etc won’t be enough?

      Reply
      • Hi Victor,

        In my experience there will be some companies that have strict policies about degrees. Some require a Masters in Computer Science, some just a BSc in any field, and some none. There’s nothing you can do if the company has a strict policy, but most of the companies don’t.

        Don’t look at the set of certifications. Look at the set of skills you need instead. Certifications matter but skills matter more. Showing your skills matters as well.

        I have lots of ex-colleague examples where the person who studied political science degree is better than me, that I studied advanced computer science.

        Another example comes from my neighbour I just visited. He told me he’s studying 3D video, 2 hours per day. The guy didn’t go to university, is a bartender and photographer and he has already produced a short movie (1-min long) in the past 2 months. He told me he will get a decent 3D artist job in 1 years time when his skills have matured. The salary will be much better compared to his current bartender one.

        Another example from the comments above: Lyusi doesn’t have a degree and when she started her first HTML course noone believed she could do it. Now she works at one of the biggest e-comm website of the world – Alibaba. “Have a dream – follow it!” she said.

        As you can see everything is possible. Just take a few courses on your subject and dive deep. Don’t rest. It will be hard. Yes, you will have a harder time than those who spent 4 years studying it. But you will come up stronger. Life isn’t fair but we all have to play the cards we’re dealt.

        Reply
    15. Hi Michael

      Thank you so much for your life changing article.I can’t wait learning, practising and doing all what it takes to become a world class soft ware developer from scratch.

      Reply
      • Hey Kenny, your comment is so inspiring! Good luck becoming top-notch software dev. But remember, 80% of the work is to just START. Let me know how it goes 😉

        Reply
    16. Hello Michael.
      First of all thank u for that article.
      I would like to ask your opinion about changing carreer in my 30s.
      To be more specific, I am 31 and although i have studied CS for a little bit when i was younger, i dropped out, and i did other jobs that had nothing to do with CS. Now Im thinking to give it a shot again, but i cant go to the university again. Do u think that is possible to do that at this age studying only from MOOCs? I have some basic understanding of programming and i know some basic things about languages like C++ and Java. But would any company hire me at this age without a degree? And how much time do u think i have to dedicate in order to learn what is necessary so that i can be a “solid” candidate for a programming job? If i quit my job and dedicate lets say 6 months could i reach a good level? Or would it be possible to do that while I m working (studying in weekends and 4-5 hours during the week)? Thanks in advance.

      Reply
      • Hey Alex, please see my thoughts below:

        To give you some motivation, I had a colleague who did just that. He used to work in the oil industry, but started learning iPhone development in his own time. He built a few basic screens at online freelancing gigs and then landed a proper job.

        Since you already have a little bit of experience in programming it’s going to be easier than starting from 0. However… I’m not gonna lie to you. It’s not going to be a stroll in the park. That’s because real learning in programming comes from being stuck and dedicating a lot of time to understand how things work.

        MOOCs would definitely help you get there. I think most companies will be happy to hire you if you show your abilities (through Github or a website) and being able to perform well in an interview.

        You will not go for senior jobs, therefore you’ll be targeting jobs that don’t require a lot of working experience. If you show enough passion and skill, the experience is not required.

        To answer your question, I’d spend 6-8 hours per week for the first few months do some courses – in parallel with your job. That will test your discipline as well, and how much you really want it. Then if you see you really like it, spend another few months specialising in a technology full-time and applying for specific jobs.

        I believe it needs about a year overall to learn what a junior position requires you to have. Good luck and thanks for stopping by! Make sure to come back and report, ok? You’ll be the perfect candidate for a Foxy Monkey interview 🙂

        Reply
    17. Hi Michael,

      I am new to the coding world, have no qualifications (accept a few GCSE’s) and would love to become a software developer throughout time. Although, I literally have no idea where to start and what programming languages to learn.

      I wonder, could you possibly tell me where is a good place to start? And is learning from books any good or is it just better to do it online?

      Thankyou!

      Reply
      • Hi Mia, thanks for commenting. It’s great that you want to get involved with software development as I find it a very creative profession (despite looking at one screen most of the time hehe).

        Regarding programming languages, I’d suggest first decide what you want to do and then languages will follow. For example, for game development, you may end up using C#, for API development Java, and for front-end development React, HTML, CSS etc. There are just so many out there.

        A good place to start is a general CS course online. Take a look at my recommendations on this blog post. They are generic enough and you should be able to complete a few in 2-3 months time and then dive into the path you want to explore more.

        Hope that helps! Let me know how it goes.
        Michael

        Reply
    18. Hi Michael,

      Great article, really insightful to read!

      I studied economics at university, also took an introductory CS course, and have some experience coding in Python and doing numerical and statistical analysis in Matlab and R.

      I would like to make a career change to software engineering. Ideally with a focus on algorithms as I really enjoyed the algorithmic problem solving of the introductory CS course that I took at uni.

      I’m thinking of brushing up on my Python and also learning Java (or C++ or Go?). Any recommendations?

      Would JavaScript be useful? A lot of bootcamps are focusing on it, but I think that’s more for web developers right?

      I saw Monzo are hiring both CS grads and self-taught coders who can demonstrate experience in a highly typed language. Would be interested to know if you know any similar employers maybe?

      https://boards.greenhouse.io/monzo/jobs/244898

      Thank you!

      Leander

      Reply
      • Hi Leander,

        It’s never too late to learn to programme again. Which language to learn really depends on what you want to do.

        You are right, JavaScript is more for front-end, especially if you combine it with React and React Native. Learning JavaScript is very useful as it may be needed for server-side Node JS applications too.

        Since you’ve done Python already, it may be easier to start with Python and learn Numpy, Excel data manipulation and perhaps R. That’s more data science / statistics. Java is my preference and I quite like it for back-end applications. Java is also statically typed and is one of the most popular in the industry.

        I’d say avoid C++ or Go for the beginning. When you’ve mastered one language it will be easy to learn another. Good luck and let me know if you need any help 😉

        Cheers,
        Michael

        Reply
    19. Hi Michael,

      Thanks for sharing this article cos this is the situation that I am in now.
      I was a victim of a school which unreasonably failed me and not awarding me the graduate diploma in system analysis.
      The school did not want to give me a reason and the Ministry of Education in my country just informed me that the school has the autonomous right.
      The university did not investigate about the matter, even though they said they would.
      I used almost 1 year to chase for an answer and I come to know that the school had made a mistake that they thought they had sent an advisor to the company to tell me about my deliverable but I told them I never met anyone, they just decided the internship Manager had told me which never happened cos this Manager was biased to me since the beginning.
      Furthermore, my classmates are mostly working in a group, and some did not have to do coding and just got the diploma like that. I was given a 8 men month job to do a migration job of Lotus notes to ASP.NET – a language that I told the school I did not have experience in.
      Also, I just want to focus on Java due to my age.
      Even though I have built up a few projects in java, I still couldn’t get a job in my country.
      I hope you could let me know what are the options for me in this case. The university just told me to go complete the degree else where but I wanted to earn some money and gain experience first before consider pursuing the studies further.
      Could you let me know what are the countries I can attempt to send in my resume, and how should I account to the employer that the school not awarding the Diploma ?

      Reply
    20. hello sir thanks for the article , my question was what path would you suggest for me ,when i am currently doing my first year bachelors of commerce in india to start learning data science via online courses

      Reply
      • Hey Atharva, good job on taking on online courses. You can really learn really good data science online if you focus on it. I’d say don’t rely only on university studies but combine it with your own projects.

        Reply

    Leave a comment