In this article I’m going to answer the question, how long does it take to become a software developer from start to finish. How long will that actually take for you because maybe you just started last week to learn this on your own, self-teach.
Maybe you started for the last few months and you’re really looking to become a software developer. You’re trying to figure out if this is going to take you months or weeks. Do you have to quit your job right now so that you can do it in the short term?
Or do you have to really dig in for the long haul.
I’m going to answer that question based on my experience of mentoring dozens of people at this point to become software developers. I’m going to do that by trying to figure out, what are the different factors that makes someone learn it in less time or more time.
Just to give you a general idea of what I’ve seen.
If you’re new here by the way I’m Peter and I’m a mentor to everyday people who are looking to become software developers. People who are looking to teach themselves the skills and learn a system for landing their first job.
I highly recommend checking out my blog from time to time so you can get information on what’s going on in the field.
Before I dive into exact timeframes that I’ve seen people landing their first job, let me talk about everything all this is predicated on. What I mean by that is that for you to call yourself a software developer the way I look at it is you have to have a job.
You have to have somebody who’s willing to hire you. Somebody who owns their own company or somebody who has the hiring decision making at a company. They need to say we’re going to hire you for whatever reason.
You could be the most qualified person in the world but if somebody were to say, I just really like you and I think you have potential; you can get hired and call yourself a software developer.
It really doesn’t matter how much you know. There’s no rule about how long it’s going to take or what you have to know or how much time it’s going to take. You just have to put yourself in a position where you’re actually able to be hired.
With that in mind, really what I’ve seen is that, on the low end of things usually the lowest of the low I’ve seen is, it really takes someone about three months at the very low end.
In other words, if somebody just has all the right advantages and good luck. But most people take longer than that. The longest I’ve seen, again the very far end of the spectrum is about two years. So three months to about two years.
There are a couple different factors that really contribute to you being a lower end or the higher end.
The big one is previous exposure to computers or previous exposure to programming languages or previous exposure to different technologies.
It may sound crazy but there are some people out there who are looking to become software developers that don’t have much experience with computers in general.
If email is still a little bit foreign to you or going through websites and that sort of thing and you’re still determined to get into this, that’s awesome, you’re one step ahead.
But let’s be real, just learning about computers, understanding some of the basics. How to work with operating systems. That will be a lot of work in itself.
What you’re going to have to do is overcome some of those basic ideas that most people already get. If you are already an avid computer user and you feel comfortable around computer, now the next thing that’s going to give you advantage is previous exposure to programming languages.
Or maybe you’ve done something with networking before or you’ve built your own website or blog from scratch.
Obviously, the more exposure the better but even a little bit of exposure it can be helpful and just reducing the amount of time.
I’ve worked with people who as a kid work with programming languages and then as they get older, they went away from that. And they had their own job.
So, when I find that people had experiences when they were younger, breaking down computers, or again working with some old programming language that doesn’t even exist around anymore can give them an advantage because as a kid they were.
It’s almost like learning a different language as a kid, as you get older it gets easier to learn different spoken languages. When you have a foundation of learning a couple different languages it will definitely give you an advantage.
It’s not going to be the only thing where you don’t have to work for it and you just show up and you become a software developer. It doesn’t work like that.
These are tiny advantages that can shorten your learning curve potentially.
How You Think
The next thing that I see is a little bit weird but it’s something I’ve just noticed. I’m not a psychologist but it’s really about how you think. There are really two types of people that I see in terms of how we all think.
Either you are more engineering mindset inclined or you are not. I see people I’ve worked with who either come from an engineering background or they are just more predisposed or more inclined to think like an engineer.
Maybe they went to school for something like that but either way engineers just think in terms of the systems. They are more logical thinkers. They can break down problems and solve a little bit better and that’s the type of person who has a really big advantage in this.
They’re just going to sort of walk into software development and really start understanding things more easily.
The way software development works is, you’re not just writing lines of code that go on forever. Lines of code are part of modules that are part of bigger systems which may be part of subsystems of bigger systems.
So, understanding how different systems interact to make a big overall working piece is like what engineers do, that’s a big part of what they do.
I was engineering inclined but my thinking wasn’t well before got into software development but now I feel very strong. I totally see how that works and how it can be beneficial.
If you’re not inclined to think like an engineer, it’s ok. It’s not going to take you 10 years, it’s just another thing that will be helpful for you to shorten your learning curve. If you are more engineering inclined that’s a good advantage. Make sure to use it now.
Determination / Grit
The next thing that I see is really important as well. It’s about having determination and grit. I don’t care how talented you come into this but if you don’t have the determination and grit to get through those hard times, it’s going to cost you in terms of making this process longer.
This is because there are just frustrating things that come along in this path. There are times that are going to make you question your sanity, make you question your intelligence or make you really wonder if you can actually do this.
To me, the person who has cultivated grit and determination previously is going to be the type of person who excels, walk through a wall or crawl through mud. That’s the person who can overcome through tough times and just keep showing up every single day.
I cannot tell you how many people I have spoken with people who just have these periods where they got very frustrated with things and they ended up taking months off. Now they’re at the point where they’ve spent three or four years trying to figure this out.
This is because they just don’t have that grit and determination to persevere to the hard times. So, having this and cultivating it in previous experiences in your life is going to really transition well into this.
The last thing that plays a big role as well is your game plan or your road map. When you first start learning to code or when you first find out that you can be a programmer, it’s an exciting period of your life.
You go order a bunch of books on Amazon, you buy a bunch of courses on Udemy and it feels so beautiful and amazing. But once you turn the last page in the last book or you get finished with your last course, what you do from there is really important.
What you do to put yourself in the best position for a job hiring professional is really important because if you don’t have a road map, you’re in trouble. You risk bouncing around.
Even if you do have a road map, it needs to be as straight and aligned to what you are going towards as possible. You want to make sure that there aren’t tangents there or you’re not learning things that aren’t going to directly contribute to you getting that first job.
So, if you don’t have a road map create one, if you do have a road map ask people for feedback. Try to get a mentor in this field. If you don’t know anyone who’s a mentor do as much research as you can but you want to find a road map that’s going to put you in the right direction.
You don’t want to stray too far or get distracted by all the tension out there for this programming language or that programming language. You want to make sure that your roadmap basically gets you to destination as soon as possible.
That’s what I would say is a big factor in you getting to your first job in a short period of time as possible. I hope this is helpful and giving you a better sense of how long this is going to take for you.