Four Stages of Becoming a Programmer | Programming Tip of the Day – Tim Buchalka

Four Stages of Becoming a Programmer | Programming Tip of the Day – Tim Buchalka

– All right, so let’s
discuss now 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. This video is brought to you by the Learn Programming Academy’s Windows Presentation Foundation course, Master Windows Presentation
Foundation, or WPF, learn how to create applications with a rich user interface. Leverage WPF with C# and XAML to build real world skills with Azure, REST, MPVM and machine learning. Visit
or click on the link in the description below. (electronic music) All right, welcome back,
my name is Tim Buchalka with another programming tip of the day, and we’re talking about the four stages that you’ll go through in your journey to becoming a programmer. 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 recognise this either, so you may not really recognise
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 recognise 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 wanna 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 recognise
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 recognised
that there’s a value there for you to learn these new skills. That’s really important that you’re 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 gonna start
programming and learning, and you’re gonna make tonnes of mistakes. And basically, making tonnes 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. Let’s assume that you’ve recognised now to become a web developer, that
you need to learn something, you need to learn. You’ve figured out now,
when you first started, your very first time you said to yourself, before you touched a line of code, I wanna be a web
developer, you had no idea, that was going back to step one. Step two, you’ve done a bit of training, a bit of research, and you
now acknowledge and say, oh wow, okay, I need to learn
HTML, CSS and JavaScript as a prerequisite to at least some level before I can hope to
actually start learning other more advanced frameworks et cetera for web development. So you’ve done that,
basically you’ve gone through that very basic process of learning some fundamental skills,
or at least acknowledging to yourself that okay, I
need to learn these skills, and you’re sort of saying, look I haven’t got those skills but I’m prepared to learn it. So basically, what I’m saying there is, there’s a process to go through, and here you’re acknowledging to yourself that you do wanna do it,
you’ve done some research, you’ve figured out, in
this case, that example, HTML, CSS and JavaScript
would be three core skills used typically by web developers, and you can make a start on that. So basically, you’re recognising 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 recognise that at
this point it won’t be easy, but you’re saying to yourself, look, you understand there’s a process that’s gonna 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. So that’s the second stage, and moving on now, the third stage, is conscious competence. So basically, what that means is, and why don’t you continue with the web developer example
here, because it’s a good one. So here now, you can finally get some of that stuff working. So you know, perhaps you
now understand some HTMl, looking at the web developer example, HTML tags seem to make sense,
or at least some of them, and some of the JavaScript
code may actually make sense, you can sort of start stringing together small bits of code, but your brain hurts at this point in time from all the concentration, you really have to focus
and concentrate hard on understanding this, and you’ve got this worry
in the back of your mind at this stage, if you’re
gonna remember all this stuff, and if you’re not constantly
immersing yourself in training and practise, some of this information’s going away. So you’re still uncertain
at this point in time, but you have progressed. You’re now able to understand
some of the concepts you’re learning and string
together perhaps little programmes, 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 video course, if you’re taking a video 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 practised 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 now where for some things,
you feel you could teach this material to other people. But certainly, programming at this level is so much easier for you,
and perhaps you’re even looking back and wondering why
you thought about giving up in 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 video. Keep at it, make a commitment
to persist with your training and your practise, and know ahead of time that when you’re entering this journey, there’s gonna be ups and downs. I also suggest you practise
and study regularly. It’s really important that you do that and do the exercises in courses, try and create little
programmes for yourself, try and adapt those programmes. If there is a challenge
or there’s some code, that you see me or whatever
book or video 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 practising and going
through all these stages and realising 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 succeed as a programmer and make
this your brand new career. All righty, so I hope that helped. If you’ve got an questions,
feel free to leave a comment and I’ll get back to you. If you’re ready to look at the next tip, click on up here and
you can check that out. If you’re interested in coding-specific programming videos, click on the link in the bottom left-hand corner. Consider subscribing by
clicking on the link up here, and I’ll see you soon.

27 thoughts to “Four Stages of Becoming a Programmer | Programming Tip of the Day – Tim Buchalka”

  1. One of the best programming channel! Thank you for sharing your experience and knowledge with us in a positive manner

  2. Thank you so so much for the video today!! I am really enjoying them!! Please please keep adding!!!!

  3. Thanks Tim and agree with your stages. It’s important to have the challenges and be persistent in working through them. If you can’t then you have identified what you need to learn and practice more often. Like learning in a pyramid hierarchy.. the base/foundation takes the most time and working your way up in levels or stages. Then the close you get to the peak the more competent and able you become.

  4. Can you please make a video about the difference between Java and Python,and which one is best to use to become a good programmer..Please

  5. please can you make a video showing all fields of programming and the best language/languages in each field

  6. I hope you do a video about programming jobs i mean specially that words like junior, senior etc..

  7. Great video Tim much needed as i go through my wall lol but loving the java masterclass just started on the updated content as wasnt to far anyway thanks for these videos

  8. I've taken you Java MasterClass and I use VScode for other JavaScript, React courses. How do I configure my VScode just like IntelliJ to work on Java programs?

  9. I want to code my own personal assistance. Would Java be useful for this kind of task or python or the other languages are better? Which programming language you think is the best for creating complex artificial intelligence programs?

  10. Step 2 is describing me so well. ( i have purchased one of your course on Udemy to change that and improve myself)

Leave a Reply

Your email address will not be published. Required fields are marked *