Skip to content

A How-To Guide: Easily Beat Learning Plateaus When Coding

Photo by Shaojie

Learn to learn code faster, using techniques honed by years of study, neatly packaged into one book: How to Learn Code

I have gotten stuck in ruts in the past and learned, through menial effort, how to escape them.

I often find myself coming back to these principles listed here. These principles are for both beginner and advanced developers trying to learn a niche…

Make sure you are following good order to programming

This is something I say a lot. But I emphasize it because it is so true. Make sure you are following the proper order of learning programming. 

Here it is

  1. Fundamentals
  2. Language
  3. Framework
  4. Niche

Often, leaving this order is the issue with a plateau. 

I wrote an article about why the fundamentals are important if you want to know why fundamentals are first.

If you are advanced, the reverse order is also true

If you are already an expert at say, Java, then you should be working on a framework/niche. And, you should stick to it.

Me, as an example, I should only be learning frameworks/niches in Java, Javascript & Python.

I should pick a language and learn, say, Spring in Java.

This would be a good choice.

Photo by Christian Wiediger

I decided to specialize in AWS (An automated cloud system) & Java Spring as a backend developer a few month ago when I graduated from college.

I got a full monolithic course and went through the Java Spring course halfway (I need to finish it).

And I also got a full monolithic course in AWS and am 3/4s done with it (I am trying to get certified).

I am sticking to this reverse order and learning only the Java backend niche. I will be applying the AWS cloud system to Java + Java Spring.

This is my plan and niche at the moment.

This is so I can get potentially employed as a backend developer.

Here is another example of sticking to a niche. For the entire last year of my graduate school time, I specialized in Machine Learning(PyTorch) by studying with a full Udemy course.

Screenshot of Udemy

I did have to learn some more details about Python. But, I stuck with Machine Learning and did not focus on Python when I already knew it. Why learn a language you mostly understand?

This was so I can write a novel thesis paper.

That was my plan and niche which ended a few months ago.

I got the degree and learned what I needed at the time.

So, in summary, focus on a niche/framework if you already know the language of your choice.

Think to what worked in the past

Think about how you learned in the past. What worked for you? If you are at the start of your journey, keep a mental note on what works.

Each of us has different preferences to our theory to implementation ratios, incoming resource types (written, videos, tutoring, etc.) and presentation style (how the resource author conducts themselves).

You may find at the beginning of your programming journey, you need plenty of theory and less implementation. Toward the middle or at random spots you need more or pure implementation.

You may enjoy written resources or audio/video resources.

Photo by Bruce Mars

Try to keep track of what worked in the past. These are key indicators as to what will work in the present.

What are your best resource types?

We tend to have a favorite way of learning. Most of us wish to learn only through audio/video because it is simply easier.

But, there is your favorite way to learn and your best way to learn.

For me, I love audio/video but I have found reading written resources to be my fastest way to learn.

This is often the case with people. They favor audio/video. But, more often than not, reading text tends to give us a specific edge we could never get with pure audio/video.

For this reason I always supplement my audio/video with reading on the internet, documentation, LLM, a book (not recently), etc.

Some examples of resource types are:

  • Audiobooks
  • Small video tutorials
  • Full courses
  • Tutoring sessions
  • Conversations with developers
  • In-person/online lectures
  • Books
  • Documentation
  • LLMs
  • Etc.

Try to find your best resource types. Think to your past. What worked?

If you are new, experiment with resource types. Try to stick to one for a few months and see which work best.

Adjust your current theory to implementation balance

Your daily theory to implementation ratio changes from month to month. Often you will find you require more theory or more implementation.

There may be times when you require only implementation and other times only theory.

Photo by James

It is a matter of feeling it out and continuing your conquest.

As an example of a pure theoretical time period, I am studying AWS. Cloud systems (AWS) are highly theoretical by nature. At this time I am not doing much coding but am instead studying how the GUI cloud system works by following my monolithic course and doing some hands-on AWS cloud testing during the lecture.

This is my balance right now, pure theory.

I spoke to some developers about this. They said once I understand the theory I can actually use it through the AWS SDK/GUI. This means, after learning the theory I can really start automating AWS programmatically. Which is pretty cool.

As an example of a period where I need pure implementation. I started a Runescape clone a few years ago. There is no documentation for creating a Runescape clone. So literally my only choice was to hack at trying to implement everything myself.

I had to implement a player to JSON serialization method (Using a library), parts to a framework for future content creation, implement packet protocols, create and refactor NPC, Entity & Item classes.

Every part of the game needed its own type of implementation and there was only one thing I could do, code.

I would consider Runescape development a niche. If I knew the language all I could do was implement code to learn the niche.

