Chapter 11. Learning How to Code – Getting Past Skill Plateaus
A common pattern I see with students learning how to code is:
- Quickly learning a massive amount of information.
- Then running into a seemingly insurmountable wall. In this phase, the student typically feels like they've reached the zenith of what they're going to be able to accomplish about development.
This second phase is called a plateau. In this chapter, we're going to walk through strategies for getting past skill plateaus.
It's important to understand that everyone follows a similar pattern when it comes to learning a new skill. This means that you will experience times where it seems like every day you're soaking in a wealth of new information. But it also means that you will run into times where it feels like your mind will limit you from learning anything new.
What is a learning plateau?
When it comes to hitting a learning plateau, it's important to look at the potential root causes for why it's occurring. It's been my experience that no two plateaus are the same. And until you've diagnosed why you're not learning, you won't be able to move on to your next level of skill.
False ceiling
Before I continue I want to reiterate something: you will never reach a point where your level of skill is maxed out. Maybe if you're a professional athlete and getting older, then your body is naturally going to decrease in performance. But when it comes to concepts such as understanding development, if you continue to dedicate yourself and if you're willing to listen to experts, your skill will never reach a peak.
Getting past skill plateaus
Over the years I have witnessed a few key reasons why individuals (and myself) run into skill plateaus.
Proper information/resources
When a student lacks access to proper information, it makes learning a more arduous process. Imagine a talented developer in high school who had been relying on her teacher (who had limited skill). In cases like this, the student will need to find additional resources, such as online courses, that will help teach her concepts she's never been taught before.
Best practices
During a phase of the learning cycle when best practices are the focus, students may feel like they are hitting a learning plateau. I remember when I was first learning about test-driven development. The concept seemed counterintuitive. I would spend 2-3 times the amount of time on a feature. And this became incredibly frustrating. It felt like I wasn't learning anything new because my new knowledge wasn't affecting anything on the screen.
However, this phase isn't actually a skill plateau. There are many times where developers need to take a step back and focus on quality over quantity when it comes to building applications.
My advice for going through this phase is to embrace it. Be patient. As soon as you have a firm understanding of how the best practices can be utilized, you'll be able to move onto learning new concepts. The only difference is that now you will be able to leverage your new skills, the result being that you'll be a more refined developer.
Challenging/new tasks
In my experience, the main cause of students hitting a skill plateau is when they stop challenging themselves. If you remember back to when you were first learning development, it seemed like your knowledge was skyrocketing each day.
The reason for this was because each of the concepts you were learning were completely new to you. However, after a certain period of time it seems like it's natural for us to want to become comfortable. Instead of trying to learn something new each day, we simply try to duplicate the work that we've done up to a certain point.
This approach is less taxing mentally. However, it has the nasty side effect of limiting how we improve. Whenever I feel like I'm getting into a rut, I will look at popular websites and I'll start to put together a list of features that I want to learn how to build. From that point, I can put a plan together for what concepts I need to learn in order to implement them.
Frustration = skill
One of my favorite illustrations of getting past skill plateaus was made by the calligrapher, Jamin Brown:
Notice in this illustration how the learning process is filled with plateaus? This is a natural component when it comes to improving at any skill.
But also notice that the key to overcoming a plateau is called the Frustration Zone. I think that's a great name for it. Learning complex topics is not easy. As you've probably heard countless times, "if it were easy, everyone would do it".
Becoming a developer can be one of the most rewarding experiences that someone can have. And part of what makes learning how to code so fulfilling is how many challenges you'll need to overcome to succeed.
Proper information/resources
When a student lacks access to proper information, it makes learning a more arduous process. Imagine a talented developer in high school who had been relying on her teacher (who had limited skill). In cases like this, the student will need to find additional resources, such as online courses, that will help teach her concepts she's never been taught before.
Best practices
During a phase of the learning cycle when best practices are the focus, students may feel like they are hitting a learning plateau. I remember when I was first learning about test-driven development. The concept seemed counterintuitive. I would spend 2-3 times the amount of time on a feature. And this became incredibly frustrating. It felt like I wasn't learning anything new because my new knowledge wasn't affecting anything on the screen.
However, this phase isn't actually a skill plateau. There are many times where developers need to take a step back and focus on quality over quantity when it comes to building applications.
My advice for going through this phase is to embrace it. Be patient. As soon as you have a firm understanding of how the best practices can be utilized, you'll be able to move onto learning new concepts. The only difference is that now you will be able to leverage your new skills, the result being that you'll be a more refined developer.
Challenging/new tasks
In my experience, the main cause of students hitting a skill plateau is when they stop challenging themselves. If you remember back to when you were first learning development, it seemed like your knowledge was skyrocketing each day.
The reason for this was because each of the concepts you were learning were completely new to you. However, after a certain period of time it seems like it's natural for us to want to become comfortable. Instead of trying to learn something new each day, we simply try to duplicate the work that we've done up to a certain point.
This approach is less taxing mentally. However, it has the nasty side effect of limiting how we improve. Whenever I feel like I'm getting into a rut, I will look at popular websites and I'll start to put together a list of features that I want to learn how to build. From that point, I can put a plan together for what concepts I need to learn in order to implement them.
Frustration = skill
One of my favorite illustrations of getting past skill plateaus was made by the calligrapher, Jamin Brown:
Notice in this illustration how the learning process is filled with plateaus? This is a natural component when it comes to improving at any skill.
But also notice that the key to overcoming a plateau is called the Frustration Zone. I think that's a great name for it. Learning complex topics is not easy. As you've probably heard countless times, "if it were easy, everyone would do it".
Becoming a developer can be one of the most rewarding experiences that someone can have. And part of what makes learning how to code so fulfilling is how many challenges you'll need to overcome to succeed.
Best practices
During a phase of the learning cycle when best practices are the focus, students may feel like they are hitting a learning plateau. I remember when I was first learning about test-driven development. The concept seemed counterintuitive. I would spend 2-3 times the amount of time on a feature. And this became incredibly frustrating. It felt like I wasn't learning anything new because my new knowledge wasn't affecting anything on the screen.
However, this phase isn't actually a skill plateau. There are many times where developers need to take a step back and focus on quality over quantity when it comes to building applications.
My advice for going through this phase is to embrace it. Be patient. As soon as you have a firm understanding of how the best practices can be utilized, you'll be able to move onto learning new concepts. The only difference is that now you will be able to leverage your new skills, the result being that you'll be a more refined developer.
Challenging/new tasks
In my experience, the main cause of students hitting a skill plateau is when they stop challenging themselves. If you remember back to when you were first learning development, it seemed like your knowledge was skyrocketing each day.
The reason for this was because each of the concepts you were learning were completely new to you. However, after a certain period of time it seems like it's natural for us to want to become comfortable. Instead of trying to learn something new each day, we simply try to duplicate the work that we've done up to a certain point.
This approach is less taxing mentally. However, it has the nasty side effect of limiting how we improve. Whenever I feel like I'm getting into a rut, I will look at popular websites and I'll start to put together a list of features that I want to learn how to build. From that point, I can put a plan together for what concepts I need to learn in order to implement them.
Frustration = skill
One of my favorite illustrations of getting past skill plateaus was made by the calligrapher, Jamin Brown:
Notice in this illustration how the learning process is filled with plateaus? This is a natural component when it comes to improving at any skill.
But also notice that the key to overcoming a plateau is called the Frustration Zone. I think that's a great name for it. Learning complex topics is not easy. As you've probably heard countless times, "if it were easy, everyone would do it".
Becoming a developer can be one of the most rewarding experiences that someone can have. And part of what makes learning how to code so fulfilling is how many challenges you'll need to overcome to succeed.
Challenging/new tasks
In my experience, the main cause of students hitting a skill plateau is when they stop challenging themselves. If you remember back to when you were first learning development, it seemed like your knowledge was skyrocketing each day.
The reason for this was because each of the concepts you were learning were completely new to you. However, after a certain period of time it seems like it's natural for us to want to become comfortable. Instead of trying to learn something new each day, we simply try to duplicate the work that we've done up to a certain point.
This approach is less taxing mentally. However, it has the nasty side effect of limiting how we improve. Whenever I feel like I'm getting into a rut, I will look at popular websites and I'll start to put together a list of features that I want to learn how to build. From that point, I can put a plan together for what concepts I need to learn in order to implement them.
Frustration = skill
One of my favorite illustrations of getting past skill plateaus was made by the calligrapher, Jamin Brown:
Notice in this illustration how the learning process is filled with plateaus? This is a natural component when it comes to improving at any skill.
But also notice that the key to overcoming a plateau is called the Frustration Zone. I think that's a great name for it. Learning complex topics is not easy. As you've probably heard countless times, "if it were easy, everyone would do it".
Becoming a developer can be one of the most rewarding experiences that someone can have. And part of what makes learning how to code so fulfilling is how many challenges you'll need to overcome to succeed.
Frustration = skill
One of my favorite illustrations of getting past skill plateaus was made by the calligrapher, Jamin Brown:
Notice in this illustration how the learning process is filled with plateaus? This is a natural component when it comes to improving at any skill.
But also notice that the key to overcoming a plateau is called the Frustration Zone. I think that's a great name for it. Learning complex topics is not easy. As you've probably heard countless times, "if it were easy, everyone would do it".
Becoming a developer can be one of the most rewarding experiences that someone can have. And part of what makes learning how to code so fulfilling is how many challenges you'll need to overcome to succeed.
Summary
I hope that this has been a helpful guide and that you now have some practical strategies for getting past skill plateaus. And good luck with the coding.