HACKER Q&A
📣 codegeek

Teach Programming to My Kid


I want to teach HTML/CSS and may be something like Turtle (Python) to my almost 7 year old. What else do you recommend ? I know about Scratch from MIT.


  👤 brudgers Accepted Answer ✓
What else do you recommend ?

Patience and a long view. Computational understanding only has much value for your child at multiples >= 3x of their current age. Right now, the primary value will be spending time with you and you sharing your interests with them. Good luck.


👤 mattdeitke
I recently graduated from high school, and have some experience with programming in a middle school/high school setting. However, at the moment, I cannot recall much about when I was 7 years old, so I might have high expectations here :)

I believe it's probably most important not to force your kid to do anything and just guide them in a direction and let their interests shape what they spend their time on. Most peers my age grow up with a pure dread for math and science disciplines because it was forced on them throughout their whole life. For me, it's still painful to think about anything related to chemistry/world history because I just remember a sure dread while taking the course (although that probably had more to do with the course/how it was taught than the actual content).

I don't think Python's Turtle is the best way to go here because it is difficult to build on the skills learned while mastering Turtle. Plus, nothing that will be built ends up being that impressive (whereas HTML/CSS can make awesome things). Scratch is probably a pretty good way to start just to get them to think about how specific problems could be solved.

For beginners, and kids especially, it often works great when you can build something concrete and show it off to people. Here, HTML and CSS will work great, since they are super basic and will produce real-time feedback. HTML/CSS can get you pretty far when building a website, but then once they begin to question how to do more difficult things, it may be a good time to introduce JavaScript, just because it can talk directly to HTML/CSS and there will be an element of realtime feedback. With HTML/CSS/JS, I recommend checking out Electron (which is a framework to create desktop applications in HTML/CSS/JS) and looking at how to publish a site online (e.g., Github.io/heroku for free sites or buy a domain from Google for ~$12). Similarly, it may be beneficial to check out Swift and Xcode to develop iPhone applications. Swift produces a bunch of entry-level material and they have a nice drag-and-drop user interface, which helps visualize things.

If they're super into science and math, it may be beneficial to play with Mathematica.

If they're interested in games/VR/AR, check out Unity.

Beyond that, I follow the new-crowd here and would start with Python. The syntax is much better than other languages and it captures many of the most important features in programming languages. There is also phenomenal support for Python packages.

Good luck!


👤 html5web
I taught Python to my 8 years old son using this book https://www.amazon.com/DK-Workbooks-Computer-Coding/dp/14654...

👤 tcbasche
Do they play any PC games? Some basic modding might be a good idea.

I remember doing really basic 'mods' for Morrowind (like a chest that asked you questions - it was written in the flavour of C++ that the game engine used) based off a tutorial.

For me this was a really interesting and engaging way to get into coding, and I think that's often the biggest hurdle for kids - keeping them engaged.


👤 wtmt
Take a look at the "for kids" books by No Starch Press. [1] I don't know how good they are, but No Starch has several options on different topics, including Python.

[1]: https://nostarch.com/catalog/kids


👤 tmaly
I am working on a course to teach kids ages 5-12 programming using Scratch. I am behind schedule in releasing it, but I would highly recommend you try Scratch.

The visual blocks, sounds, and some plugins like musical notes make it a really fun approach creatively speaking.


👤 html5web
Create a Codepen account for your kid and show how to make simple web elements. Start explaining simple tags, like:

, ,