Slow turtle by Joel M Mathey

And, I know pure implementation sounds cool and all. But this way of learning was much slower than mixing theory and implementation.

I often garnered theory by people who did it before over voice and such.

You always learn faster if you mix theory with implementation. Though sometimes you have no choice but to pick one as you will see.

Find 3–5 learning resources

You should not just have 1 full course. You should have, at the minimum, several resources to research your topic.

Ideally, you want to have 1 full course and 3–5 learning resources for whichever you are learning at the moment (language, framework or niche.) 

The full/monolithic course should guide your learning and each of the 3–5 resources should clarify/diversify your topic.

I wrote an article on monolithic courses if you want to hear the logic behind using full courses.

Examples of 3–5 resources (not resource types) can be:

  • The official documentation of the framework/language
  • Search engine, if your framework/language is popular enough
  • An LLM/chat AI
  • YouTube search or if your framework is really esoteric, one-two YouTube channels (some frameworks have no documentation and you have to stick to 1/2 channels)
  • A great friend/colleague, who actually wants to help you (they should know your topic obviously)
  • MeetUp groups
  • A discord server on the language/framework
  • A second or previous full course
  • If you are lucky, you may find a great blog on the framework/language.

I am sure there are more examples but those are a few to get you going.

Zoom Meeting by Compare Fibre

You can pick some resources and have them at your side as you follow a monolithic course.

Two examples…

At this moment I am learning AWS with a full course and have chosen five resources.

My AWS resources are: 

  1. Chat-GPT
  2. YouTube search
  3. Google Search
  4. The official AWS documentation 

Sure, I can add more, but it seems a little overkill.

Adding resources would obviously speed up my learning. But, I am quite happy with my learning speed at the moment so I will stick with what I got.

Last year I was specializing in PyTorch. I stuck to a monolithic course and had these resources:

  1. My thesis supervising professor (he gave me private tutoring sessions)
  2. The official PyTorch documentation
  3. Chat-GPT
  4. YouTube Search
  5. Google Scholar search (research papers)
  6. *I guess we should count the Machine Learning classes

At 6 resources, I definitely had enough options and learned rather quickly.

Find/Make a self-made project and a team/existing project

The ideal situation would be to have a team project from a job, college course, MeetUp or Discord server in your niche and a self-made project.

Teamwork, by Mimi Thian

It is somewhat essential to have both self-made and team projects. The problem and reason I say somewhat is because it is tough to do this without a job, college course, boot camp, Discord, MeetUp or some organization to participate in. 

Both team and individual projects give their unique benefits and help you round yourself out in your niche.

If you can do both project types, I highly recommend including them.

As always, implementation is a necessity.

In my past niches I generally had these projects.

When I was studying machine learning (in my last year of college) I had a team project with my professors (my thesis), college courses (self-made assignments) and final projects (in teams of students).

When I was studying game engine development I made my own self-made OpenGL projects & contributed to a team based game engine, The Spartan Engine.

For the Runescape clone I had Darkan.org & my self-made clone.

There were times when I only had a team project or I only had self-made projects and even now, I have none!

But, I found when I had both self-made and team projects I grew the fastest.

Screenshot of AWS Free Tier

Today, with AWS I struggle with making a self-made project. Why? Because if I use the SDK wrong I will incur charges and potential lock my Amazon account (that would suck!).

At this time I want a potential job to be my team project. At that point I can finally afford to make my own project with some financial leeway. 

For a few weeks I did commit to an open source project which used the AWS SDK. But, each contributor’s had to use their own AWS account in test. So I was in the same situation as a self-made project.

Though it is not ideal, I have neither a self-made project nor a team project at this time.

I am making good progress as it is, so I am fine up until I start working. But, I am applying everything in this article to make sure I don’t hit a plateau.

Anywho, I hope you learned something…

CTA: Check out my other articles and follow me on medium.

Happy coding!

Resources

Why fundamentals are essential: https://jessenerio.com/why-the-fundamentals-of-coding-are-the-key-to-success/

AWS Cloud: https://aws.amazon.com/free/

About full courses: https://jessenerio.com/how-to-study-full-coding-courses/

The Spartan Engine: https://github.com/PanosK92/SpartanEngine

Darkan Runescape Clone: https://darkan.org/

Leave a Reply

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

Related Posts

What is a loop?

When coding it is common to need to repeat lines of code. Loops help us do this in mass for all our coding needs. You

Read More »

Search this blog

Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Newsletter

Subscribe now to get my library of freebies + weekly emails with coding, tips for learning, and resource tips.

Learn to learn code faster, using techniques honed by years of study, neatly packaged into one book: How to Learn Code

Top content