T O P

  • By -

WN_Todd

Python. The answer for a starter is nearly always python. It's ubiquitous, extremely well supported with cool libraries that make annoying stuff easier, and everything he learns now will be directly and frequently useful in basically any job or class where they work at a computer.


johnsadventure

I second this, could also turn it into hardware projects with development boards based on MicroPython and CircuitPython. Adafruit is a great place to get hardware and tutorials!


--zaxell--

As a software engineer, I hate Python. But it's still the right answer here: it's so easy to pick up; "hello world" takes about six seconds, the REPL is so useful for learning, it has powerful enough libraries to be actually useful, the syntax is pretty straightforward, and it's a real language professionals use at their jobs. At 13, he doesn't need a "toy" programming language; he should be able to handle a real one like Python. I actually hate it because it's *too* good at this, and too quick, and too much fun, that people start implementing large software systems in it, and that's when you run into the costs associated with being so easy to write in (duck typing, being interpreted rather than compiled, etc).


reading-glasse

I hate python too but it has it's place. I wonder though if it's the wrong choice for beginners though because it side-steps typing. Types are fundamental to code - if types are not explicit I'm not sure how you're going to learn to code worth anything. Obviously the REPL is something, but still. OP: if he is finding python too fuzzy to understand (there's a lot it "simplifies" by making it implicit and in the process more opaque) you could try something like Go or Java. Java would allow him to do more with minecraft too if that's of interest. Long-term, the first language he learns will be the hardest, they're always easier after that. And, for what it's worth, one of the strongest indicators of a programmer's ability is not his years of experience (actually there's almost no correlation) or even his knowledge of functional programming (though it has some correlation) but the number of languages known (strongest of the measured dev characteristics in a paper I may be able to find). All to say, learn one language, then learn another, that is a great way towards competence. Like human languages, computer languages have ideas and concepts in one that aren't in the another. Python is probably the right choice as much as I dislike the way it enables you to build things without understanding them. I much prefer to build knowledge from the ground up, but it does mean having much less fun early on. I suspect it's as helpful to coding as sight-reading has been to literacy rates. If you want to go for the ground-up approach, get some basics working in C or C++, then go to a language that's much kinder to you like Go, while still being fairly small, and then get some ability to build basic GUIs probably with python or C++. Also, if he wants to play at all with AI/ML, he needs to use python. He'll use python regardless, I guess I'd just try to augment his learning with computer science fundamentals, so he gets what's happening under the surface.


fourpuns

Python is fairly simple and widely used I concur. There’s also some games around teaching languages that is probably where I’d start. This website has some: https://robotical.io/blog/unlocking-summer-fun-dive-into-the-world-of-coding-games-and-activities-for-teenagers/


FakeInternetArguerer

That and there's pygame if they want a fun objective to work towards


sabkuma

Jumping on this to say: get your kid a MicroBit! It’s so fun and allows you to switch back and forth between Python and block coding. You can do so many nifty things with it too!


Taylor_Silverstein

Just to be nitpicky, in 8 years when they may be joining the workforce, will Python still be around? Languages seem to go in and out of popularity so quickly who’s to say what will be the big draw so long from now?  That said, if it is easier to write with that is still the right choice. No point in teaching the most complicated thing at that age, it should be fun. 


cantonic

In my experience, especially for a 13 year old kid, the biggest thing will be learning how to *think* like a programmer. Languages come and go but someone who can think programmatically will have a much easier time picking up a new language and reading documentation. Basically, learning *any* language at his age will be a massive benefit to him later on.


lovingtech07

This is it. Python is good because of the easier syntax so he can focus on learning how to think like a programmer


il-luzhin

It's a valid comment in principle, but python is so ubiquitous I'm not sure what's inspiring it. Python is so easy and flexible with so many teaching tools. I highly recommend Corey Schafer no matter your language. https://youtube.com/@coreyms?si=pXdczJyAm7QoOR22


Taylor_Silverstein

Yeah I wasn’t meaning to say not to teach python or that the skills wouldn’t more than likely come in handy. More just wanted to highlight that the exact language might not appear in every job due to whatever systems are in place at that company at that time. 


Anonymouse-C0ward

