Hacker News new | ask | show | jobs
Ask HN: Helping a teenager learn software development fundamentals
3 points by mattboulos 1820 days ago
A close friend's teenager asked me to help him learn to code. What I promised was that I would look for resources that he could use to learn the fundamentals so that he could start building tangible things.

He's been interested for a while (and has done some coding at school), but what has tipped his interest is an elaborate strategy board game he's designing that involves updating levels of resources and strength at each play. The game is a ton of fun (at least for his adult beta testers), but it's a lot of work for him as the "central bank" to manage everything by pen and paper. A spreadsheet could help, but he's started imagining more possibilities.

I want him to build a real foundation. That means things like understanding the command line and what it means to execute code in an operating system, how to set up a minimal development environment, etc. -- so that even if his first kick at the can is a command line assistant for his board game, he understands what he's built.

Is this a good approach (it's how I learned, but I'm definitely open to other approaches)? What resources do you think I should point his way?

1 comments

People are different. The high-order bit of learning is to come to the field in a way that sparks his interest, sustainably. For a minority of people that's "build a real foundation". If so it ought to be clear pretty quickly.
I agree. Skip the "build a real foundation" and go directly to "minimal development environment".

I used a lot of Classic Visual Basic 6, and it's very easy to make a nice form with a few buttons and text fields, and perform simple calculations. It looks ideal for this, but it's proprietary, quite outdated, each year more difficult to install, and people make fun of you if you say "Basic".

Is there a nice library to build forms in Python? Something simple where he can build the logic behind a nice bunch of buttons.

(Another option is JavaScript, browsers are everywhere, but I don't like that "3"+7 is not an error.)