How to Teach Yourself a Skill: The C++ Edition

Come with me as I show you all the whole progress of learning a new skill from scratch. Let’s start with learning C++.


This will be a series of articles about me showing you how to teach yourself a skill.

All of the methods I’ll show during this series have already been talked about in my article called How to Teach Yourself a Skill. If you haven’t checked out that post yet, do so later.

For now, let’s focus on my adventures learning C++.

Table of Contents

  1. Why C++
  2. How C++
  3. The First Day of C++
  4. The Second Day of C++
  5. The Plan Going Forward

Why C++

If you did read my article How to Teach Yourself a Skill, then you’ll know that one of the main requirements to learn a skill successfully is to have a reason to actually learn it.

This reason is synonymous with motivation.

You’ll also know by reading that article of mine that motivation can be either intrinsic or extrinsic.

Intrinsic is something that comes from the heart, and cares little about any extrinsic factors such as glory, money, or fame.

Extrinsic is something that comes from exterior factors, such as the promise of money, fame, or glory.

For me, learning C++ is just a stepping stone towards a bigger goal: building my blog’s authority in the self-taught genre. So, for me, everything related to my blog is intrinsic.

In your case, however, the motivation could be extrinsic. If so, then be prepared for a very hard journey. The good thing is that extrinsic motivation can turn into intrinsic.

Just keep in mind that for this to happen, you’ll have to push yourself through the early—and very difficult— stages of the learning process.

How C++

At the risk of sounding like a broken record, in my other article How to Teach Yourself a Skill I preach that you should focus on only one resource for learning a new skill in the beginning.

This will allow you to start learning ASAP, instead of wasting time trying to figure out what is the best way to learn.

For C++, as with most other programming languages, there are many resources out there to choose from. I’ve decided to go with the website Learn C++, for no particular reason other than the fact that it seemed like a good place to start for someone like me with no prior C++ knowledge.

The Learning Method

There’s nothing special about my learning method. In fact, it is the simplest method out there: Go hard for as long as you can and do it consistently.

In my case, the goal is to bust out 10-hour days consistently.

This is not something you can do starting from day one. You have to build yourself up little by little to get to that point.

One easy way to add volume to each daily session is to simply practice whenever you have time during the day. Even a short 30 minutes practice session goes a long way when done daily.

This is another reason why I chose the website Learn C++ as a learning resource. They have some practice exercises after each chapter’s theory points.

The only problem, however, is that they don’t have enough exercises for me to be satisfied with.

After all, in order to learn C++ from scratch I’ll need as much practice as I can get.

That is why I’ve decided to use AI to help me formulate additional practice exercises to get me through the early stages of the learning process.

After I get to the intermediate level, most of my practice is going to be via programming personal projects.

The First Day of C++

The first day was surprisingly challenging for me. I put in my 10 hours of study and got to the end of Chapter 1 on Learn C++’s website. I went over each lesson in order, without skipping anything, as I was coming into C++ without any programming knowledge (aside from some very basic HTML and CSS knowledge) and thought it would be in my best interest to take my time on the theory before going hard on the practice.

The exercises so far were simple and aimed at helping you understand the theory points presented in each lesson. Basically, there was a whole lot of reading and not much coding, even though you were, by the end of Chapter 1, capable of reading basic C++ and understanding it. By the time I finished Chapter 1 and was ready to move on to Chapter 2, this is the code I could write by myself:

Which then had this output:

So, nothing to brag about. Pretty basic stuff, but not bad for the first day of C++. I started the day not knowing anything about programming, and now I can read and write basic code myself as well, although the word clunky comes to mind when I think about how I felt coding on the first day. The learning process so far was very similar to language learning, so that was cool.

The Second Day of C++

For the second day, the focus was to keep working through the chapters as they are laid out on Learn C++’s website and get myself more comfortable coding.

I worked all the way up to chapter 2.7 Forward declarations and definitions and then decided I needed to reward myself with some practice exercises instead of mindlessly reading the theory.

I solved all the practice quizzes available up to that point on Learn C++ and then decided to ask for Chat GPT’s help to craft some additional exercises for me since I still didn’t have enough knowledge about how to do it on my own.

Here are some of the prompts I used and their outputs on Chat GPT 4.0 mini:

Notice how I asked only for easy and medium-difficulty exercises. The reason is simple: at this point in the learning process, I need as many wins as I can get. More Wins = More Dopamine = More Desire to Practice. This is the key to learning any skill.

In the beginning, always keep it simple with the practice exercises. The hard stuff will come naturally as your skill level increases.

Here are the exercises Chat GPT gave me based on that input:

So, as you can see, nothing too difficult.

I got both the first ones done rather quickly but struggled with the Medium Exercise since I was lacking C++ knowledge.

However, skipping the exercise was not something I wanted to do, after all, I had to write this blog post.

So, time to get back to reading mode and read the documentation.

By doing this, I found in Learn C++’s later chapters something called an if statement and it seemed like just what I needed to get the job done.

After incorporating it into my code, here’s the result:

Alright! Not bad for a boomer like myself.

After doing all those practice exercises (and some extra ones), I could see some clear improvements already.

I got to the point where I could understand what the heck I was programming.

So, now what?

We keep practicing.

Days 3 to 7 were all spent practicing and learning some more C++ syntax. Again, the Learn C++ website is an amazing resource.

The Plan Going Forward

While I was skimming through the documentation, I noticed that learning programming is VERY similar to learning languages.

So, just like language learning, the quickest I can get the basic stuff behind me and get into the intermediate to advanced stuff, the better.

This means we’ll start to move on from practice exercises like the ones I showed you so far and will start getting into building more useful programs going forward.

After all, the goal of this blog is to show you how to make money from a skill as soon as possible.

Tune in next week for the next part of this series.

Have a great day and keep practicing.


Leave a Reply

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