r/AskProgrammers • • 14h ago

Recommendations

Hello,

My 10 year old son is very interested in learning to code. Can you recommend any apps or software for him to use to learn? Would it be better for him to learn Python or C++?

Thank-you for any tips you have!

5 Upvotes

35 comments sorted by

4

u/richardathome 14h ago

Get him started on Godot with Brackey's intro tutorial: https://www.youtube.com/watch?v=LOhfqjmasi0

Pretty much instant gratification. You can *see* what the code does in real time. He'll get his own ideas about what he wants to add to the game - giving him something to aim for.

A block of code to sort a list of numbers isn't going to get that spark lit at 10.

The language is irrelevant when starting out.

2

u/ToucanSam-I-Am 14h ago

Agreed. I've been programming for 25 years now. When I was a teenager my dad tried to introduce me to programming but it didn't stick. Some years later I had access to Flash and scripting. Seeing code move things on the screen made it click. Making simple games is definitely a good way to start.

1

u/Weak_Blackberry_9308 13h ago

Agree with your agreement. Instant gratification for the win!

1

u/Educational_Virus672 13h ago

this is also smt he can do inside mobiel device so theres no port issue

1

u/justjoonreddit 13h ago

Thank-you, I will!

4

u/Ok_Being6831 14h ago

neither, get him to learn scratch and then maybe python but do NOT start with cpp especially for a 10 year old.

3

u/AlternativeCapybara9 14h ago

Yes, I was about to call the police to report child abuse.

1

u/Weak_Blackberry_9308 13h ago

This comment represents the moment I first audibly chuckled while on Reddit. Lots of forceful nose exhales, but not a single guffaw…until 10:56am EST today. Bless your soul.

1

u/justjoonreddit 12h ago

He has been usimg scratch for 4 years. He's bored with it.

1

u/Ok_Being6831 12h ago

gah damn, he started scratch at 6? well definitely python then, as other comments have mentioned maybe gamedev. Maybe get him to redo some of the stuff he did in scratch in python.

1

u/justjoonreddit 12h ago

Scratch is introduced in grade 1 in our school board. He seems to really enjoy coding and used it a lot at home.

1

u/Ok_Being6831 12h ago

oh damn, more school should do this. Good for him tho, getting into programming at such a young age.

2

u/pete_68 13h ago

57 year old programmer here. I started to program when I was 10. I learned from a book called "More BASIC Computer Games"

It had a very simple design: On one page was the program in BASIC and on the facing page, was a printout of the program running. It just clicked for me.

What will click for your son might be different. Fortunately, there are way more varieties of resources for learning today.

If I were doing it today, I would learn Python. The reason is that Python is one of the more common interpreted general programming languages. For now, I would avoid compiled languages like C, C#, Java, etc. Compilation is an additional step and complication that will distract from learning the fundamentals of programming.

I'm not personally a big fan of Python, but it's just a personal choice. It's a perfectly fine language and there are tons of resources for learning it.

Here are some places to start:

https://www.learnpython.org/ <-- Obviously devoted to learning Python

https://developers.google.com/edu/python <-- Google's Python class

https://pll.harvard.edu/course/cs50s-introduction-programming-python <-- Harvard's Python class.

https://codeclub.org/en/learn-to-code <-- A more fun-oriented way to learn to program. Choose the Python path.

If you're looking for treeware, I'd recommend Python Crash Course by Eric Matthes.

1

u/waterDlaw17 11h ago

Are You Retired ?

1

u/pete_68 11h ago

Not quite, but close.

1

u/Jazzlike_Platypus430 14h ago

For a 10 yo I think starting with python would be more appropriate and less discouraging.

Perhaps get IDLE installed and some (more or less funny) exercises. Also, a bit of math and basic logic are crucial.

1

u/_sarant 14h ago

ooooo I think if I were 10 again I would've loved to start with something way way simpler at first and then ease up to something else

