- 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 lpa.dev/YoutubeWPF 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.