5 ms·
Ask HN: My 11 year old child wants to learn programming, where to start?
My 11 year old has expressed interest in learning to program. His primary inspiration is games. I would assume this is common, although not how I got started. I’d like any thoughts, suggestions, or resources anyone may have. Thanks.
- vsskanth 6y agoWhen I was 11 years old I learnt to program starting with text based games in Turbo C++ or something. Just setup a pc with constraints, pick a language, teach the syntax and let your kid make a game you can play with.
- bigiain 6y ago> When I was 11 years old I learnt to program starting with text based games in Turbo C++ or something. I suspect those of us who grew up during the era when the games you wanted to play as a kid were Colossal Cave, Pong, Zork, and Space Invaders - had it _so_ much easier than kds today. The path for an 11 year old to get from from telling the computer: 10 PRINT "HELLO WORLD!" 20 GOTO 10 to a playable/fun game, for me, was not an inconceivable journey at the time. These days, I wonder if expectations of Minecraft/Roblox/Fortnite/CallOfDuty/CyberPunk2077 (or whatever 11 year old kids are playing these days) have made the path from "Hey, I can make this computer print out some text" to "I could make my own computer game" much less straighforward or conceivable? As a kid in the late 70s/early 80s, I wrote text adventures (as a tangled pile of global variables, if statements, and gotos) in Basic on computers like TRS80s, BBC Micros, AppleIIs, and an OsbourneII (a CPM/Z80 "portable"). I worked out that printing characters at the right place on screen fast enough could let me write "text mode" ascii-art versions of games like Pong, Lunar Lander, and Space Invaders. The performance of Basic led me to learn to write the inside event loop in assembler (On the AppleII you'd POKE all your event loop assembler into a block of memory, then CALL to it from Basic to run your game code instead of the Basic interpreter.) LoRes graphics, HiRes graphics, sprites and sprite collisions - stuff lie that was all an understandable and achievable learning path for a curious enough kid, where the "triple a" games of the time (Sabotage! Olympic Decathalon! Choplifter! LodeRunner!) were all things that an 11/12 year old with sufficient hubris and way too much time on his hands could "understand" how they worked, and imagine making it myself. If "learning to program games" means to an 11 year old in 2021 "I want to write my own version of Cyberpunk 2077", I have absolutely no clue how Id even _start_ to help them along that path... What are the spepping stones between a hand-me-down laptop or phone, where a kid could start and imagine themselves ending up at something like the game they want to play???
- bhu1st 6y agoMy 12 years old nephew is doing a lot of game development activities in GDevelop and he also have grasped Unity3D going through self-paced YouTube tuts. May be you could guide your child to get started in these.
- schwartzworld 6y agoIt's no different than someone learning guitar because he wants to play like Joe Satriani. You start with Hot Cross Buns and work your way from there. I'm sure that a motivated 11-year-old could learn to write games in Löve2d or Pico8.
- HDMI_Cable 6y agoHonestly, as someone who has grown up in the world of JS and interpreted languages, It's really important to teach them the fundamentals like filesystems, the command line, and especially harder, compiled languages, rather than JS or Python. I would recommend a good solid foundation like Java (especially if they like Minecraft).
- jareds 6y agoI think the initial language doesn't matter all that much as long as you can get interest in programming and have some structure to break you of any bad habits after you first start. I taught my self to program with GW Basic and goto statements in the early 2000's. At that point it was already a horribly antiquated technology but it ran on my braille notetaker so the learning curve to get started was super low. With in a year or two of getting started I was in a C++ class using normal computers which broke me of all the bad habits I had taught myself.
- HDMI_Cable 6y agoYeah, I'm just using Java as an example because there's a clear goal (almost every 11 year old plays Minecraft, if they can program plugins for it, they will be the most popular kid in class), and because its hard enough so that they're forced to learn good practices.
- wikibob 6y agoHard disagree. They are 11. It has to be fun. Minecraft is the right idea, file system io is not.
- SwEEpCollidE 6y agoIndeed. They can be fun and consider what your child’s interest is, his aptitude, as well as the language’s popularity so that it will benefit them in the future.
- demifiend 6y agoGive the kid a secondhand Thinkpad running OpenBSD, teach him basic shell, and tell him about the man command. He ought to be able to figure the rest out on his own.
- neatze 6y agoMinecraft modding seems like a great start, I have no idea what resource would be best. May be something like this: https://www.learntomod.com/features.html https://www.learntomod.com/features.html It might worth to look into robotics platforms such as: https://www.amazon.com/Raspberry-Pi-Robot-Kit/s?k=Raspberry+Pi+Robot+Kit https://www.amazon.com/Raspberry-Pi-Robot-Kit/s?k=Raspberry+...
- diavelguru 6y agoGrab an iPad and install Swift Playgrounds. Has you move a character to grab gems n stuff. Reminds me of my first programming language, Logo, though you are using Swift.
- yumraj 6y agoScratch on Browser or even an iPad works well to start.
- kody 6y agoI second neatze; I started around your son’s age by modding games (Morrowind). My younger brother got into Roblox, which is still popular. My main driver was creating stories and cool new stuff for other people (Dad, brother, forum users) and getting feedback. Playing with your friends in a world you spent a month to build is an incredible experience.
- asicsp 6y agoCheck out https://github.com/HollyAdele/awesome-programming-for-kids https://github.com/HollyAdele/awesome-programming-for-kids
- runawaybottle 6y agoI would start the person off with easy level Leetcode questions, and some basic level Agile methodology for project planning (let him play around with Jira, see how he plans things, but start getting him used to tracking his hours and breaking down tasks (maybe start with having him enter and breakdown his daily homework into tasks via Jira or any other agile tool)). Start getting him used to weekly code reviews/schoolwork reviews, and try to plan at least one day out of the week to get to know your son over lunch, this will help him develop the much needed social/culture fit cues. The social get together is different from the weekly 1:1, which is more about his perspective and goals. It’s never too early to start with this stuff. If you know another parent that has a child with design and communication talent, set up some play dates so they can both collaborate on building what will hopefully one day be a great Calendar app that sends out notifications (in real time). Plus it’s a great opp to pickup that much needed well roundedness to engage with product development workflows. This is all very important because aside from the tuition you will pay for college (if for some ungodly reason this child doesn’t pick comp sci), you will have to shell out a solid 17k for a bootcamp to save your child’s career 15 years from now. If you just start the kid early enough, you save 17k, or what will probably be 30k by then. Now that I think about it, have a bootcamp-emergency-fund that you contribute to starting right now might be good in case the kid goes through a phase and blows 4 years majoring in Media Studies. The leetcode is the most important thing here, because even if you do all the right things I just mentioned above, no Leetcode skills means no job. Remember, this kid has exactly 11 years to go from high school -> college -> straight to a 200k salary at a FAANG, he’s not gonna have a lot of time to have a naturally paced career where you work your way up to those places. So if you think I’m joking about any of this, I’m not. You’ve got 10 years to pull this off, best of luck. P.S: Forget about the video game programming part though, that job doesn’t pay well. Or you could steer him into a more sane career path, and nip all of this shit in the butt. Can’t go wrong with something in Medical.
- rdtwo 6y agoLol
- eecks 6y agoThinking back to myself when I was younger.. I think I would have valued being presented some options and being allowed to choose. So for example, explain Python and Java and why they are different. Let your child come up with a reason for choosing one. We might think Python is more fun but they might not.
- charlieroth 6y agoJavaScript is not often recommended as a first language but for kids the feedback loop of web development might keep them more interested!
- dragonquest 6y agoI agree with the Javascript suggestion, and if his primary interest is games - I recommend https://pragprog.com/titles/csjava2/3d-game-programming-for-kids-second-edition/ https://pragprog.com/titles/csjava2/3d-game-programming-for-... It's a great, structured way to get some hands on experience while having fun!
- tumidpandora 6y agohttps://scratch.mit.edu https://scratch.mit.edu
- dave_sid 6y agoI’d start with Spring Boot and maybe just a simple CRUD web service.
- foopod 6y agoI would definitely recommend getting started in something like Scratch, covering the basics of if/else, for loops, arrays. And then moving into Loved2D or Pico8, both lua based with tons of tutorials and other games you can play/edit. Whatever you end up doing though thee most import things are... + Having a clear goal + Clear and immediate feedback + Balancing the difficulty with skill level, not difficult enough and we get bored, too difficult and we get stuck.
- radihuq 6y agoI got into programming when I was 11 because I wanted to mod my favorite video game. Lucky for me there were multiple communities that helped me get started Perhaps see if there are modding communities for his favorite video game(s)?