What I Learned from Teaching Two Kids How To Code

Jami, Tomiwa, Atharv - November 2018

Jami, Tomiwa, Atharv - November 2018
Jami, Tomiwa, Atharv – November 2018

In early November 2018, a family friend messaged me on Whatsapp asking me to send links on a trading algorithm and website which I built. I was curious why she asked, but decided to just play along and send her the links without asking any further questions.

A few weeks later she messaged me again asking if I would be willing to teach her son how to code. I agreed to do so and also tutored one of her coworker’s sons. We moved at a very fast pace of 2 hours/day, twice a week since I had to leave for a trip to Europe very soon. Over the course of those sessions and even though I was the teacher, I think I learnt just as much from them as they did from me. Here are some of the most important things which I learnt.

The Role of Parents is Bigger Than You Think

I remember reading a New York Times article which mentioned that in some Asian communities in California, children were donating their entire first pay cheque from their first job to their parents. The article also mentioned that in China, when certain people become very prominent for accomplishing great things, the parents also become “micro celebrities” and get invited for interviews where people ask them how they raised their child to do such amazing things.

After seeing how committed Auntie Nnena and Uncle Amit were to their children’s education I now understand why those cultures place such an emphasis on the role of the parent. Parents play a remarkable role in the habits and types of things we go on to do when we are older. If you look at the childhood of people like Larry Page or Jeff Bezos, you can quickly see the correlation between their upbringing and their achievements later in life.

I remember suggesting to Uncle Amit after one class that I thought Atharv needed a faster laptop because the current one was running out of memory when building the application. I said that in my opinion the Macbook is the best laptop for developers, but quickly added that it is very expensive and any newer laptop would be fine as well. He immediately responded that he was willing to invest in the Macbook, he just wanted to make sure his son was committed to coding first.

The counterpoint to this is that sometimes, it can go too far in the other direction. Parents can start trying to put too much pressure on their children, imposing their dreams and aspirations on their children, which can also negatively affect the child’s mental health.

Both parents often asked me if the classes were moving too fast or putting too much pressure on their kids, which I see as a very positive sign. I think both parents did a very good job of finding that fine balance between pushing their children to keep improving, while making sure they weren’t putting them under too much pressure and they were doing something that makes them happy.

Update: If you can’t afford a Macbook, I recently learnt that people are actually using the Chromebook to write code using AWS Cloud 9. Chromebook is a laptop with Chrome OS where you do most of your work in a web browser and Cloud 9 is a text editor that allows you write code in your web browser and more importantly, I found one for $285 on Amazon! Even a fancy touch screen one only costs $649.

I’ve noticed that most people who use their laptop, pretty much just use Google Chrome. So if you are interested in getting a laptop, even if it’s not for coding, Chromebooks might be a good choice for you.

The Sooner you Start the Better

Neither Jami nor Atharv are in high school yet and one thing I kept on telling them is that I wish I was in their position and had started learning coding even sooner. Even though, I started coding in second year university which is still a decent time to start learning, I couldn’t help wondering how much more stuff I could build if I had started at a younger age.

Knowledge compounds and our brains are most receptive to new information the younger we are. By taking the time to learn these skills at such a young age, when they have the least amount of responsibilities, and higher energy levels they are putting their future selves in a very good position.

Even if you’re in your 30s or 50s it’s never too late to learn a new skill (and it doesn’t have to be coding!). I’ve noticed that as people get older they start to hold on to opinions and habits very strongly but in a modern society impacted by technology that is constantly changing and adapting, the most important skill is to learn and relearn new skills.

Learning Should Be Fun and Practical

It’s pretty sad to see how many students have their love of learning ruined by the way a subject is taught and not with the subject itself. (For example, first year university Intro to Economics almost ruined my love of economics but fortunately Nassim Taleb restored it.)

I tried to make sure that in addition to teaching them the theory of software engineering and web technologies, we spent a lot of time going through the applications. That way they can see “what’s the point?” of what they’re learning.

For example, I asked both parents to send me pictures of what the kids were currently learning in math class. Then I took what they were learning in class and asked them to make a game out of the concepts learnt in class. See the math games (tomiwa’s alternate version) section in the web app we created.

Atharv’s original homework
Atharv’s homework turned into an interactive math game (Atharv’s version)

A phrase I kept repeating to them was that “Google is your best friend”. Some teachers discourage students from googling things and while they have good intentions, that does not always map well to the world in which we live. I encourage them to use Google and any resource they want extensively so they can: 1. Learn in a way that is as realistic as possible to the world in which they will be working, and more importantly, spend more of their time thinking about the more abstract, complex problems.

What About The Others

Another thought that crossed my mind is the fact that me, Jami and Atharv are both very fortunate to have the opportunity to start thinking and focusing on our education from an early stage. In a world of accelerating technological change and income inequality, the question must be asked what will happen to those who don’t have the chance to get a quality education. These are tough problems and I get very inspired by the work that companies like Khan Academy, Lambda School, Makoko Floating School and others are doing to help solve this.

I am trying to help in my own way by building a web app that helps students automatically find and apply to scholarships for school, teaching people coding concepts on my Youtube channel, writing blogs on programming, speaking and sharing what I’ve learnt with others, open sourcing some of my coding projects on Github (open source code for Atila) etc.

In light of that here are the teaching notes that I used to teach Jami and Atharv. I want to share these notes with others so they can use them as they try to educate themselves and others. I’ve also included the demo of the apps which they built and open sourced the code used for the web app so you can learn how to build this project yourself.

Teaching Notes:

  1. How to Make Web Apps – Lesson 1 – Intro to Apps
  2. How to Make Web Apps – Lesson 2 – Intro to Angular
  3. How to Make Web Apps – Lesson 3 – Web Page Interactivity and Intro to Git

    Note: I got lazy after lesson 3 and stopped making teaching notes 😁. But if there is enough interest (email me) I can add more information to the existing notes and add the notes for the other lessons.

Student Projects:

  1. Atharv’s Angular App
  2. Tomiwa’s angular-app: source code
  3. Jami’s Angular App