Skip to content

How To Become a Champion Coder by Filling Programming Knowledge Gaps

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

Let me tell you a story to help you understand why filling programming knowledge gaps is important. So, 7 years ago I learned CSS for the first time. I learned mostly by implementation and watching individual guides as I went along designing websites.

At most times I could implement pretty much any front end design with styling. Issue was, it took me 5+ hours. I didn’t truly understand all the fundamentals of CSS but I understood enough to get by.

Years pass and this 5 hour issue turned to 1–2 hours when I see a design I want to copy. When I was working on my WordPress blog for the first time, 1 month ago,, it still took me about 1 hour per page to write down my styling for each page in WordPress.

Yes, I was getting by and all, but come on. 1 hour for 7 years of CSS to write 1 page? I already knew the design I wanted, this was simply me fiddling and guessing a few CSS properties for each tag until I got what I wanted.

And, in my defense, I did know most CSS styling rules, but there were a small group that were tripping me up. They were my coding knowledge gaps.

For about 4 years up to that point, every time I wanted to make a web page I spent minimum 1 hour on each page getting the styling right, all because I had a curable gap in knowledge I was just too lazy to fix.

However, guess what I did recently? I filled my knowledge gaps and now I am wizzing through my WordPress blog designs in under 30 minutes. It is more about the design now and not the CSS itself.

As a side note, what I was missing was an understanding of the display, position, flex-box and box-sizing styling rules. I knew nearly literally everything else. It was just these few rules tripping up my designs.

Knowledge Gaps Apply to All Languages, Frameworks & Technologies

This story I just mentioned has happened to me over and over again with many different technologies & languages. In the beginning of my programming journey I had a very difficult time writing specific applications in Java, because I did not understand ALL the details about the core language.

Had I filled my knowledge gaps in Java earlier, or at the same time as implementing projects, I would have more easily created applications and contributed to open-source projects.

Thankfully, I accidently discovered a technique for covering knowledge gaps in a Python Zero to Hero course on Udemy. The author of the course, Jose Portilla, in short, recommended that for those who have a lot of Python knowledge but not complete knowledge, should buy monolithic/complete courses anyway.

And do what exactly? They should skip what they know and watch what they don’t. It is that simple. So, when you are out shopping for huge courses/tutorials, look at the table of contents and search for what you don’t know being in that course.

Then skip to it and learn it. I will get more in detail with this in a bit…

When Should You Fill Knowledge Gaps?

How do you know you need to fill gaps? Well, in the beginning of learning a language or programming it is just one big gaping hole. It is the grand canyon you got there. You just need to fill that thing with a huge monolithic course (with implementation/projects/homework follow alongs). Basically, take a shotgun approach and be satisfied with that.

But later on, you could be an epic programmer. You could think, “I don’t need to fill my knowledge gaps, I am just fine. I will just relax right here”. But the key sign is, things take longer than they should. Programs, which you know are easy, are not as simple to code as you know it is.

There could be a variety of factors for this, programming fundamentals, knowledge of the core language, or a lack of knowing the fundamentals of the framework. Essentially, you are a cheese champion. You look great, and you are doing great, but you have specific weaknesses like holes in swiss cheese.

Photo by Marco Verch on Flickr

Well, I am here to tell you to fill those holes, you champion! But no, really, you want to have complete knowledge of your programming fundamentals, core language and framework, especially if you want to be a professional.

When you have complete knowledge of a technology, you are a faster learner, faster coder, more performant code writer, cleaner code writer, and, in many cases you save more time than you would have with incomplete knowledge.

Basically, all applications are easier to write when you have more complete knowledge of the framework. All frameworks are easier to learn when you have more complete knowledge of the language it is written for. All languages are easier to learn to write with when you know the programming fundamentals.

Think of all the time I would have saved over those 4 styling rules over the 4 years I mentioned earlier. In addition to that I would have produced better designs and learned even deeper than what I have today. But no, I had to think my cheese champion self was the best, right?

How Should You Fill Knowledge Gaps?

So, the basic strategy is, always collect monolithic courses. Have a long list of them for different technologies, languages & frameworks. Perhaps in Excel or a note-taking app. This includes YouTube, Udemy, Plural Sight, Coursera, etc. etc.

In the beginning of you journey take a shotgun approach. And, if you are a beginner programmer, start with programming fundamentals. Always, as a beginner, learn the fundamentals as they exist in all languages and without them, lacking fundamentals gives you the same effect my CSS story had at the beginning except for all languages and frameworks. Basically, missing the fundamentals will stunt your growth and slow you down as an overall programmer.

Anyway, if you have knowledge already, focus on the sections of your chosen monolithic course which you don’t know. Prioritize things which you know are used a lot.

And, create a reference manual, custom tailored to your learning style and current understanding for you to refer to while you are implementing projects in the future. The best note-taking app I can recommend for programmers doing this is, Codex.

Here is a summary on how to fill your knowledge gaps:

  1. If you are a beginner, take a shotgun approach, complete a monolithic course and make sure you know programming fundamentals
  2. If you have programming gaps, focus on the sections you don’t know and prioritize the most used content in the technology.
  3. For your courses always make a reference manual for your future coding projects. Try Codex. Refer to them while you are writing code.

How Do I Solidify My New Understanding?

Implementation is always the best way to solidify and ingrain coding knowledge into yourself. Your reference manual should be used, because, really, it is impossible to learn everything without implementation and, it is impossible to learn everything without a reference. Also, it is impossible to learn everything, so you need a reference!

Implementation will teach you on a deeper level that is irreplaceable, even by Large Language Models. Creating a reference manual tailored to you is a super hack that gives longevity to your learning by an order of magnitude.

I still have my reference manuals from 3 years ago and they help me pick up old frameworks again super quickly.

Anywho, I hope this helped.

Happy coding!


Udemy learning platform:

Complete Python course example:

Complete C++ course example:

Note-taking app:

Leave a Reply

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

Related Posts

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