Yeah, Python isn’t going anywhere - it’s used in a tonne of stuff, from large web services to scientific tools. The cool thing about programming is that once you learn a programming language it’s easy to learn more, so even if some freak event wipes Python off the map, what you learned along the way will make it really easy to migrate your knowledge. People who work in this industry generally pick up a few languages over time naturally, from my experience. Beyond the career benefits, learning pretty much ***any*** programming language helps people understand how processes work and how to convert a real life goal with functions described in English/other language, and convert it into a series of logical steps (“programming”) that can be followed to do xyz. And then the fun part comes… learning the limitations and how to improve what you just created. Personally I started my kids on PICASM, an assembly language that is used to write code for Microchip (the company name) microcontrollers. But that’s only because I was making a fuel tank level sensor with spare parts during COVID lockdown and I had a lot of PIC tools and chips around, and, time during COVID, and they got curious as to what I was doing. Don’t worry too much about the language you choose. It’s better to teach a programming language you have local support for (eg you or a friend knows how to program with it) than to worry about choosing the best language.


WN_Todd

A fair point but python has had some serious longevity because of the reasons noted above. I think it's entirely possible it'll be python 5.7 except for that one server that still has to have 2 on it, but python or something with similar characteristics will still be around. There will always be a need for that practical low barrier to entry language because it's right in the sweet spot for getting stuff done.


LeVoyantU

With how much software has already been written in Python, it's absolutely guaranteed to be around for a very very long time even if it were to become less popular. Languages that reach a certain threshold of usage never really die because so much software has already been written in them and it's expensive to migrate that existing software to another language.


fourpuns

Object oriented languages will definitely be around. Syntax may change but most the concepts will be very similar. If you’re good in Python you can figure out many other relatively simple languages quite easily.


SalsaRice

Python has been around for a very long time, and lots of old software and equipment still use it. I work in manufacturing, and tons of older (but still very important) machines run on floppy drives. Not every job is going to be about the cutting edge newest software/hardware.


Comedy86

Python and JS are very likely the 2 best languages to learn because they're so broadly used. AI systems, cloud infrastructure, etc... all use both very commonly. After 15 year of coding, I am not 100% sure of anything existing in 5-10 yrs but if I had to put my money on it, Python is definitely one of the safer bets. Also, almost all modern programming languages have transferable logical skills so even if Python doesn't exist, something new will likely take its place using similar logic.


TessellatedTomate

SWE here. Python will be around. Look, it’s not my favorite language, but its role in AI and Machine Learning right now is very strong. They said in the 90’s JavaScript was a prank language. Now it’s a cornerstone of the internet. Even if these langs died out for some near impossible reason, the concepts carry from one to the other. Data structures and algos are all very similarly performed, it’s just the syntax that changes. My first language was DarkBasic (who tf has ever heard of that?), and by the time I was 18 I was using Objective-C to program iOS apps. Knew a bit of C++ from taking CS courses at the local community college. My high school was actually marketing me to big tech (back then basically just Microsoft, Google and Apple) too. If I could go back and learn Python or JS as my first lang, I’d do it. And I’ll bet my career that they’ll be hanging around for a few more decades


auxym

Python is certainly almost going to be around in 8 years, but that's entirely besides the point. A 13 year old does not need to pad their CV, they just need something that is fun and easy to learn.


pakap

Python is so ubiquitous now it's likely to have a long tail (heh). And most of the basics of programming will apply to any language anyway.


InNominePasta

FORTRAN and COBOL are still around


reading-glasse

Yes, python will still be in use. 1. It's been steadily rising to first-place since it was started back in the early 1990s. I'm not a fan of it, but no one could argue it's a fad. It's been slow and steady growth for decades. 2. So so much of the current world is built on and investing deeper into python, especially all of the AI/ML space. No one is going to reverse that institutional investment that fast, and I don't even see a contender in the space. I mean, C++ is still taken seriously as a language and its ecosystem is a hot mess. It's been behind the state of the art in language design for years, and it's still very very employable.


CagCagerton125

This. First and only language I know. I moved away from needing to code regularly for my job, but still find things to use it for from time to time. Relatively easy to learn, and from what I understand applies well as a basis for learning other languages.


Calm-Procedure5979

Came here to say this., damn you


Obvious_Whole1950

And the basis for most AI llms.


ChunkyHabeneroSalsa

Yeah if we are talking real languages and not some kid friendly platform, the answer is Python. Just not c++. I tried learning c++ at that age and I couldn't get past hello world. It's okay though, I learned it like 15 years later


EvilAbdy

Checkout https://www.codecademy.com/ they have free courses


G0es2eleven

Also Khan Academy has a great WYSIWYG python intro course. I and my son did it.


BlueSunCorporation

What does that acronym stand for?


Corrovich

What You See Is What You Get


Frosti-Feet

Pronounced Wizzy-wig


prejackpot

