Finding The Right Coding Teacher For You

At the beginning of my coding journey, I read a story on Reddit by someone at the same online school as me. He said that he had taken every single course that they offered. Then he followed this up by saying he didn’t feel confident about hitting the ground running at a coding job.

I wish I hadn’t read that story.

Why didn’t he feel confident after taking every single course that they offered?

I tried to put the story out of my mind and I pressed on. I completed the HTML course fairly quickly, then the CSS course. At the end of the CSS course, I kind of suspected that I was in trouble, but I didn’t have the right words to describe it. Now I do.

In CSS, I didn’t know when to use what.

A few weeks into my JavaScript course, I was 100% sure I was in trouble. I was trying to think of a way to reenforce what I was learning to make it stick. I was thinking of enrolling in getmimo.com. I also found a good free course online called edube.

Then, a few nights ago, I decided to take a few steps back and really re-evaluate the situation.

What do you really need to learn this?

Just by sitting down and asking myself the question, “What do you really need?” I figured out my problem.

Sometimes I am given a problem to solve and I freeze because I don’t understand what the instructions are asking me to do. I don’t understand what the words that make up the instructions are trying to say.

It could be for a few reasons

1) Because most of my learning has been an information dump or code along, things didn’t really stick.

2) It could be because I was going through the course too quickly, and haven’t memorized the meanings of those words yet.

But here’s the thing.

JavaScript is a language.

English is also a language. In English, you could say the following to me. “Drop the bucket in a well 5 miles from here, get out some water, then paint the bucket green, then stand on your head with your right foot at a 45-degree angle while looking sideways.”

I would know how to do it, even though that’s an awful lot of instructions.

Why? Because I understood the meaning of all the words.

I understood bucket, well, water, green, head, stand on head, angle, 45-degree angle and sideways.

I realized that I needed to fix this problem of not knowing where to start with the instructions.

Here’s a simple example of me understanding part of it then running to ChatGPT for help.

Build a Lunch Picker Program

This is a simple example of instructions where I got stuck for part of the instructions. I did some of it correctly, but not all.

There are two Schools Of Thought About Not Understanding Instructions.

The first school of thought is the “Why are you even surprised?” school of thought. “You knew good and well you didn’t have the right kind of brain for this computer coding stuff when you started.” Nothing to see here folks. You knew this was coming when you started JavaScript.

The second school of thought says, “Study programming before you study any programming language.” There are several courses, like this free course from Stanford online that I have come across where you study just computer science. That way you have an idea of the foundation behind coding, the way computers think, and the common elements many programming languages have. You study these foundational concepts before you attempt to learn to code.

This approach makes a lot of sense.

I should mention that I also considered reading a certain JavaScript library book twice, taking some sort of audio course, then coming back to my main course after it has all sunk in.

As I was looking into these options, I kept looking around the interweb.

I happened upon a book by a guy in England name Rob Miles. He is a retired computer science professor.

He has a podcast to go with the book. He also has a website and github repository with all the code he is explaining to you in the activities in the book. There are 136 such examples that I counted on the website. By providing these examples, you don’t ever have to spend 4 hours trying to find the answer to a problem when you get stuck.

So I listened to one of his podcast episodes, then went over to his website. After that, I decided to get a free trial from O’Reilly.com to read the first few pages of the book. The first thing I noticed was that Rob is very good at explaining things.

It was pretty late Sunday night when I found this. So, I decided I would start reading his book and doing some of the exercises the next day.

Rob doesn’t mess around.

Within a few pages of the book, like within the first few practice activities, he says, “Well, I’ve taught you X, Y and Z. With what I’ve taught you, you should be able to make a

  1. Mood board
  2. Fitness timing app
  3. Slideshow.

Go try it.

In my head, I could just hear Rob saying in his British accent, “Off you go.”

So off I went, and started creating real things in JavaScript.

I didn’t really know what a mood board was, but after checking around it seemed to be a group of images arranged on a grid around a theme.

My mood board that I made is more like, “Click this if you’re in this mood, and click that if you’re in that mood.”

Who cares? I’m learning what he wanted me to learn, which is how to get things to happen when people click things and how to get things to change when people click things according to certain pre-set criteria.

Like real things.

Today, I made an audio player that can change the song and the thumbnail image in the player when you press a button. That’s right. Two days into the book.

Tomorrow I will make a fitness page with timers according to the instructions here from the book.

  • Make a “fitness” page Users will press a button to select an exercise length, and the page will display exercise instructions and start a timer for that exercise.

It’s late, so I will upload the things for you to see another day.

But here’s what I have learned from this experience.

You have to know what you need.

  • There are many ways to teach coding. You have to find out the best way to teach coding to you.
  • The gap between learning the thing and practicing the thing shouldn’t be longer than a few minutes for me. I need to get my hands in there quickly and get them dirty and fiddle around.
  • I need to know why I’m doing things. I can’t learn by trying the activity in an environment where I console log it. I need to use it in a real thing that makes sense to me, with HTML and CSS alongside the JavaScript in a real world application. An example of what I mean by this is by creating a mood board or the fitness app or the egg timer from the book within hours of starting the course. One strange thing I noticed as soon as I started is that when he was giving me things to create, I wanted to style them nicely with CSS, which I supposedly hate. But I wanted to incorporate all three tools in my tool belt, HTML, CSS and JavaScript into my little apps.
  • I also need to see the answers if I get stuck.
  • Not being given the answers was not making me a better person, or a better coder.

I am going to give this new teacher’s book my best effort.

Unfortunately, his book is not at my library. So I will try to buy it as soon as possible.

I hope that in a few months I will have a good update that I’m feeling confident about JavaScript.

UPDATE:

Here are the projects that I mentioned that I would post later.

These are the instructions by the way:

You now know enough to create your own pages that contain timers, images, and buttons. Here are some ideas for you to think about: Make a “mood” page The page will display buttons labeled “Happy,” “Sad,” “Worried,” and so on. When the user presses a button, the page will display an appropriate message and play a piece of appropriate music.

Make a “fitness” page Users will press a button to select an exercise length, and the page will display exercise instructions and start a timer for that exercise.

Make a slide show Users press a button, and the page will show a sequence of images. To do this, you can use a number of calls to setTimeout to trigger picture changes at different times in the future—perhaps one at two minutes, one at four minutes, and so on.