How fast can you become a programmer? In other words, how fast can you learn the technology and understand programming? Let's talk about that today.
Our discussion today is in relation to a question I get asked fairly often by students and "How fast can I learn to program?" is the question. That's typically from someone who's just starting out in a course. They're very keen and eager to get started but they wanna know, they want to put a time frame on when they're gonna "become a programmer" or when they're gonna understand programming.
Well, the answer is that it's not really possible to necessarily figure that out in advance because a lot of this comes down to factors that only you can control. Firstly, how much time have you got to allocate to this endeavor? People can have one or two hours a day and other people can have 30 minutes a week available. So it really does depend on how much time you've got, the technology you're learning, your aptitude for understanding, and like for example your logic skills. I've got another post that talks about logic so check that out here if you're interested in that, but learning logic is a key part of programming so you'll need to understand that.
Some of the basics can take quite a while if you haven't had any experience in that field, but look I think you're asking the wrong question. This is the truth here, that if you're coming from that mindset of "how fast am I gonna learn this?" I think you need to take a step back and think "Okay, I want to learn programming, but I want to learn it properly".
Learning fast often means you're taking shortcuts. That's the reality. Like if you want to get to point A to point B as quickly as you can often you have to, you basically have to jettison some information along the way. You have to decide that you're not gonna learn this aspect or you'll gloss over other areas because you just want to get to that stage of "being a programmer". That's the wrong mindset in my opinion.
What you need to do is just think, "Okay, I want to become a programmer, I want to learn this technology, and I'm gonna take as long as it takes to get there". That's not to say you should take 10 years, obviously and it's not gonna take 10 years either, that's the other thing. But if you're putting a time frame on yourself you're just adding all this pressure to get yourself to that end point and you're gonna be rushing through it. You're not really gonna be taking care to understand the material that is being shown to you if you're going through a course or an eBook or bootcamp or whatever it is.
Make sure you don't necessarily put hard limits on how long it's gonna take and just realize it's gonna take as long as it takes within reason. What I mean is, you might decide that you think you can give yourself to maybe, to the end of the year, for example. That's better than saying I need to learn by next month.
I've literally had students who will ask me "Can I get my first programming job in a month's time?" and they've had no programming experience. Well no, almost certainly that's not going to happen. I mean, that's the reality in almost any industry that is skilled in a similar alliance to programming. You're not going to start with no experience to getting a great paying job in a month's time. That just will be very unlikely. It's possible - I guess anything is possible - but very unlikely. So try not to give yourself a hard constraint, but also realize it's not going to be years.
You can basically work at it and just keep working at it consistently and re-assess where you are on a regular basis because the other thing that is important with this is as you progress and you're learning, you pick up a language (say you start with Java or Kotlin or C++ or C# or whatever it is you might decide once you've been through part of one of those courses) that "Okay, I think I know where I wanna go now. I want to get more into programming games", for example. Then you'd maybe choose the C# route, Unity 3D is a great framework or Xamarin are two great platforms, cross platform packages or frameworks to enable you to create games and other apps across platform. So basically the more you understand, and I've talked about in another post the four principles of becoming a programmer, four stages if you will.
So check out that post as well if you're interested in that but just realize that this is a journey. Try not to put this artificial time constraints on yourself and just realize it's gonna take as long as it takes and try to enjoy that journey. Remember don't just focus on the destination, but try and enjoy the journey along the way.
Be thorough with your training, go through it all systematically and really try and understand what you are going through and trying to gloss over, not trying to rush ahead, because that's ultimately gonna give you the better skills that you need to become a programmer and to make the most of those skills when you start getting into more advanced areas of programming.
So good luck with it all, and just try not to put artificial time constraints on how long it's gonna take. It's gonna take as long as it takes. All right, so I hope that helped. If you've got any questions feel free to leave a comment and I'll get back to you.