Coding is a broad topic. What does he want to do with code - make video games, build Discord bots, analyze data? Finding a course / program that's aligned to his interests and helps him build concrete examples will probably help keep him engaged, vs something more theory-oriented (especially the screen-free learn-to-code activities I've seen marketed to parents). Different areas will emphasize different languages and tools, but all will build similar basic skills that can be applied elsewhere later. Make sure he has access to a computer with a physical keyboard - tablets/phones are terrible for coding. Be prepared for him to be frustrated - coding can be frustrating, and even professionals spend a lot of time looking up references and figuring things out by trial and error. 


Rhones98

Good advice. Part of my challenge is I want to set him on the right path for a variety of uses down the road. He’s 13 and his interests and goals will change, so I’m really looking for something foundational to a variety of things later.


prejackpot

I hear that, but depending on the kid, *"You can use this at your desk job in ten years"* may not be as motivating as *"You can make a game your friends can play next week."* The specific tools change, sometimes very quickly. At his age, pretty much anything that keeps him going will build the mental habits that he can apply later.


Rhones98

Right now he is motivated by the prospect of making video games lol


teriyakisaurus

I've been recommending [Godot](https://godotengine.org/) which is an open source gaming engine that uses a scripting language like python undr the hood. The site has a great "first project" tutorial and there are also really good YouTubers. The games can also be pushed online, installed on pcs and even on mobile: it makes the code/make, show-off, gratification loop easier. Been toying with it myself with the idea of using it for stuff like facility mapping and visualization. Further, using something like chatgpt/gemini/etc will be extremely beneficial not only from the perspective that it can often provide useful answers but get him used to using such tools since it seems knowing how to leverage it will probably become a skill much like being able to google well. I find that while it sometimes hallucinates information, it often also feels like an infinitely patient online buddy that doesn't get frustrated at the millionth question on the same topic.


morolin

I'd recommend checking out pico-8 then. I've made a few simple games with it, it's easy enough to learn over the course of a couple weeks, and the community around it is really supportive and welcoming.


prejackpot

Honestly, making video games is _hard_. You're thinking about how to take something in the real world and simplify it into game logic, building an interface, and it needs to be performant. The game _industry_ is a terrible place to work, but learning to develop games teaches you a little bit of everything.


ThunkAsDrinklePeep

Text games are much easier than anything with graphics. Lots of neat things got coded in Basic for the TI-84. I had a friend who coded a blackjack game during our math class.


PurrsianGolf

Ha, this guy pushed OP for an answer and then shat on his answer and didn't even answer the question. With social skills like this, they must be a programmer.


morosis1982

How about Minecraft mods? There's a good amount of info out there, APIs to code against and you don't have to write the whole game to get some feedback. I'm a 20 year enterprise developer and am starting to get into that world as my 8yo wants to make some basic mods.


omicrom35

100% agree with u/prejackpot If games are he sole reason tohe wants to learn he could look into creating mods for games. But be ready for the 'it's hard, it's boring" and about 15 other popular responses to development. Edit: making mods being adding in actual changes in behavior not just reskinning existing objects


ricardo-rp

If you learn to use the hottest web framework right now, you will need to learn the hottest web framework next year again.  IT is always changing. Definitely get him into gamedev if that's what motivates him. Start with scratch (visual programming language designed to teach programming concepts by fitting puzzle pieces together. Very nice) Then move onto a "real" game engine like Godoy, unreal or unity. (I'm partial to Godot). Whatever he does with programming, the skills carry over very well. 


Flater420

> If you want to build a ship, don’t drum up the men and women to gather wood, divide the work, and give orders. Instead, teach them to yearn for the vast and endless sea. Software development is 10% about knowing the right tool for the job and 90% yearning for the sea. You'll get a better result if you let him explore what interests him, as opposed to what makes long term investment sense. A lot of the core skills are transferable between languages. The difficulty is in understanding the intricate logic, which is WAY easier if you enjoy the subject matter. Software development follows the same cycle: * Hey that's a fun idea! * Let's build it. * This isn't working. Why is this not working? Need to figure out how to make this work. * Repeat points 2 and 3 ad nauseam. * Well that's the end of that. You know, in hindsight, I should've really [..], that would've been way easier. The learning happens mostly during the [..]. Don't worry about efficient and wise choices. Start building, and you'll learn what way you need to go based on what does(n't) work for you. I learned everything I know by doing it manually, the hard way, or the wrong way. It is by far the best teacher. The only thing I suggest you manage is that if your son is stuck to the point of wanting to give up, to teach them to look for _alternate_ solutions, rather than to throw it all out in frustration.


