Subtitles section Play video
-
- 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,