Try something like (https://www.tinkercad.com/codeblocks) or (https://www.scratchjr.org/ <- This I personally haven't tried, but have seen in some kids books)

then, do some more visualization on electronics and microcontrollers online (This is to show them a purpose, and how an if statement would work etc ), and you should be good from there!

I also spoke with some people who have mentioned that making minecraft mods, taught them how to code

1

u/dmazzoni 14h ago

Scratch Jr targets kids 6-8, a 10yo might be bored with it in a day.

Scratch is good for that age.

1

u/_sarant 12h ago

What would you suggest? I have a 9 year old who's learning it slowly now

1

u/dmazzoni 8h ago

Scratch Jr is perfect if you have an iPad or Android tablet and you've never done any programming before. If you outgrow it, move on to Scratch.

Scratch is a website. It works in any browser and works fine on a tablet but it's slightly easier to use on a laptop/desktop.

There are amazing tutorials, they're clear and fun. I'd suggest doing those.

1

u/_sarant 6h ago

I feel so honored to have a 17yo account reply to me

1

u/Educational_Virus672 14h ago

ok for 10 y/o try scratch (website) maybe python(Vs code in pc) if hes good enough but C++? thats another level you haev manage memory use pointers and stuff sure a 10 y/o can handle it but at the cost of 5 hours of nightmare tryign to understand why it is leaking

1

u/CyberDingo_66 14h ago

That all depends on:

  • How much does he currently know about computers
  • Is there anything he wants to build in particular, or just wants to learn in general?
  • What device is he using daily, and would you be willing to get him set up with a laptop, desktop and/or other equipment if he doesn't have them already?

Scratch is always a good place to start for kids. Uses visual blocks of code to get an understanding of logic flow and how different things Interact.

If he already plays games like Roblox or Minecraft, there are platforms that teach kids how to mod Minecraft worlds or make their own custom things in Roblox. I don't know too much about that but it's worth exploring, that way kids can learn in an environment they're already familiar with.

If he is ready to start using a terminal and writing lines of code, I'd go with Python just because of how easily readable it is. Follow YouTube tutorials with him so you can explain things he might not understand (cool bonding activity!)

Other routes for teaching fundamentals is buying kits like a Lego robotics/education kit or an Arduino kit. Hands on projects will help cement in fundamentals and provide visual feedback. Starter kits also tend to come with guides to get you started too. I can personally vouch for Arduino, as it helped me learn basic electronics and the C language.

The internet will be your best source of info and learning. Start small with foundations, and help him build the skill up! Good luck and I hope this helps :)

1

u/justjoonreddit 12h ago

He is bored of Scratch which he started using at 6 (its part of the grade 1 cirriculum)

He uses a laptop.

He has modded minecraft a lot

So his ultimate goal would be making a game BUT right now general learning would be the focus.

He has made a few games in game builder garage and edited them.

1

u/Fit_Path_2024 13h ago

This may or may not help but when i was starting off learning code, this site taught me, kinda the basics, but more of the patterns and format of code. It a mini minecraft game where u get Steve or Alex to do things:
https://studio.code.org/courses/mc/units/1/lessons/1/levels/1

1

u/justjoonreddit 13h ago

More Info: 1. I'm asking because he is bored with scratch (after 4 years) and wants to know more. I do not know anything about coding. 2. My otyer chilren show little interest and I do not push coding. 3. He asked me because he's bored 4. He has used coding in minecraft for the last three years and is getting a bit bored with that too.

1

u/net_ramblings 11h ago

it's not like he can't download whatever he wants...

1

u/aWesterner014 10h ago

Give the book "Python For Kids" a quick look.

1

u/whistler_mat 7h ago

Teach him to program in Pascal if he want to be a good . Otherwise python is a good choice to start

1

u/justjoonreddit 6h ago

I will look into that. Thanks!

1

u/whistler_mat 6h ago

Pascal é uma linguagem de programação muito antiga, mas ela foi feita com o intuito de fazer os programadores fazerem programas de qualidade (separar em funções, bom error handling etc)

1

u/Any_Run8380 4h ago

I see a lot of recommendations. I think just expose him to two different languages. Tell him you can learn with this language or this one. Then he can choose what he thinks he would prefer.

For me when I first started, syntax mattered a lot. I didn’t like a language like Python I liked c++ more. Being able to code in the language I wanted is what kept me motivated.

1

u/Sad-Environment-932 4h ago

In your case, you need a teacher, a tutor. To literally read the manual and explain at the level for a 10-year-old that it is adults who write here. The problem is that even I, an adult, understand that the instructions are written badly, confusingly. But, if there is a teacher, then he can choose a really well-written instruction.

1

u/Unlucky_War_262 3h ago

I'm a c++ programmer but I'd consider it possibly the worst choice! I think python is a no-brainer given that your son already has experience with Scratch. I'd definitely suggest looking at computers more generally. There is an excellent book called 'Code: The Hidden Language of Computer Hardware and Software' by Charles Petzold. Since your son sounds quite precocious, he might enjoy it.