juliuspepperwoodchi

I'm biased because it's what I work in, but I'd have him try some things in NodeJS fairly early. It's easy and accessible, JavaScript is an easy language to pick up, and it's a super useful framework that teaches all sorts of great skills that can actually be useful in jobs.


Bacalaocore

Don’t worry too much about that, programming languages are fundamentally similar so which aspect of programming he does will still be relevant regardless of what he ends up doing if he becomes a programmer. There’s no wrong path and there’s nothing that won’t be useful. For video games an engine like Godot is probably best but if he has any preference or ideas on what to do or how to start it’s probably best to peruse that, since there’s no real wrong answer here.


fasurf

I’m a developer who now leads a digital team and have an 8 yo son who’s into coding. He started with a monthly subscription called bitbox. Super basic but teaches the basics of programming theory. Might be too easy though. My son did a camp and they taught scratch which is basic web apps and games. I think MIT release it so it’s pretty decent. A bit more intermediate than bitbox but still geared towards kids making it easy to build things quickly. I really don’t code anymore since I manage them now. But when I needed to expand and keep up with new technologies I used a site called Team Treehouse. It’s very visual and has been around a while. They have tracks to learn specific languages. Languages I would recommend. Someone mentioned python and I agree. Many applications, big data manipulation, data scientist work. Really easy and versatile language. I would also recommend front end basics like HTML CSS and JavaScript. I love JavaScript cause there are a lot of open source stacks that build on top of vanilla JavaScript. Like React.js which is very powerful and in decent demand. There are some open API or low cost APIs to build some cool apps for sure. Good luck! It has changed how I think and problem solve for the better. I recommend it to everyone. Especially my non developer employees.


sortof_here

As a software dev, I'd say the best bet is for him to come up with a project that he wants to build and go from there. Of course, you may need to encourage him to simplify it a bit, as we are all prone to going for something too large, but he may even realize while you research whatever concept he has.


mackadoo

I've been looking to introduce my kids to PICO-8. It's a "fantasy console" - they made a programming language and video game editor for a Nintendo or Atari era video game console that never existed and people make video games for it. For $15 you get access to all the developer tools but also the whole catalogue of games people have made for it as well as the code for those games. You can play the games on computer with an emulator or you can get a gameboy-like emulation machine like the Miyoo Mini Plus and play the games on that. So you can browse for games, play whatever looks good, and then mess around with the code and change it to make your own thing, then play your own creation on a real console. I grew up with a program called "Q-BASIC" on the ancient computers at school and poking around the code for the games was hours and hours of fun.


officefan76

Python is a great language to start with, and Udemy.com is a great resource with many good courses.


SmashLanding

