We will discuss today about the four stages that you’ll go through becoming a programmer, but also why knowing these stages can help you make better decisions for your career.
Now let’s get started with the first one, and the first one is unconscious incompetence. So what that means is that when you’re starting out, the decisions are hard to make, and for example, you don’t know languages, frameworks, an area of interest that you want to get into for programming, how easy and how hard these different areas are, and basically where to start in fact.
You know, even things like what’s involved in a particular language, or you know, basically getting to a certain level. So using an analogy here, or an example, consider that maybe you’re starting out and you’re thinking okay, I want to become a programmer. I’m interested in artificial intelligence or machine learning, for example.
At the moment, if you’re at this stage, then you don’t know the prerequisites to get into artificial intelligence or machine learning, or even if programming is for you at that early level. So you may not recognize this either, so you may not really recognize or acknowledge to yourself that you don’t understand this, and you may think you know, but basically, to move on, what you need to do is figure this out and you need to learn and recognize that you don’t yet have all of the answers, and also, very importantly, you really do want to acquire those skills, basically the skills you need to basically proceed.
Now when I get asked a question from students, and I get asked this quite often, students will approach me and sort of say, well okay, I’m starting out, I’ve just started my first course, so for example my Java Masterclass, can you give me the next three courses that I need to take after this, and I want to get to artificial intelligence or machine learning. Well what I say to them is, basically, look, it’s too early to do that.
Finish your first course first, and then start looking at making a decision after that. And this is really dealing more with this unconscious incompetence, because you don’t know what you don’t know at this point in time. So you need to go through, get some basic training, before you can move on, and that’s why I say, early on in your programming career, don’t try and make long-term decisions on where you’re going and what you’re doing. Focus on the basics, in this particular case, would be learning a programming language. All right, so that’s the first stage that you’ll go through.
The next one is what I call conscious, or what’s called conscious incompetence. Now here, you’ve taken yourself to the next level. You now know and recognize that you don’t have the skills you need to become a programmer, or to get into that specific area of interest, but also, you’ve got a real want, you really want to acquire these skills, and you’ve recognized that there’s a value there for you to learn these new skills. That’s really important that your sort of acknowledging to yourself, okay, I haven’t got these skills, I’ve got a lot to learn, but I want them.
You know, you’re really saying to yourself, I really want to learn these skills. So basically, you’re acknowledging to yourself you don’t yet have the skills, or you really don’t at this point in time, and during this process, when you acknowledge that, you’re going to start programming and learning, and you’re going to make tones of mistakes. And basically, making tones of mistakes and getting frustrated and wanting to give up, this is all an integral part of this stage. And let’s use an example here, equate it back to programming so it makes sense.
So basically, you’re recognizing now that you need to understand those three core skills, but also, more importantly, the value of doing this, why you’re doing this, and you’ve made the decision to yourself to go ahead and do it. And you recognize that at this point it won’t be easy, but you’re saying to yourself, look, you understand there’s a process that’s going to take a while, there’s a lot of stuff you’re still trying to figure out at this stage, but you know that you can actually get there, basically.
You’re now able to understand some of the concepts you’re learning and string together perhaps little programs, but again, you’ve got those worries, and basically concerns in the back of your mind at this point in time. But the bottom line here is, at this point, the training, perhaps a article course, if you’re taking a article course or a book or whatever it is, it’s now starting to make sense, and you’re now basically on the road still to getting to that fourth stage.
All right, so the fourth stage now, is unconscious competence. So basically, this level, it’s really the level where you want to be at, ultimately, this is what you should be shooting for, and this is where programming effectively is second nature for you. So here you’ve practiced so much, you’ve done so much training, you’ve applied this code, basically to get to this level you’ve done that, and at this level you’re now actually finding to a large degree that programming is easy.
It’s not necessarily always easy, but you’re feeling much more in command, you’re not struggling to remember things, a lot of the things you can sort of remember off the top of your head, you can string together, put together code, you’re not feeling you have to concentrate so hard all the time, things are coming to you automatically. So as you’re typing code, for example, you’re thinking okay, which algorithm do I need to use here, and it’s coming to you, so you’re understanding that.
You’re maybe at the stage where you feel that you’re even at the level nowhere for some things, you feel you could teach this material to other people. But certainly, programming at this levels so much easier for you, and perhaps you’re even looking back and wondering why you thought about giving upon some of the earlier stages.
So you got frustrated perhaps at an early stage, and you know, at this stage, if you reach this stage, you’re finally saying to yourself, wow, okay, I can actually get this, I’m enjoying it, I’m understanding, and you really almost can’t believe that you were ready to give it away you were so frustrated at earlier stages. Now that’s not to say when you get to this stage that you won’t have other challenges to overcome.
For example, if you pick up a new programming language, even if you’re at this stage, there will still be some work, there’ll probably still be some elements of frustration, but it’ll be a heck of a lot easier because you’ve been through the process and you’ve got the core skills, and basically a model for how you can move forward and learn and sort of understand these skills.
All right, so a summary of today’s article. Keep at it, make a commitment to persist with your training and your practice, and know ahead of time that when you’re entering this journey, there’s going to be ups and downs. I also suggest you practice and study regularly. It’s really important that you do that and do the exercises in courses, try and create little programs for yourself, try and adapt those programs.
If there is a challenge or there’s some code, that you see me or whatever book or article course you’re going through, giving you, try and firstly understand that code, but can you adapt that code, can you add to it, can you add some functionality, can you make it do something slightly different.
So if you actually focus and keeping on doing that and practicing and going through all these stages and realizing that there’s a process to go through these four stages, and everyone has to go through that, that will ultimately help you to actually succeed, and make it basically possible for you to actually succeeds a program and make this your brand new career.
I hope that helped. If you’ve got a questions, feel free to leave a comment and I’ll get back to you. Please share this article with others on social networks if you liked it. Thanks a lot for reading and have a great day.