Placeholder Image

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,