It's Never Too Late To Learn: 3 things my 11yo taught me about coding
Tags: beginners, programming, essays, python
Published: 2020-08-04 22:16:50

---
title: "It's Never Too Late To Learn: 3 things my 11yo taught me about coding"
published: true
description: Continuing my series of "essays in learning" sharing stories, insights and introspection on work, life and tech.
series: "Personal Essays on Tech & Community"
tags: beginners, programming, essays, python
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/37s61um2j387792eh5in.png
---

Recently I wrote a couple of spontaneous threads on Twitter that became the most-viewed of my posts in over a decade. They focused on learning. The [first](https://twitter.com/nitya/status/1286430753329483776) inspired me to convert the tweets into a series of personal essays to support deeper conversations on those topics.

Today I'm converting the second thread into a post for the series. You can click the tweet below to read the thread on Twitter or just scroll down to read it in paragraph form. (The bonus of writing this on dev.to is that I can actually fix those pesky typos in my tweets!)

{% twitter 1284845105074102272 %}

The original thread has 13 tweets. I captured the first eleven below, and the final two in the Takeaway section at the end.

---

## The Thread

_It's never too late to learn something and never too early to share knowledge with others. My 11yo is getting more into Python so I decided to do (separately) the same intro Udacity course and be a study buddy._

And something interesting happened. (A thread)

---

It started weeks ago. We realized schools were not going to have any meaningful routines & wanted to give him something with a target and achievement, that would promote self-study and learning. I pointed him to the [Udacity "Intro to Python Programming"](https://classroom.udacity.com/courses/ud1110).

He started doing the lessons & zoomed through them. 
It was clear he was watching the videos and completing the exercises fairly fast. It wasn't as clear if he *understood* the concepts in a way that allowed him to apply them elsewhere.

**So I announced I would do the course!** 🙋🏽‍♀️

At which point he suddenly took an interest in MY progress. I made it a point to tell him I had never done the course before. (_True - I've used Python as-needed and learned it as I learned everything else, by examples and application_)

He decided he needed to be my coach. 😍

---

And so began an interesting journey. I watched videos with him and sketchnoted things of interest. And we would have discussions about what we were hearing and how it would apply. Till then he had used Python with Mindstorms - and with clear code examples (copy/edit). Now he saw Python as an open-ended tool to make things - and he started reading ["Invent your own computer games with Python"](https://nostarch.com/inventwithpython)

It opened his mind further to *creative* things he could do with code. Which brings me to yesterday (Jul 18). He came over all excited to show me a simple text-based adventure game he had created via [Trinket App](https://trinket.io/)
 
A professional coder might look at it and think it needed work
Just conditionals, print statements and string literals. Not at all [DRY](https://en.wikipedia.org/wiki/Don%27t_repeat_yourself).

**They would be wrong.**

---

To understand the power of learning and *achieving* you need to understand the user journey and goal. You need to see a 11yo giggling and running the app till the dragon finally relinquished the treasure. 

> It wasn't code.
> It was creation + storytelling

He was only running code examples and modifying them slightly. But he had learned two things already.

 * Document. Document. Document.
 * Experiment. Experiment. Experiment.

**And now he was ready to have the conversation on problem solving with code given a written problem.** 

---

![](https://pbs.twimg.com/media/EdSueSyXYAEZTzl?format=jpg&name=small)

The image above was me challenging him to take the same example text-adventure and modify it to create a "Snakes-and-Ladders" game.

> Huh? "Where do I start?" 

And _that_ shift in mindset was what successful learning is about - not "can I do this?" but "HOW can I do this?". 

We had more conversations - the biggest lesson I could impart to him was that there were no perfect solutions. Just iterative experiments to get desirable results. We walked through data structures and functions and understanding how to write code for agility and reuse.

He grasped three things immediately
 * Use functions to abstract complexity so code was readable
 * Use print + interactive runs to test & validate assumptions
 * Make the basic idea work before layering on complexity

His first board had 1 snake, 1 ladder - _and it worked._

---

## The Takeaway: 3 Things

This morning he has been busy explaining to his grandparents how they can create a text-based board game with Python. And explaining how we can share code via browser if they want to learn. And he told me he will extend this to multiple snakes/ladders - 😱

> And *that* to me is the three steps to successful learning

 1. BUILD something (document, experiment, iterate)
 2. EXTEND it to do something more (be creative, efficient)
 3. TEACH someone else what you do (clarify your thinking, inspire someone else)


### Resources

I'll update this with more resource links as we go. But starting with this. Hugely recommend the book - it's available [online here](https://inventwithpython.con)

{% twitter 1290994141623652353 %}

### The Journey Continues!

> Update 1: July 21, 2020

We have a working Snakes-and-Ladders game and it has the ability to be taken to the next level and randomized for different board sizes. I gave him the win on this one.

{% twitter 1285543938049347585 %}

> Update 2: Aug 2, 2020

I think I may have found us a new adventure to go towards.
{% twitter 1289869544731758593 %}

The 11yo was on board and we had a great conversation but this one is a bit more complex than the first one. I hope he perseveres. And I hope I get a chance to update this thread with learnings later
{% twitter 1289962799783845889 %}


## Your Turn

Do you have a story on how it's never late to learn? Or about someone who surprised you with their ability to overcome initial hurdles and discover the joy in problem solving?

Let me know - and if you have ideas or insights into other things I can get the 11yo to explore in his Python and game development journey, just leave a comment below. ♥️