Live data from Hacker News

Ask HN: How would you teach teens to code in 2019?

news.ycombinator.com

1–10 of 88 posts

Ask HN: How would you teach teens to code in 2019?

#1
My son and daughter are growing up and after setting them up with Linux machines and kids coding activities (Scratch, Coding Minecraft w Java, Shoes.rb and more) a few years back I think it’s time to teach them to code proper.

I have experience in ruby and react and currently work as a Digital Media Designer.

What resources would you suggest? A. As a curriculum To run a small code club with them and a friend or two with homework in between

B. Self directed online resources they can use to level up themselves?

I’ve always loved ruby but am aware that JS is king and also want them to have exposure to functional languages also.

Re: Ask HN: How would you teach teens to code in 2019?

#2
Teens/Childs quickly loose interest in something. Find out what they find "hip" or cool, don't expect it to be what you find cool. I would rather support them to program their own Instagram app then to propose them to some hardware programming environment (thinking of educational boards) if they don't like it.

Also, learning programming was applied autodidactics for most of us, isn't it? My feeling is that this is the only really working way of learning programming (have worked 10y in university, teaching programming: Doesn't work well).

It really depends on your kids and on your relationship to them. Maybe you should present them a vast amount of programmable devices and interfaces to explore together interesting projects.

Re: Ask HN: How would you teach teens to code in 2019?

#3
If they have interest in it, by all means. Programming is a very slow learning curve, which can be frustrating for most people. I would personally start with very highly specialised / abstracted programming environments. If they like video games, using things like construct or, harder, Unity might be a good inbetween. Because of scenes editor and such, you can create something nice just with a series of drag and drop, and just write a few simple scripts to make it a bit more alive. It's also good to start on existing tutorial and try to customise them.

If they aren't interested in video games, it might be harder to sell programming as a hobby. I guess there is something a bit more magical to "hey, I managed to make this cube move when you press the joystick, and then when you press A it jumps" vs "hey, I have a sign-in form for my app".

Re: Ask HN: How would you teach teens to code in 2019?

#4
Well it is difficult because there are so many distracting things and programming environments are not very engaging for kids. My two daughters had great fun assembling Lego Mindstorms and Robotis Bioloid kids (with the smallish metal screws). We then downloaded the examples programs to which I did a few changes in front of them, and tried to explain stuff. But clearly they showed no interest in the programming activity. So I did not insist. I may try some time later with an Arduino: I think it is by far the less sucking programming environment for young people, and it basically works (and is text based).

Re: Ask HN: How would you teach teens to code in 2019?

#6
Agreed that they should show an interest before you embark on this. Finding joy in general education is more important than job skills for that age.

That said, Ruby and JS are not great languages for teaching fundamentals. They (especially JS) have a lot of weird design decisions that don't translate to other languages and don't map neatly onto problem spaces.

If you insist on JS, start with TypeScript at least. But maybe D, Kotlin, Go, or Dart would be better to teach general concepts.

Python would be a good add-on because they could actually use it to write quick utility scripts and, eventually, data analysis.

Instead of linear programming exercises, it may be easier to find problems they find interesting and help them Google their way through solving them. Maybe they have some tedious homework they could learn to automate.

The problem you'll find is that kids don't do much work, so programming (i.e. making a computer do work for you) isn't necessarily that exciting yet.

Re: Ask HN: How would you teach teens to code in 2019?

#8
Like the rest, if they are interested. I think, again like others, that something with better fundamentals than JS would be good as then JS won't be hard to take up. I learnt coding in the early 80s by programming games. But when it came to making money I used those skills to build business applications. And I liked that as well (I like the feeling of creating something that works 'out of nothing').

Re: Ask HN: How would you teach teens to code in 2019?

#9
post #6

Agreed that they should show an interest before you embark on this. Finding joy in general education is more important than job skills for that age. That said, Ruby and JS are not great languages for teaching fundamentals. They (especially JS) have a lot of weird design decisions that don't translate to other languages and don't map neatly onto problem spaces. If you insist on JS, start with TypeScript at least. But…

When first learning it's more enjoyable to see an idea translate quickly to reality.

JS is great for that purpose. It's very easy to make animations and other fun effects in the DOM or build an extension on top of their favorite site. Once invested they might start research and discover CS fundamentals. Immediately throwing them at typescript without understanding JS could lead to frustration/confusion.

They also might learn an appreciation for things like type safety by not having them. For that reason dynamic languages like Ruby /Python are great. They can execute an idea faster, and if they get frustrated by those types of issues then introducing them to those other languages. Kotlin is cool, but it makes a lot more sense if you have had to deal with null pointer errors before.

Post reply on HN