Eleven year old wants to learn to code
Posted by Inevitable-Lynx-1580@reddit | learnprogramming | View on Reddit | 57 comments
Hi! I have an 11 year old wanting to learn coding. I literally know nothing. He only knows some random small things from Minecraft and another thing he plays maybe. Should I start him with scratch or python? I plan to have him take a course but not sure which one to go with. Thanks for any help you can provide!
gm310509@reddit
Does he have an area of interest? If so, that can help guide the advice you are seeking.
For example if he is interested in making web sites, the path is quite different to is he wanted to make gadgets such as robots or cars.
Inevitable-Lynx-1580@reddit (OP)
As of now I believe it’s definitely video game related. I’ll ask him more about it. I didn’t realize there were so many different ones for different things. And this is 100% his desire. He approached me about it telling me he would like to learn to code. I know NOTHING about coding, so decided to reach out here.
gm310509@reddit
So I am not an expert in video games per se, but that is one of the more advanced areas of software development. That said there is scale of effort -vs- quality. For example there are environments where you can provide some high level details to create simple games such as scrolling games you might be familiar with from the good old days. Don't underestimate the involvement when I say "...some high level details...", there is still quite some effort to do that in terms of providing the graphics, defining things like boundaries (to detect collisions such as missiles hitting space ships or your player hitting rocks if it is a simple space shooter type game). These types of environments usually have some limitations in the form that you can only do what is provided by the environment - which is pretty rich, but you are limited to that.
Then you can go full control by programming it in C/C++ or some other similar language. In this case, the effort required is several multiples higher but you have full control.
You can also go "mixed". Many environments will allow plugins that provide extra function. The plugins will be written using something like python or C/C++ or similar and then can be used as part of the gaming environment.
Then there is a whole 'nother world of peripherals. Search flight simulator cockpits and you will see some extreme exampels of this, but basically you can assemble "consoles" dedicated to a particular game that bring the experience out of the box. In one case someone got a servo attached it to a magic tree and suspended it over his monitor. The magic tree swung and shook in response to the bumps and turns that he was experiencing in his driving simulator.
All the best with it.
samanime@reddit
I'll echo starting them off in Scratch. Even when I teach teens and even adults, I'll start off with Scratch. It's basically a "visual" programming language that can help solidify some of the concepts that are often more difficult to understand. It can also be used right in the browser.
Editor: https://scratch.mit.edu/projects/editor/?tutorial=getStarted
Tutorials: https://scratch.mit.edu/projects/editor/?tutorial=getStarted
Since summer isn't too far off, you can also look into summer technology camps. There are lots of options at lots of different price points. I personally worked for iD Tech (https://www.idtech.com/), a national program with locations all over the country, for about a decade in the past in various roles and can vouch for their quality, though they are defintely on the high-end, price-point-wise.
Lots of local universities will also host their own at a much more affordable price. These camps are great because not only do they teach kids, but they'll also get to interact with others with similar interests in their peer group, which can be remarkably valuable and help further their interests.
Beyond that, what he'll want to move on to will really be around his interests. There are lots and lots of possibilities and options.
Professional programmers tend to know many languages, engines and frameworks, and pick up new ones as they need. Different tools are best for different jobs.
The good news is between all the different things, the concepts overlap like 95%+, so where he starts doesn't really matter. He can get to any endpoint he desires, and even switch that endpoint many times.
I'd say the key thing right now is simply to do whatever you can to nuture that interest. He'll naturally grow on his own from there.
spinwizard69@reddit
This is education not fun! Scratch really has no place in that regard. Now if the kid wants to learn it on his own for a hobby or something that is different.
We must remember this is part of home schooling and prep for 6th grade. Whatever the kid learns needs to assure is success with school work.
samanime@reddit
Scratch is made by MIT. You know, the #1 STEM school in the world.
Scratch is an excellent education tool and is incredibly useful for teaching the basics of programming. It is an exceptional starting point, and I've used it a number of times as a starting point to teaching more advanced programming languages like C++, C#, Java and JavaScript to students.
Fun and education are not antonyms. In fact, fun makes learning much more likely to be engaging and actually excite kids to learn more.
spinwizard69@reddit
Well I'm going to suggest something, I've run into far to many programmers in my life that simply don't know the basics and part of that comes from programs like this. I'm talking things like understanding number bases like octal and hex, simple logical operations or what a linked list is.
There is a massive difference between learning a language to support a hobby and learning Computer Science to support an educational career and possibly a professional career. It really doesn't matter what you think of MIT, proof is in the pudding so to speak. More important even MIT calls this a K-8 language, most likely the kid is entering 7th, possibly 8th grade, so I see the potential for more formal education.
Like I said the kid can have his fun with any language, but if one wants to really start to teach the kid to program now is the time to inject real working languages and sound concepts from CS. I just reject the idea that a kid at this age, with an expressed interest, can't handle formal training in CS with an established language. We literally have schools introducing algebra courses in the 7th grade now, this simply to drive better outcomes overall. I'm not say we should slam the students with college level work loads, rather we need to recognize that they are maturing and need challenges to remain engaged. Scratch at this age is literally putting the kid down (by saying you are too dumb to program) when we should be lifting him up.
Inevitable-Lynx-1580@reddit (OP)
He will be entering 6th grade. We will start pre algebra in 7th grade, algebra 1 in 8th. I am absolutely clueless about all things code unless you want to count the stuff we did on MySpace years ago lol. Is CS a complete different type of coding (I guess language is the correct term) than both scratch and python? When searching for entry level learning programs to enroll him in I’ve only come across those two.
spinwizard69@reddit
My fault, CS is short for Computer Science in this case a CS program is what a college teaches students. This starts our at a very entry level bit of difficulty. In this case I'm focused on just the programming classes as the more advanced stuff would be most certainly over his head.
Some free resources:
As for Scratch, the biggest problem with Scratch is that he seems to be out growing it. At this point he would be better off in my opinion pointed to other languages that are involved in game programming. Lua and GAMBAS being two that are not C++. Even Python to some extent. All of these can be learned at his own pace.
samanime@reddit
Scratch isn't the end all be all, it's a teaching too specifically for logic flow.
Of course they'll learn more beyond that.
Did you only use one book or tutorial for your entire CS education?
Inevitable-Lynx-1580@reddit (OP)
I mean it’s for fun too. I’m not requiring him to learn this nor is it anything required by my state as a homeschooler. He just wants to learn it so I’m trying to help him. I’m fine with it being fun AND learning.
Any-Bus-8060@reddit
Start with Scratch first.
At that age, the goal isn’t “learning programming”, it’s making it fun so they don’t quit. Scratch is perfect because it’s visual and feels like a game.
Once they enjoy it and get the basic logic (loops, conditions, etc), then slowly move to Python later.
Also, let them build stuff they care about:
Don’t push long courses, keep it playful. If they enjoy it, they’ll naturally go deeper later.
Inevitable-Lynx-1580@reddit (OP)
Yes. I definitely want to keep this fun for him. It’s not something I’m requiring of him nor is it a state requirement for homeschoolers in my state. This is just something he approached me with saying he wants to learn it and I want to cultivate that. If he doesn’t want to pursue it beyond the “fun” aspect I’m okay with that, but I definitely want to cultivate the desire he is showing!
iceph03nix@reddit
Scratch is kinda built for this sort of thing and might be easier for them if you're not solidly familiar with it yourself. If they take to it, a lot of the concepts will transfer to learning something like Python
Inevitable-Lynx-1580@reddit (OP)
This is what I gathered from what I have read. It seems like it could be beneficial to do a course maybe over the summer and then possibly more to python programming course next school year?
spinwizard69@reddit
Your son can have fun with scratch on his own time. This hardly covers for formal education. Beyond that Scratch is targeted at kids.
To correctly place him in next years schooling, he needs a provable level of knowledge. The system you are working with should have some details in this regard.
Inevitable-Lynx-1580@reddit (OP)
I think it was you that’s had a few comments regarding scratch being fun and not rigorous enough for formal education. What would your opinion be on letting him learn scratch for fun over the summer then moving on to something more difficult for the school year? He has very limited coding knowledge at this point and while in what to support him the best i can in his desire to learn I also want him to enjoy it. After reading the numerous comments I’m learning toward scratch to start during the summer and then moving to python, but someone (I think you) mentioned CS? I haven’t heard of that.
colenski999@reddit
My son built Conways Game Of Life in Scratch when he was 12!
PraniReddit09@reddit
Seems a little off, but did you say "when he was 12!" or am i tripping because you said the boy is 11yr old???
Just confirming
Inevitable-Lynx-1580@reddit (OP)
That wasn’t me (the OP) that said that. My son is 11. That’s another commenter talking about his son.
TheRealChizz@reddit
This is awesome! I admire your interest in cultivating your son’s intellectual pursuits.
I think Scratch is a great option but could seem dull to a gamer. If he shows interest to it, then great. It’s a wonderful language that showcases programming logic.
I will go out on a limb and encourage you to research how to make minecraft mods with him. Even just creating something super simple.
It will: 1. keep him interested in learning the material, because it connects directly with his game 2. it was a lot easier for me to understand programming concepts once I was able to articulate why and how I can leverage said concepts to create useable software 3. If he gets far enough, he can learn how to publish his software and interact with other minecraft mod developers
StevenJOwens@reddit
My usual advice is that you want a Venn diagram intersection of topic of interest, language that's suitable for that topic, and available mentoring.
For example, php is handy for making web sites, but would suck for making video games. Python can be pretty decent for making simpler video games. When you get into heavy duty video games you get into things like C++ and Unreal Engine, which I'm not sure I'd recommend for a beginner.
There's an online course I often recommend, boot.dev. The content is free, the interactive features are only free for the first 3 courses. I think it has good content and a good approach. I'm not affiliated with it, but I hang out on their discord and try to coach a little.
Speaking of minecraft, for whatever reason I keep getting some sort of minecraft programming course popping up in my social media feed, with a pull quote of somebody talking about how their eleven year old loved it. A quick google turns up a number of options in that direction.
Aglet_Green@reddit
If he's just 10 or 11, definitely start with Scratch.
RainBowBaby37@reddit
I am SO happy you asked this question. I have a VARIETY of excellent free resources. (Interactive lessons, helpful assistance, multiple languages)
Online https://www.codedex.io/ https://www.codecademy.com/ https://coddy.tech/
Apps Codeacademy Go Enki Mimo
Now I do have more as I’m currently in school for Software programming! Please try these out, and if you want me to provide any more links, just let me know :-)
Feeling_Photograph_5@reddit
There are a pair of books I recommend for kids this age.
Create Your Own Computer Games with Python
Making Games with Python and Pygame
Both books are free to read online via the links above (official publisher links), or you can buy a physical copy from the publisher or Amazon.
The first book focuses on text-only games and learning the basics of the Python language. The second book introduces graphical games using a library called Pygame.
You're right to look for a curriculum rather than random tutorials. These two books represent a full curriculum, and the second is meant as a sequel to the first.
Middle--Earth@reddit
Uh, that second book is pretty old now, it was released in January 2012.
I would recommend a more modern book as that one is a bit obsolete now, so the son might get a bit frustrated if a lot of things no longer work or exist.
Feeling_Photograph_5@reddit
That's actually a good point. The second book is more vulnerable to getting dated than the first because the library has changed over time.
I looked into an alternative book for kids that is more recent and found this one highly recommended: Python for Kids 2nd Edition
Inevitable-Lynx-1580@reddit (OP)
Thank you! Do you think it would be beneficial to have him read these through the summer and then still take an actual course next school year? I want to see him up for success in this and get him ready for more in depth learning of it once he gets to high school. He will start 6th grade next school year.
spinwizard69@reddit
Personally NO! If this is prep for education you don't want him programming games unless it is a side hobby. Instead follow good college level programming series. For the most part just the programming segments and whatever the course covers in logic, number bases and other simple mathematics. You do not want to dive into calculus and other advance math at this stage.
What I'm trying to get at is this what the kid does as a hobby is fine. What he does as a student is an entirely different thing. I can see where it might make sense to spend 2-4 weeks on number bases and the conversion between them. Maybe a similar amount of time on Logic
Feeling_Photograph_5@reddit
They aren't books you just read straight through, they're full of exercises and projects to do, much like a class.
Taking courses in school will be a great way for your son to connect with other kids that are interested in technology but, honestly, he sounds like a bright kid. If he gets through one or both of those books he will be a leader in that class. He may know as much as the teacher (and that's assuming they have a good teacher ).
Inevitable-Lynx-1580@reddit (OP)
Got it! Thank you so much for all the information! I’m going to order the books for him.
Middle--Earth@reddit
The books are quite old, so it's probably worth searching Amazon for something similar that isn't quite so old. It would be a pity if your son were discouraged by finding that numerous things had become obsolete and didn't work any more.
Feeling_Photograph_5@reddit
Good luck!
dosomade@reddit
This advice is absolutely on target. I've been a coding instructor for the last five years for a national non profit that serves justice impacted youth. This is a fantastic plan for your childs success. These books are amazing.
Inevitable-Lynx-1580@reddit (OP)
He has a windows HP laptop. I’m sure we will need to upgrade something.
Feeling_Photograph_5@reddit
It might be fine. If it has an i3 processor or better, 8GB RAM or better, and maybe 20GB of disk space, it should be fine.
If you do decide to go with something new, the MacBook Neo is a great choice at a reasonable price point.
Inevitable-Lynx-1580@reddit (OP)
It’s i3 processor 8gb ram and 256gb SSD. My 16 year old likes to game and I know he only ever talks about the amount of RAM, so I figured he would tell me we need to upgrade that.
Smart_Tool247@reddit
Start with Scratch first, it’s way more fun and visual for that age. It helps build logic without getting stuck on syntax. Once he gets comfortable, then slowly move to Python. Keep it project based (games, small animations) so he doesn’t lose interest. At this stage, curiosity > complexity.
Lunex_uw@reddit
He is 11 no need to dumb it down
spinwizard69@reddit
Exactly! People act like this is a 7 year old. Now you don't want to throw some of that college level math at him but CS level programming classes are easy for the first few semesters and guess what the kid is getting older. Concepts like logic operations, number bases and conversions, are easy to grasp at that age! I don't believe you throw calculus at the kid or even algorithm analyses at him this year but a good grounding in the basics will serve him for a lifetime. B
ObeseBumblebee@reddit
Does your son's school have any programming competitions like Lego Robotics? That's a great way to get kids into code. Scratch is definitely a kid friendly way to introduce coding. Also Unity if he's into game development.
My kid got deep into scratch when he was 7. Mostly self taught himself using youtube.
He watched a lot of GriffPatch https://www.youtube.com/@griffpatch
Inevitable-Lynx-1580@reddit (OP)
We homeschool and our co-op does not offer that. He would be taking an online course. He had watched some YouTube on it and learn a couple of things, I just wanted to get him in a course for next school year when he starts 6th grade. Thanks for the YouTube link! I’m sure he will enjoy it.
spinwizard69@reddit
Actually a good book or a couple work better for me. Of course that is all we had when i started. The big concern i have is the quality of online material, some is fantastic but a lot of it is trash.
Id stay away from Python to start and instead follow a college level CS program that uses a low level language like C++ as the teaching tool. Done right the kid learns concepts that can be applied to any language. By the way im talking about the coding classes here which should be easy for a kid that age. I would avoid some of the advanced math and so forth as the content might be too much. The value in this approach comes when studying data structures and the like.
Frankly he can start learning Python anytime he likes. A good book helps here too. To really understand Python though it helps to understand how it works under the hood. This is why you follow a CS program that really dives in.
Some are going to tell you that this is too much for a kid this age to which i say BS. I literally started before home computers were even a thing, doing lots of reading. The first computer was a barely capable Vic 20. In any event the idea behind the CS approach is that the Science is separated From the language. Learning any language well takes time. Which iscthe other reason to teach the science, by the time he has left college we do not know what languages will be job significant. He should simply have fun at this stage
Lunar-Galaxy@reddit
There is a site called penjee its created by a coder to teach beginners how to code its how I first started learning to understand how syntax works and it also teaches debugging your code as well and best of all its completely free!
1AlanM@reddit
Start with code.org there’s an accelerated introductory course that is pretty good. Starts with sequencing and works through lots of other constructs.
v3ctorvic@reddit
The below book covers a lot of the foundational knowledge while working it's way through scratch and python.
Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook: The Complete Middle School Study Guide
spinwizard69@reddit
Buy a good text on C++ and point him to a couple of web sites. At the same time make sure he stays away from AI as a “tutorial system. Ai is ok for questions but not actual code generation.
He will need a computer hopefully somewhat newish, this simply for enough performance, RAM and ssd space. Ideally you will install Linux on it for a true low cost developers installation. The best alternative is a Mac with Homebrew.
Professional_Soft798@reddit
dont start with scratch, it doesnt translate to any meaningful programming knowledge, and is limiting therefor will get boring
learning python is the way, but its not an easy task for an 11 year old, wanting to learn and having passion towards learning are two different things
some concepts are simply too hard to learn, but very easy to avoid, therefor halting progress (such as memory management)
did you ask why he wants to learn to code? if its making video games theres also godot, a game engine that uses a language similar to python
lastly, learning with your son will make it allot easier for him
Bitwizarding@reddit
I am a big fan of JavaScript because it's so easy to get started. All you need is a text editor and a browser and every computer already has that. You can make something visual on the canvas or even in 3D with Three.js in just a few minutes and there are a ton of YouTube videos and tutorials out there.
It's also so easy to share your work, which is always fun! Good luck!
OwlsPlay@reddit
I learned Java specifically through trial-and-error with YouTube tutorials for Minecraft "bukkit/spigot" plugin development. Very fun, very rewarding and eventually even made me some cash.
whoisrodi@reddit
Scratch, then Python, tyen Pygame
debirdiev@reddit
I just found a game yesterday called The Farmer was Replaced that teaches you to program what is essentially python in a game that you automate a drone to plant and harvest an incrementally scaling farm. I'm just learning to program myself and just know I'll be messing with that game a ton.
FunnyMnemonic@reddit
Harvard CS50 has just started a new 2D game course. It's on their YT channel. The instructor will use LUA programming language, which is popular in Roblox game scripting.
If you have cash for your kid's hobbies, you could check out robotics kits like those by LEGO (and other brands). You can program movements using Scratch and Python (via an app that connects to your robots).
Alaska-Kid@reddit
Show him Twine and any book from the CYOA series.
Alaska-Kid@reddit
Links: https://twinery.org/ https://openlibrary.org/collections/CYOA
Asleep-Party-1870@reddit
for some reason i was waiting for Hi! I have 11 years...
jowco@reddit
I would start with Pico8.
Keeps things super simple, everything is built in that you need. You also learn lua which is a real programming language used in things like roblox.
www.lexaloffle.com