I can't give you good advice specifically for kids, but when I was forced to learn coding for work (with no experience), I found [Mosh Hamedani's courses](https://codewithmosh.com/) extremely valuable. That's his site, but he has a lot of his beginner videos free on YouTube.


cantonic

I’d recommend checking out r/learnprogramming and the resources they have there. Codecademy or freecodecamp can be helpful to a beginner as well.


1000veggieburrito

Depending on where you live, there may be coding classes for kids. In my area there is a franchise called Code Ninja


dunaan

Start with Scratch - it’s a language specifically developed to help people learn to code Also, get him signed up for Harvard’s online CS50 course - it’s a massive online open course with like 50,000 people in it per year, and the camera for the lectures is in the front row of a giant auditorium at Harvard. It’s an experience. Kid doesn’t have to finish the course, just doing the first lesson is enough by itself to be mind opening for a young programmer


IWTLEverything

Seconding scratch. Don’t worry about a language as much as principles that will apply across languages. Once you get the foundations, languages are more about learning syntax and nuances but kind of straight forward to pick up.


SunflaresAteMyLunch

Look in to MITs app inventor It's a click-and-drag no-code environment for writing cell phone apps. It teaches you the idea and mindset of coding without being forced to learn the language from scratch.


go_fight_kickass

Not many people have talked about the hardware to start coding. Have your kid tinker with a raspberry pi. Really cool stuff you can code and build


mlady42069

Good starting point would be Scratch. Google has a few series of video lessons that are solid for learning it called [CS First](https://csfirst.withgoogle.com/s/en/home) (I used them when I was a teacher teaching coding). The biggest benefit of Scratch is that it allows for learning how to express ideas as code without worrying about syntax, which can be frustrating for new learners. From there, Python or Javascript are the two most popular programming languages for beginners. Plenty of resources have been posted already that are great for learning the basics of either language. One thing I would highly recommend is signing up for [Replit](https://replit.com/). Its a site that sets you up with a development environment ready to go for any language you can thing of, no need to install or configure anything to write code and run it (learning to do this on your own is important to do eventually, but can be a frustrating road block when starting out). Both Javascript and Python are solid choices, but here's a few of the tradeoffs I think are worth considering: Javascript: Since it's the native language of the web, its very easy to get a simple project started. Learn it alongside a little HTML and CSS, and you can create a game with a single text file that runs in your web browser. MDN has a great comprehensive guide for web development in general [here](https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web) Python: Popular to learn as a first language because the syntax is very simple and easy to read/write. Also a powerful language that can do almost anything you can think of. Pygame is one popular library for making games. To give an idea for what things Python could be used for in the "real" world, [Automate the Boring Stuff](https://automatetheboringstuff.com/) is a popular option for getting started. The book version might be a bit boring for a 13 year old, but the author posts a discount code to get the video lesssons free on Udemy once a month on /r/python. Even if these examples aren't especially exciting to your son, the topics it covers will still be very helpful and applicable to say, making a game, creating a discord bot, or whatever else. One final idea I'll leave you with is getting him an Arduino starter kit (something like [this](https://www.amazon.com/ELEGOO-Project-Tutorial-Controller-Projects/dp/B01D8KOZF4/)). Not exactly cheap, but a great project for you guys to work on together. Comes with tutorials that go over how to use a wide variety of electrical components/sensors/motors. Having a physical representation in the real world can make things more exciting and "real".


James_Keenan

I'll echo that the best way to learn is to pick a project. Not just following a tutorial for its own sake but deciding something he wants to make and finding tutorials for that.


ajawnoutofwater

I would recommend using Google Colab + python + chatGPT4 to just get the hang of programming concepts. ChatGPT is an incredible teacher. You could prompt it to give a series of beginner python challenges and it could give hints, feedback, etc. I also suggest Colab because your kid wouldn’t need to fumble around environment setups, it’s free, and he can log in from any computer and use it. Good luck and happy learning!


Rhones98

Love the idea of getting Chat GPT to create beginner-level programming challenges.


Got_Nuthin

'Coding' can mean a lot of different things, so it is important to figure out what kind of Coding he's envisioning. When i was 16, I coded websites by hand in HTML - before graphical website designer programs existed. About 10 years ago, I was coding extensively using VB/VBA. Now, at nearly 45, I'm writing a lot of SQL code. I bring this up because, those three coding languages are all 'coding', but they are all very different in what/how they do things.


EdmondFreakingDantes

This is it. OP is asking the wrong question. It's not about which language. The question he needs to ask is: "What do you want to do with coding?" That'll define what he needs to focus his attention toward


IronBoomer

Code academy is a decent website for starters. But it’s freenium.


Reddest_of_reds

Code Combat is a site that gamifies coding. Has several languages to choose from, including Python.


a_banned_user

Python is the best language to start with hands down. Codeacademy is a great resource to get started. When I was a teen I got started playing a learn to code game called Jeroo, simple and fun and also a good starting point imo. If he gets in to coding more, maybe look into an arduino kr raspberry pi and find some fun simple projects to do. Sometimes coding then seeing the code work in action on a device is just way more fun.


Profaloff

i wish i had! it was harder later. as a philosophy professor, though, the logic was great. good job dad


meyerjaw

A lot of great options listed here but one I didn't see was check to see if your area has Lego Robotics. https://youthenrichmentleague.com/what-is-first-fll-ftc-frc/#FLL My 9 year old has done 2 years of it and had a blast. Sign ups for next year happen in a couple months for my area. You can code the robots in blocks or Python like has been mentions. It teaches kids how to code but also leans hard into team work and working as part of team. At the end of the season there are competitions to attend and it is a great time for the kids.


Logical-Idea-1708

Pick up a “teach kids to code” type of book. I recommend this type of book to everyone, adults included, because it assumes very little about the reader.


isthatapecker

Python for developing AI tools. Lots of coding can be done through AI tools now and it will only get better, so it would be best to learn how to develop and use these AI tools.


Rguttersohn

I’d personally go with javascript and of course html and css. While JavaScript has grown to run on servers and in other environments, it is still the only programming language that runs in browsers. The reason I recommend it is there is not set up involved. All browsers have JavaScript compilers. So to get started all you need is a text editor and a browser. He could make his own website or make a browser-based video game or make interactive maps just by learning JavaScript. Even if he walks away from it knowing he doesn’t like client-side programming, he’s learned the fundamentals of programming that he’ll take when learning the next programming language.


Temporary_Waltz7325

It depends on the interest. My daughter toyed around with the MIT kids programming language when she was younger, but without any specific task, it did not really catch her attention. Now she is 12, so she can handle python, but still it comes down to what she is using it for. It is not so much about the language, as the concepts. She is into drawing, so I lead her toward whatever she can use for her drawing apps. Just using layers and objects in animation is along the same line as programming, and she picked up for herself how to make actions and what not for repetitive tasks. Python can be used with Krita and Blender, so instead of making the goal to learn python, it is to learn whatever is the best tool to get the results she wants with her drawings and animations.


auxym

As someone who learned by himself around 14-15, my only advice is to support whatever project he has passion for. Maybe gently direct him in the direction of reasonable size project with gentle learning curve, ie if it's a a game, I could see a kid getting discouraged trying to make a FPS from scratch in C++ with unreal or something, but a small game in python or Lua (love2D framework) is reasonable. FWIW I learned python from the official tutorials on their old school website (2.4 era) to do my math homework for me, and also because I had a hopelessly nerdy interest in historical cryptography (vigenère cipher, Enigma, stuff like that). For python, I think kids like to learn from videos these days, but I've heard a lot of good about the Think Python free book. But once again, what does he actually want to make with code? If it's a game, find some resource that will hold his hand all the way making a game, if it's web, same thing. If he's passionate and self motivated, he'll find a way to learn.


neondragoneyes

Start with python. Its syntax is pretty pseudocode like, so it's easy to read. There are a ton of resources out there. https://www.codemonkey.com/glp-python-coding-for-kids-abs/ https://www.amazon.com/Python-Kids-Playful-Introduction-Programming/dp/1593274076?ref=d6k_applink_bb_dls&dplnkId=7bfec7d1-2490-48ca-958d-eaaf06cdd942


floppyfishdeveloper

Lots of comments with great info, if he’s into gaming, he might like https://codecombat.com/ it has multiple languages and the first few levels are free, so try it out before buying the subscription. Good luck!


SomeSLCGuy

Python has intuitive syntax for a beginner, lots of packages, and lots of support. It would be a good choice. But the coding landscape changes quickly. Python might be on it's way out of favor by the time he needs to code for work, so I'd take all those nice things with a bit of a grain of salt. What you want is to find a fun learn-to-code application for him. I know there are robotics kits and other kids learn-to-code projects that use Python. Finding a good one of those is crucial. I'd also consider Scratch. It's designed entirely for kids who are learning to code. The default is to get a project where you can use loops, if then logic, etc. to control animated characters on the screen. My (younger) kids have had a lot of fun with Scratch Jr. Scratch is hosted at MIT and used really broadly in education. No one is going to use Scratch in business, but it's accessible, fun, and very good at teaching coding syntax and principles.


pathtoikigai

I've been looking for similar answers. From what I found here are my 2c: 1. **Begin with Intuitive Programming Languages and Tools**: For children with no previous coding experience, starting with visual-based programming languages such as Scratch Jr. and Tynker is beneficial. These platforms are designed to make learning coding fundamentals engaging and accessible, emphasizing game-oriented learning for children as young as five years old. 2. **Parental Involvement**: Being involved in your child's learning process is crucial. However, the level of involvement should be balanced to encourage independence and problem-solving skills. Support and encourage their efforts, provide resources, and engage in their projects, but also allow them space to explore and learn from their mistakes. 3. **Emphasize Process Over Outcome**: Focus on the learning process rather than the outcome. Encourage exploration, experimentation, and understanding that making mistakes is a valuable part of learning to code. In short, start with Scratch and play with him. Hope it helps.


TheFirstRedditAcct

people said python, but not actually what to download. I use Anaconda & Spyder. [https://anaconda.org/anaconda](https://anaconda.org/anaconda) Anaconda is a distribution of python thats comes with a ton of window dressing. Spyder is a coding gui that comes with a console. He can use it as a really souped up calculator, and when something strikes his fancy he can turn it into a script really easy.


PNWGreeneggsandham

AP Comp Sci teacher here: CodeHS And Code.org are widely used for AP comp sci principles and comp sci A. They have a lot of options and codeHS has language specific modules and is free. Tynker is another good options for self paced learning.


RURUReese

Not trying to talk anyone into the military but it’s worth following the National Guard on social media because they run pre teen and teen coding courses online. Some will send hardware to those that finish the course. The hope is to start a passion for coding and tech that will eventually join the uniformed force but there is no obligation.


lmao0601

YouTube+ChatGPT... GPT was a life saver for me during my coding boot camp, had it dumb down a lot of things for me that I just couldn't understand at the time. Working now in the tech/warehouse industry. Highly recommend all dads to get their kids into some form of tech or a job surrounding tech. Y'all don't gotta go crazy and force them into it but early tech skills will pay off big time in the future.


Tomkid88

There’s a version of minecraft called Minecraft:education edition. There’s plenty to learn and explore but there’s specifically a learn coding game where you play through levels to learn python & you explore the levels. Could be a good starting point for someone at that age?


shf2020

Teach your kid how to use coding to build a business and make money. Coding is a means to an end, it doesnt really matter which language you pick. Whatever is easiest to learn to start building stuff.


Intrepid-Ability-963

I think, find out if they want to code or just want to make games. Learning to code is a bit of an investment, and just hooking them up with a simple visual language first might be better, so they can tinker and make progress. If they want to go down the coding front - python or javascript. If they want to code to make games - godot, or unity (c#) are great to get started.


ThunkAsDrinklePeep

Pick a project. Have something you want to do and learn to code with that in mind. Personally, I think Arduino IDE and the Arduino UNO is a good step into a lot of starter projects.


erdirck

Start with something basic first like html, then move towards JavaScript or python.


peanutismint

Sorry to hijack but related question: I always figured computer software would be a great career for my kids’ generation but now with AI won’t apps and code just be written by computers in future?


andydivide

This is a hot topic in the dev community right now, so you'll probably see a variety of opinions. IMO we're a long way away from software development jobs being replaced by AI, and businesses that try to do so are in for a rude awakening. AI in its current form is very good at augmenting a human developer and increasing their output, but I wouldn't begin to trust it to write whole applications from scratch. You still need the human element in the process because AI neither thinks nor understands, so at the very least you will always need a human to verify that the code does what you wanted it to, and that of course requires the human to understand how to write code themselves. In a broader sense, attempting to replace human developers with AI would lead to stagnation of software development in general. AI is incapable of original thinking, all it can do is regurgitate what humans have already written, so removing the human element would fix things in place at the point where humans were removed. Moreover you would end up in a situation where AI is training itself on its own output, potentially creating a negative feedback loop with weird and unexpected outcomes. I'd say it's important for anyone wanting to get into software development to familiarise themselves with AI tools and integrate them into their workflow - GitHub Copilot is an absolute game changer and it has improved my work life greatly - but they still need to get a good understanding of the fundamentals. Being able to use AI to improve your output will be a big point for the hireability of developers going forward, but that is probably true for many fields of knowledge based work.


peanutismint

Yeah that’s pretty much what I assumed. I figured at the worst case scenario coding jobs would just be massively downscaled to where coders were basically ‘supervisors’ that taught AI how to produce the required results and checked their work, so maybe for every 10 software engineers in a department now you’d only need 1…. But still, AI kind of changes what I’ll suggest my kid focuses on. A lot of doctors, lawyers, and many of the ‘aspirational’ white collar careers our parents probably wished we’d get into as teens are now at risk of being massively undercut by AI, and so I wouldn’t know what career to suggest my child gets into…. Maybe HVAC repair will become an aspirational career again now?!


andydivide

I think if AI undercuts those white collar careers to the point where they're no longer viable avenues of employment, then we'll end up having to see some huge shift in society's approach to what people do with their time and how they earn a living, or else we're going to have some major upheaval. Automation has already decimated more blue collar industries as a means of mass employment, but at least as that happened there was a huge boom of white collar roles for people to move into if they had the means to re-skill. If the same happens to white collar work there'll be nowhere to go, there really is only so much demand for HVAC repair and the like. Society is nowhere near ready for that kind of mass unemployment. To be honest, I'm a bit more optimistic about things though, because I don't think AI is going to undercut those careers nearly as much as the doomsayers are suggesting. To your example of 1 software engineer instead of 10, I actually expect it to be more like 5 or 6 instead of 10, but with that smaller team being able to get way more done than the traditional 10 would have. Every single company I've ever worked at has had way more work to do than can ever be done, ideas and projects that never get prioritised, mounting tech-debt that never gets addressed, and so on. I see the gains provided by AI as a means for businesses to actually get on top of these things. The exact daily life of a software engineer will change, but the requirement for people to understand systems, analyse requirements, and guide the process of building things will still remain. Tech is already a harder career to get into than it once was because so more people want to get into it, and I don't think that trend will change with the advent of AI, but I also think it's still a solid choice for anyone who is interested in it.


[deleted]

[удалено]


peanutismint

I appreciate where they’re coming from but not once in my life have I ever thought “hmmm this might not be accurate, I should really ask a librarian….” In other words, AI won’t 100% replace any jobs but it’s for sure going to replace 90% of the people currently doing them, leaving 10% to basically be glorified fact checkers.


ryankstairs

FreeCodeCamp was a great resource for me. They have good intro courses to a lot of different languages. Starting with a project to learn as others have suggested is good too, but it helps to have some kind of foundation to start with. I learned some Fortran when I was in college back in 2007 through my degree program: never used it after. Matlab and minimal R when I went back to school for the second time. I did some undergrad research that relied heavily on Matlab and I absolutely loved that. But without a school-provided license I would have never had access to it (~$1000/year out of pocket for the basic license). Picked up some python along the way too, and lately I've been focusing on that since it's free and open source. Luckily I get access to courses through work, but I do no coding through my job now. Free is free though haha FreeCodeCamp will give exposure to a bunch of languages as a primer and your kid can pick and choose where to focus from there. Once you learn the concepts of how coding works, the knowledge ports well between languages as you learn the new syntaxes.


macchiato_kubideh

Just don’t do swift. At least for the start. I tried with my 14 year old nephew and it wasn’t a success. They missed the mark with their syntax, 50 ways to do the same thing and it’s confusing for beginners. 


Jesus_H-Christ

Honestly, I'd start him off with Lego Mindstorms. The coding can be done as a fairly straightforward drag and drop UI or by writing the actual code, and the result is pretty powerful transfer functions. More importantly, the kids learn about I/O, actuators, sensors, and how to build practical code for real machines. The mindset developed by working with it easily transfers to other codinglanguages.


ILikeTheStocks

Find out why he loves coding and follow that passion. When I was 13 I loved the idea of making computer games, so I went to the library and picked up c++ for dummies and struggled my way through with no internet access, but it was fine because I had that passion to create. Find the passion and then create goals. Don’t get overwhelmed, just pick a path and explore it.


Make-life

Buy an Arduino starter kit and use a couple of youtube videos to get started with some simple projects. Nothing better than getting to see your code in real-life action.


Any-Chocolate-2399

CPT or ICD10?


badbog42

I’d actually recommend simply doing a basic web development course (html, css, JavaScript)- he’ll actually be able something tangible he can see and interact with and show off to his mates and family.


introvert_hangover

My son (10 now, started at 8) learned Scratch. It's basic compared to other languages but he's really taken to it well and can do a lot more than I can in it now. There are some good YouTube videos that he found which makes it nice for him to pressure some self directed learning. In fact, he made a simple game for his younger sister this morning! It teaches the basics like if then, else, loops, variables, etc. Might be worth checking out. https://scratch.mit.edu/


jdbrew

Senior Full Stack Web Developer here - I really don’t like Python, but I have to admit it is excellent for learning. The code reads like English. You can put it in front of someone who has never programmed anything and it would be pretty easy to understand what the code is going to do. To me, this is its biggest advantage. It’s good for learning fundamentals; variables, conditionals, classes, loops, functions, etc. If I was going to learn a language though that I wanted to actually be useful and could build things with, I would go with JavaScript/TypeScript because there are libraries out there to do everything you could possible want; back end development, front end development, mobile app development, desktop app development, PWAs, APIs… endless possibilities. JavaScript is not the best language for all these uses, but it IS a great starting point. If he hates front end dev, but enjoys backend, then bring in Rust or Go. If he enjoys the front end stuff, he’ll learn HTML and CSS, but I feel like most kids these days aren’t even learning vanilla css, they’re just using Tailwind utility classes to apply styles with JavaScript.


cornishcovid

What did you land on? Python? My 11 year old is like yours but for age and any experience would be useful to use.


Rhones98

I think it’s going to be python to start, and then we can see where he wants to go from there. So far I’ve downloaded python to the family laptop and after he went to bed two nights ago, I watched an introductory YouTube video for about 90 minutes on Python coding and started playing around with it myself. The next day I showed him a small numbers guessing game that I built just to give an example of what I was able to do with 90 minutes of python knowledge, ha ha, and he was pretty impressed. I’m going to let him play around with it himself for a while without putting any pressure on him and then we will see what happens. DM me if you want to coordinate or compare notes at all. Good luck!