Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This is awesome.

My son recently turned 8. All his coding so far has been with Scratch and other block-based programming environments (Octostudio, VEX Robotics, Apitor, Microsoft Makecode).

His typing speed is better than most kids his age, but still slow (around 10wpm).

I'm curious how you helped introduce your son to text-based programming. I've been considering either:

A) Having him go through this free Python course, that includes inline exercises: https://programming-24.mooc.fi/

OR

B) Having him create a web page in repl.it or similar.



We've had a long journey. Main thing is that I realized that my son doesn't learn enough from open ended tools like Scratch. So we tried a bunch of other things.

He started with Scratch JR & Scratch.

Then we switched to Tynker Jr & Tynker. Which provide challenge oriented block based games. Teaches loops, functions, etc.

Then we switched to CodeMonkey, which provides challenge oriented block & code based games (coffeescript, python). Teaches variables, arrays, etc.

Then I felt there was not enough new learning from the above. So I gave him VSCode and had him go through Khan Academy's HTML lesson.

That's when he made a bunch of HTML pages you see: https://www.armaansahni.com/ (pokemon, bakis, etc). ALL the HTML/CSS on the site is hand written.

Then I wanted him to learn how to be resourceful... for this, I gave him a serious of small challenges (eg: "make a function that displays hello world on the screen") where he had to figure out the answer himself. Use Gemini or Google, etc. But don't ask me. He ended up learning how to use Gemini to accelerate his learning (see his blog post, he writes about it a bit) and he was submitting solutions to me in JS. He had prior Gemini experience because he was using it to create images, and JS was natural extension of HTML.

Then one day he decided he wanted to make a game that he had in his mind.

In this above process, I basically observed what he was learning and switched to apps where I felt he could still learn something new.


I really have to applaud how astute you've been with your observations of how your son is learning things. That's quite difficult.

Additionally, I'm glad you weren't afraid to hand your son the real tools and let him build and break stuff. For some reason with programming, so much of the curriculum (even for adults) spends a lot of effort to hide away the things that are perceived as too difficult (e.g., pointers, memory allocation, etc). For children in particular it seems to be the actual code itself, and so we have things like scratch. It's quite refreshing to see a parent go against the grain on this one.


As a programmer, I feel the 'fundamentals' are very important. Because, well, then there's no magic.

I think the curriculum hides the code because its just so complicated. For example, just to build on the web he has to learn 3 different languages (HTML, CSS, JS). To do anything simple (like move a box on a screeen) there are too many choices (animated gif, CSS animation, JS animation, etc). Then there's complexity of code management (eg: this game uses just 1 big file) or deployment (how do you "run" your code).

So I believe simplifying things (i.e. Scratch) is a way to get people to do it without getting scared of the complexity. In our case, the goal is to learn the complexity, just in baby steps.

Appreciate your comments!


I agree with you that I want a non-magic approach. I want to understand the nitty gritty so I am building my code with solid foundations based on how the actual hardware works.

However, this is not an approach that works for the masses. The vast majority of programmers are quite happy to work at the surface level and they can tackle a huge amount of the work doing things I consider too easy to be interesting. That's good, because I can't motivate myself to do that boring stuff either.

You are right that baby steps is always the way. Especially good when you can get something basic working, then test & iterate.


I like this one for that.

https://htmlforpeople.com/

It's simple and clearly written but quite verbose


I started around 8 or 9 as well. Back then Javascript wasn't really around (was still called DHTML), so I started with Liberty Basic and shortly after that AutoIt, which I loved for a long while and would recommend if he wants to start doing things on the computer - simple to write but doesn't abstract the concepts of the machine away.

Your son has a seriously advantageous head start on life. Kudos!


Given how I see him accelerated by Gemini, I think the next generation will have a huge productivity boost.


I'm curious how much use he got out of Tynker? I noticed they have a cyber Monday sale right now, so I might sign up for a year.


Tynker has many games in the app. But they are basically the same type of game with different themes. Your kid will gravitate to whatever theme they like (princess, dragon, space, etc).

It would encourage him to reduce number of lines of code (i.e. use loops!) to get more stars. And we encouraged him to get 3 stars on every level.

It also provided both a block based view or a code based view of the work you're doing, which I thought was pretty cool.

Big thumbs up from my side for the app. It taught him the basics of loops and functions, through challenges to keep it motivation.

My kid loved the dragon theme.


Thanks. I just subscribed.


Thank you. This is a very helpful description. I think the same process might work for my son.


> His typing speed is better than most kids his age, but still slow (around 10wpm).

Get him on gtypist for 20-30 min a day. It’ll pay dividends for life. You’ll be shocked how fast it gets up to 60+ wpm.


Thanks. Right now he's using Typing Club, a typing tutor for kids. I will probably have him finish the sequence on there (or at least get to 20wpm on the lower case keys) before moving on to gtypist, keybr or nitrotype.

He only does 2-3 mins per day of focused typing practice. Most of his daily non-school study time is spent on math (Math Academy), Chinese (writing) and memorizing essential root words (using Anki). I don't want to add anything, as he already has little free time to play and read on weekdays.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: