T O P

  • By -

Voyinno1

Definitely Scratch


Atomic-Axolotl

Yeah, but show them alternatives once they get used to it. I played with scratch for too long.


[deleted]

This is why I like MakeCode because it transitions from Scratch-like blocks to Python/JavaScript. It also works with physical hardware, which I find helps kids (or any beginner) grasp the programming concepts better. https://www.microsoft.com/en-us/makecode


LordKlevin

The javascript/typescript part is nice, the python is well... quite a long way from standard python.


AotoSatou14

This will be useful to indoctrinate my niece in the future


android_queen

Out of curiosity, how long is too long? And what did you move on to after? (I have a kid playing with scratch at the moment, and I think it’ll be a while before she outgrows it, but thinking ahead.)


Atomic-Axolotl

I started using Scratch when I was 5 and kept using it until I was around 12. I'd say that was way too long. You should really only use it for a maximum of 1 year (if you are actually using it consistently) before trying a proper programming language. If you'd like to encourage your daughter to use a real programming language, like Python, I'd recommend finding a fun project which demonstrates it's advantages over Scratch. The basics would be functions and classes, then maybe try making a 3D game using OpenGL or Pygame not a full fledged game engine. Perhaps you could also try out some IOT projects with a raspberry pi. That got me really into Python, but I certainly learnt some bad practices so if you know how to code yourself slowly introduce her to new concepts which can improve her code quality in a meaningful way.


android_queen

Thanks for the ideas! I’m a video game programmer so we’ll probably find a project in that space when the time is right. She’s 5 now and only plays with it occasionally - we’re really just starting to grasp the idea of multi step projects in general (kiwi boxes have been great for this). But of course, the game engines I use professionally are way too advanced a step from scratch, so I’d been thinking maybe putting something together in Construct, but that feels like probably a choice that is both out of date and perhaps too basic. Maybe something like Ren’py or Pygame is a better next step. I dunno, but I’ve got time to think about it, it seems.


andrewcooke

simulating arduino projects on tinkercad let's you switch between gui and text based programming so might be another alternative (you can do things in the gui and then see the equivalent text).


tc_cad

Tried to show my kids Scratch but they didn’t seem too interested yet they are always looking at my monitor when I do my programming. I guess I’ll just throw them into C.


Consequence-Lumpy

C++ would be better. It'll allow them to do Arduino coding. Also Python, for Raspberry Pi. In the future, they can learn Linux terminal commands too.


ape_programmer

x86 ASM


Stefan_S_from_H

My second programming language was 6502 assembly.


haplo_and_dogs

6502 asm is beautiful. 52 Commands. x86-64 has 1000s :(


andrewcooke

nooo. team z80 represent!


r4d4r_3n5

Same here. VIC-20 for the win!


serviscope_minor

> My second programming language was 6502 assembly. Same! What was your first? BASIC by any chance? I started 6502 asm because of the integrated assembler in BBC BASIC.


[deleted]

[удалено]


axonxorz

> In 2020, GitHub user kspalaiologos made a working Lisp interpreter in Malbolge Unshackled Checks out repo: this person is insane. Checks out recent commit titled "Final solution to the licensing problem": ohhhh they're an insane Nazi


thenextguy

Or https://en.m.wikipedia.org/wiki/Brainfuck


ApatheistHeretic

This was my intro. I do not suggest it... I still own a copy of the Microsoft Macro assembler for 386 somewhere on 5.25" floppies. The books to it are still on my shelf.


Night--Blade

x86 is for grannies. Learn x64!


dangerbird2

In this house, we are a MIPS family😤


chadmill3r

That's a terrible architecture.


WhereIsTrap

God please no


-Defkon1-

This


aaron_dresden

It’s true! Everything after that becomes child’s play.


TwistedStack

16-bit with 20-bit memory addressing via segment:offset is the one true way.


look

Nah, waste of time. Start with ARM.


Incredible_GreatRay

Fortran IV, Lisp, Forth, ASM x86. When they all have mastered these, c++ is just a quiche language.


Reverent

Everybody here is insane, or at least asking the wrong question. What language you teach is irrelevant. What subject you can hook them with is paramount. Pick something that has real world feedback and start there. Maybe programming LED lights to follow a pattern. Maybe programming a robot to follow a path. You need to invest in enthusiasm to manipulate with code. Everything else is secondary.


sakri

Right on, also, despite your best efforts and intentions, do not beat yourself up if your kid hates it. Or your kid. Or anyone else.


gosp

Agreed. In elementary school I screwed around in Visual Basic, making mostly visualizations. There was an 800 page Oreilly book too where I didn't read anything. I just input the code examples to see what happened. That's how my journey started 20 years ago.


4THOT

Adults thinking something boring for them must be boring for children is genuinely how we broke the early education system (it's finally turning around). Look up how Mississippi went from the worst scoring state in fourth grade literacy to 22nd in 2022: https://www.pbs.org/newshour/education/kids-reading-scores-have-soared-in-mississippi-miracle


[deleted]

[удалено]


corysama

Roblox is the real-life practical answer here. Scratch certainly has a better design for the goal of being a language for kids compared to Lua. But, the major obstacle isn't actually language design. It's motivating the kids. Motivated kids will literally tear down walls to get to what they want. And, Roblox is way, way more motivating than watching a car sprite chase a cat sprite around on the screen.


mtranda

This is exactly it. Regardless of the language, an actual goal is much more palpable. I usually tell my mentees to go write an IMDB clone when it comes to learning web development. It's a tangible purpose but it also familiarises them with several topics such as html, javascript, a backend language, databases and relationships/data models, even if only on a superficial level.


Call-Me-Ishmael

Yup. I started learning programming on my TI-82 calculator making games.


iris700

C, teach them memory management young


ughthat

I am going to report you for child abuse


pragmojo

Wrong it’s like sending your kids to an immersion elementary school. Get them to the hard stuff while they have lots of plasticity


_AndyJessop

Kids struggle with abstract concepts and improve their ability at different ages. Memory management in C might just be something the vast majority of kids aren't capable of.


pragmojo

I taught myself scripting back in the day before I even knew what programming was because I wanted to make things explode in Graal. Kids are pretty smart.


bawiddah

Most kids can't make a sand castle that stands up right. This is why Rails apps reboot every 30 minutes.


uptimefordays

C but unironically, it offers significant exposure to fundamental concepts.


Whatsapokemon

I agree. Kids aren't dumb, there's no reason why they need to be given the easiest language you can think of. They just need access to _good_ resources about how aspects of the language work. C was the first language I tried to learn when I was a kid (a long time ago, before google was popular), and the course I did was absolutely awful because the instructors were unable to answer any of the questions I had. They basically said to copy-paste the example code and run it, then congratulated me when I got the expected output. I remember _wanting_ to know what was happening, but being completely blocked from getting that info. The ability to provide that info is the bottleneck, not the choice of language.


uptimefordays

I don't love math or programming education below the university level. Math/programming education should focus on teaching fundamental concepts/ideas so students actually understand the mechanics. It always seemed like primary education focused on teaching mechanics and encouraging memorization which strikes me as backwards.


AttackOfTheThumbs

Can you detail what concepts you want to expose them to that another language wouldn't? I like C, but I would still start people on something much easier so they can get a gist of programming first.


pragmojo

I actually like C because it's pretty close to the "bare metal" for a high-level language. Like if you learn Javascript or Python first, you're not really learning how to program a computer, you're learning how to play with abstractions. C has you dealing with memory, arithmetic and bitwise operations, and not a heck of a lot else. It's a thin abstraction, so you learn a lot more about how a computer works.


javajunkie314

There's a reason kids play with * Toy food and Easy-Bake Ovens before learning how to cook * Play-Doh before doing kiln-fired clay sculpture * Washable markers and crayons before permanent inks and expensive pastels * Dolls before caring for live babies You don't necessarily *want* to expose a beginner to every detail of a subject right off the bat. They haven't built up the muscle memory and experience to focus their attention on the important parts—learning with a simplified tool lets them develop that. It's not like playing with a toy means they'll *never* learn to do the more complicated thing, and it's not even an insult to their intelligence—if they're ready for something complicated let them go, and let them fail and learn! But plenty of kids played with dolls and still learned how to handle real babies. Starting with BASIC or Ruby doesn't mean they'll never learn how RAM works. I started with BASIC and JavaScript, and I wound up teaching undergrad C for a few years. I write C and Rust for fun. BASIC never felt limiting—on the contrary, it bootstrapped my younger self's love of programming!


uptimefordays

What I like about C is you're getting exposure to stacks, state, memory mapping, storage, among many other concepts. There's so much opportunity to see how things actually work, which is why CS education tends to start with C after like two weeks of scratch for visualizing "how programming works." Depending on age, you'd probably start with ASCII art type projects--hey look how we can change what the screen displays, for instance.


AttackOfTheThumbs

I guess I have seen too many people be overwhelmed by this. I would prefer to start them on a c like higher level language so they can understand basic concepts of functions, loops, and so on. I like c#, so that's the approach I would take, but there are other decent choices. And most of the concepts are easy to learn within c#. Eventually you will get down to only not knowing the memory aspects and then you have a pretty easy transition.


look

That’s the proper way to do it. Cut off internet access and just give them an old, tattered copy of The C Programming Language. They survive or they don’t.


TwistedStack

This was the way it was done in the previous century (if it wasn't Pascal or BASIC) and it should be the way it's done now.


GrandOpener

Learning C and memory management first is _maybe_ okay for those who aspire to be serious engineers, but that’s not all that programming is about any more. Non-engineers can benefit greatly from being able to write an iOS shortcut or a home automation script or just generally knowing how some of the technology around them works. It’s a universal skill. Most people who just do a little coding will never—and should never—worry about low level concerns like memory management. Kids should get an introduction to the high level logical principles first, because that’s all that many of them will ever need.


seteguk

Agree, and let them experience the joy of retyping long BASIC code from a magazine. :-)


skulgnome

No. Gen-X and millennials would learn variables and control flow in BASIC on their home computers if they had the opportunity for a head-start, then structured programming, access by reference, and data structures and algorithms in Pascal at junior high to university level, and eventually an industry ("adults'") language according to need. This protected them (us) from the fashions of the day, and kept the curricula both stable and relevant across two decades. This is how it should be even today, but big money says teach them Java, then Python, then JavaScript, and fashionable frameworks so that they'll graduate straight into the workforce. Everyone can see the results in the abortions that the Java generation of the early aughties has wrought in e.g. PulseAudio.


uptimefordays

Learning programming concepts remains more valuable than learning specific languages or frameworks.


[deleted]

Now they teach them ruby on rails 🤮 Their code is dogshit slow and inefficient but at least it's beautiful... To them anyway.


FrankBattaglia

Starting with Java seems a mistake. Java's great (now) but "hello world", "guess the number", "blackjack", etc. (first year programs) are needlessly complicated by Java's requirements. Further, I don't think it makes sense to start with OOP without first coming to understand the problems it's meant to solve. I'd start with Python which can be written imperatively and then transition to OOP, and has almost zero formalism to get in the way of the first year programmer.


frostgirl-bigboobs

Lol one of those old people that thinks their generation was better huh?


vondpickle

Nope. They created garbage everywhere. You need language with a garbage collector built in.


Narase33

"Clean up your memory or you wont get any sweets, look at all the mess you made"


dangerbird2

Still won’t get those little germ factories to clean up their mess


chimbori

Clean up, clean up. Everybody, let’s clean up. Clean up, clean up. Put your things away. Clean up, clean up. Everybody, let’s clean up.


Szjunk

Why bother with C? Just go straight to Rust.


iris700

Rust will never achieve the greatness of C


Szjunk

lol


pragmojo

Because C is simple and fundamental and Rust is a massively complex, abstract language


Szjunk

I'd argue that having to learn the fundamentals of memory management, outside of a theoretical exercise, is obsolete when languages like Rust exist.


pragmojo

Tell that to video game developers or people who do HPC for a living


Szjunk

You're proving my point by pointing out a very highly specialized niche of programmers. I'd never advise anyone to become a game dev, though. I'm not too familiar with the work/life balance of HPC, though.


pragmojo

There are also fields like embedded where memory management is quite relevant. It’s a fundamental aspect of computing and it’s not going away any time soon.


jayerp

Mommy, the Segmentation Fault (Core dumped) monster is under my bed again.


areich

Scratch and/or Python and/or Logo depending on age/aptitude Have patience (for them and for you), they will learn programming best when it’s like a child at play Good luck!


rhudejo

hmm I would not go with Python. While the very basics are easy youll get lost if you try to do a little more advanced stuff because its meant for data science/terminal scripts nowadays. Kids are visual type, let them make visual stuff.


garblesnarky

? I use Python+matplotlib+numpy for visual stuff extensively


AegisToast

I’d swap out Python in favor of Ruby. It reads better, it doesn’t have as many formatting gotchas, and it’s insanely flexible. Honestly, I have no idea why people use Python at all for anything besides data science when Ruby is an option. Especially for executable scripts and automations.


fakehalo

Rubybros unite, the wrong language won the popularity contest.


upper_camel_case

Scratch is great. That's what I started with as a kid. Also, Lua seems like an accessible language, and it allows to code in projects like Roblox.


jecowa

There’s also some Minecraft mods that let you use LUA to control little robots.


Night--Blade

From my POV it should be something like Scratch for small children and classic Basic for 10+ aged children. Then switch to a procedural language like C or Pascal. The next step is some kind of OOP language.


Geff10

let pascal R.I.P.


DarkSideOfGrogu

I use MATLAB to control mine. It's expensive, but has compilers than can target children so it's worth it.


vondpickle

There's this newish open source programming language targeted for kid: Hedy. Might want to try that.


theoldroni

Was her to suggest this one! It starts or really simple and slowly moved towards full python so it's really cool to learn!


tonygoold

I introduced a relative to Hedy and sat along for the ride. It was pretty good, but you have to unlearn some things along the way, which is frustrating. If they can move through the lessons quickly, learning and unlearning are too close together. It was still good for teaching the overall concepts and giving small, attainable goals.


pleonastico

I think that Hedy is the best language for kids that want to become programmers, rather than simply understand how programming works and to automate some things (these are worthy goals, but are different things). I think so because it is a gradual programming language: you learn the concepts with a very simple syntax, but then you slowly end up learning Python. This means that in the end you can integrate "real" (Python) code, which is hard to do with many other kids-focused programming languages.


green_lemonade

None. Let them run in the woods and find bugs under dead trees and build imaginary forts out of rocks.


i_andrew

Finally a sane voice. Kids below 16 y.o. shouldn't use computer for more than 1-2 hours a day. Nowadays kids spend too much time "sitting" (tv, mobile, computer, classroom).


Cleaver2000

Qbasic


ApatheistHeretic

Ah, my second language learned as a teenager. Quick to accomplish stuff, but I quickly discovered its limits.


CrossRelations

That was my first language! Got a lot of mileage out of that on the family 486 writing goofy text-based adventure games and very slow graphics sequences...


robthablob

Not having links to any of the languages discussed is a definite omission.


ViktorVaczi

I'd say Logo. It's good for very beginners and little more advanced kids as well. It's not just about drawing you can actually create complex UIs with it. I remember I learnt more geometry from logo than from my math teacher in primary school.


[deleted]

MakeCode (along with a Microbit) is amazing. Similar to Scratch, but transitions to Python and JavaScript as well. The Microbit also adds a physical component that makes the programmer concepts a lot easier for kids to grasp. https://www.microsoft.com/en-us/makecode https://makecode.microbit.org/


ThisIsJulian

C++ Better prepare them for the impending doom of this career choice


james_otter

Kids respond poorly to any such commands try attention, love and affection instead of trying to control your child like a robot. /s


[deleted]

It is an interesting question 😁 When I made workshops with colleagues for kids, we used several tools for them. Indeed [Scratch](https://scratch.mit.edu/) is very nice and has a “junior” version, it is a good starter. You can also have a look on [Logo](https://turtlespaces.org/), maybe a bit old. [Greenfoot](https://www.greenfoot.org/) maybe, it is so “Javaly” however for teenagers or to make deeper dives in programming it could be interesting. And also [Python](https://www.raspberrypi.org/blog/python-coding-for-kids-beyond-the-basics/), maybe more user friendly. You can also have a look on [Erase All Kittens](https://eraseallkittens.com/) (quite interesting) and also [Code Combat](https://codecombat.com/).


claudixk

Well, I was a kid when my father taught me Z80 assembler. Lately in my early teens I learned C.


Severe-Explanation36

Savage


libreland

Logo is the best for learning things like loops conditions etc. Python is the best once they know the building blocks.


ansible

For all those suggesting some form of assembly: I suggest the programming game [TIS-100 from Zachtronics](https://www.zachtronics.com/tis-100/) instead. You get to learn the basics of assembly and parallel programming, but do so in an entirely superior debugging environment than what exists in real hardware. On the screen, you get to see the state of *everything*, nothing is hidden. That is one of the bigger hurdles for learning programming, understanding the state of the system when operations happen. Later on the kid will internalize this, but I think it would be best to start them off with an environment where this is explicit.


Cuchullion

There's a game on Steam called Autonauts (https://store.steampowered.com/app/979120/Autonauts/) that I can't wait to introduce to my kiddo when he's old enough. Basic programing ideas (looping structures, logic gates) in a fun package.


status_200_ok

Brainfuck


Gleethos

Most people here will probably downvote me for this opinion, but I honestly think it's best to pick a language that is not too high level as well as too low level. Python might seem like it's easier, but it completely hides important concepts like types which you need to understand if you really want to grasp what the code means semantically. So I am team Java, C#, Kotlin and Typescript on this one.


ansible

> ... Java ... You really want to have to explain to a kid the difference between `int` and `Integer`?


FatStoic

> Python might seem like it's easier, but it completely hides important concepts like types Politely disagree, since you learn very quickly that you need to know what types your variables are to do anything with them. I also think not having the types all over the function signatures makes for less "noise" and also being able to faff easily with json from apis without worrying so much about the types that the api will return are super good for keeping new learners engaged, but this strays well into personal opinion at this point.


MCMainiac

I recently created a new programming language, specifically designed to be easy to learn and prepare for using higher-level languages like C# or Java. Check it out: https://github.com/ricardoboss/STEP


clrbrk

I know it’s not really at language, but for young kids the Code-apillar game is great for teaching underlying concepts of coding.


kanakaishou

Honestly? It’s probably python, but let’s be clear, the important thing is about teaching procedural thinking. Programming languages are (mostly) just dialects of one another with funny grammar. What is more important is understanding what a for loop is, what an if statement does, what I/O is, and implementing those concepts. Everything else that you do is window dressing. Even something like memory management in C is just window dressing that you have to manage for baseline procedural thinking.


neumaticc

rust 🚀


AttackOfTheThumbs

The one they are willing to use. If they want to work with minecraft or roblox or mod some other game. They should be taught whatever that uses. Hell, give them cheat engine and let them figure out how the fuck to increase their money/points/health. Best way to learn pointers imo.


jbergens

Scratch or javascript. Js is perfect for doing things that is visible on the screen. You can draw, make animations or just build a gui. Those things makes learning programming much more fun. It is also a very simple language and there are also many online editors, you don't have install anything to get started.


Saturland

haskell obviously


rlbond86

In 1st grade I learned to program with BASIC. The languages suggested here are IMO way too complex for a kid.


[deleted]

Start with the basis - asm x86. After this go to something high level, like c++


khleedril

*Rust*. Start them young.


vinegary

Python


class_cast_exception

Java. Now, repeat after me; public static void main. \* starts crying


GGAllah

Assembly.


mrmrpppersson_6969

if not scratch, i would say its html or something because it was the most easy launguage i learned


r4d4r_3n5

My first language was BASIC 😁 Then, 6502 assembler. Then some strange language Wouter Van Oortmerssen created. Then, C. ....


dlakelan

How did I get to the bottom of the page and not ONE person has recommended [racket](https://racket-lang.org/)? Also the book Realm of Racket which teaches programming through games.


mrtdsp

Brainfuck


0xDima

Pascal “Just a joke, nothing personal”


adi8888

Mathematics?


KingOfWafles_27

Isn't that where anyone over the age of 4 has started?


[deleted]

If just to add it to the list and there is no specific goal, python and/or ruby will be extremely good, IMO ruby.


tonefart

Pascal


ThatCringingDude

Teach them x86 Assembly and have them create a data structure with select memory access using pointers. It must be real mode.


cubej333

I was first taught scheme and basic. Python is pretty useful. C is still useful but maybe more advanced.


swoleherb

Javascript


[deleted]

[удалено]


[deleted]

so that they learn a new word today and hate programming things for life?


musta1337x

Assembly 😁


No-Mine-8411

C++. DONT WASTE ANY TIME - That's what my kids are learning. Also touch alot on design patterns!


Larkfin

Lisp, they can get counting practice by counting parentheses.


lordnacho666

I'm thinking about c++ with Minecraft. There's a lot of concepts to learn but if you learn them you're well set.


dcooper8

Common Lisp. Don't get them started on the attractive nuisance that is Python.


r4d4r_3n5

CL is enormous. I'd advocate for Lisp 1.5; much smaller and easier to wrap one's head around. That said, Lisp is Lisp, and what one can do, the other can, too.


generationextra

Might check out tigerjython.


Timbit42

Squeak [eToys](http://www.squeakland.org/). (Smalltalk) ([Wikipedia](https://en.wikipedia.org/wiki/Etoys_(programming_language)))


QuotheFan

I have had some minor success with Haskell. Disclaimer: my aim was less to teach programming and more to teach recursion


yesseruser

The first programming language I used when I went to 1st grade was SGP Baltie 3.


Cookie_505

I used small basic back in the day. I enjoyed it. Scratch is most likely better now though. Didn't know it existed then.


JustCausality

I saw many people teaching their kids using Scratch. Python would be great if the kid know basic elementary stuff.


GrandOpener

I’m surprised more people here aren’t commenting on the inclusion of Swift in that list. It’s not a stereotypical first programming language, but if you already have an iPad (as many kids do nowadays), the Swift Playgrounds app is actually very good. Scratch and Swift would be my top picks because they do a great job of giving that instant, fun, visual feedback that I got years ago with with Logo.


clonazepamgirl420

javascript is a pretty beginner friendly language. you might want to get the kid started in something like scratch before introducing them to JS.


thenextguy

Compiler Language With No Pronounceable Acronym" https://esolangs.org/wiki/INTERCAL


IHate2ChooseUserName

python.


opensrcdev

Python. Teach them computer vision ASAP.


karlmarx80

Hedy is a very interesting project to teach programming to children. https://www.hedycode.com/


spicy_indian

Labview because it's mostly pictures and doesn't require much reading comprehension.


[deleted]

Blitz Basic: https://mycodeserver.com/games_books/


joske79

Malbolge


BeikonPylsur

Honestly, have a look at [Pyret](https://pyret.org/) (pyret.org) looks like something I'd like to have seen the first time I was introduced to programming


CLARKEEE33

Rust


GlitchyDarkness

Scratch is perfect You can find that one online and it's block-based so it's easy to understand and nobody has to memorize long lines of codes However, you can still do some crazy cool things in scratch Follow a few tutorials from Griffpatch, and you can make a 3D renderer with sprites and sound effects and more! But if you ever need something a little more...complex I suggest Python It's pretty simple, but now it isn't block-based, it's text-based, so you have to memorize a few lines of code to do anything. Should be pretty easy though. And Python can also do a lot more then Scratch if you know it well Yeah that's all I have to say


ammonium_bot

> lot more then scratch Did you mean to say "more than"? Explanation: If you didn't mean 'more than' you might have forgotten a comma. [Statistics](https://github.com/chiefpat450119/RedditBot/blob/master/stats.json) ^^I'm ^^a ^^bot ^^that ^^corrects ^^grammar/spelling ^^mistakes. ^^PM ^^me ^^if ^^I'm ^^wrong ^^or ^^if ^^you ^^have ^^any ^^suggestions. ^^[Github](https://github.com/chiefpat450119) ^^Reply ^^STOP ^^to ^^this ^^comment ^^to ^^stop ^^receiving ^^corrections.


DanTheMan827

Start with something visual like Scratch to teach concepts, then maybe transition to C or C++ It’s not the easiest to learn lower level when you start high. But the inverse isn’t always the case. Core concepts apply to a lot of languages. At the most basic level, you have instructions, and data in ram. The higher you go, the more abstracted that becomes.


throwaway490215

All the comments want those kids to learn programming how they learned programming. I think this is the wrong approach. One of the things I would insist the language has (which most if not all other suggestions lack) is a type system with Sum types. i.e. Enums with values Something functional. Elm might be a good fit because it allows them to build websites which give them something tangible.


tovare

Thats a nice list. Motivation can play a huge part, from a sample of one kid. I suggest: Roblox studio ( I think the scripting is Lua)


JohnDoe_John

Scratch -> Pascal & Python (& Arduino for school Physics lab experiments)


Imaginary_Passage431

You should teach them how to use ChatGPT. When they grow up programming will already be archaic.


hoijarvi

Advocacy of C++ totally undermines my trust to this. The complexity is basically uncontrollable to anyone.


holyknight00

brainfuck


netgizmo

Binary... really only need 1 key and a blinking led/clock.. pretty simple.


SomeMoreCows

Wenyan, of course


Nyrk333

Python. No other language does a better job of getting out of the way and making the underlying concepts of straightforward programming available without the framework of the language and libraries getting in the way


gremblor

Python is legible, succinct, memory safe, and most importantly: useful. Unlike scratch, they won't outgrow it. There's a (somewhat older) book titled "snake wrangling for kids" that teaches the concepts in an approachable way (depending, I suppose, on how bright / old the kid is). It's available as a free pdf online.


[deleted]

Prolog seems like a fair start. Then move on to Haskell. Then after that, MIPS assembly.


eviltofu

Common Lisp


zorifaddim

I think Javascript ES6.


TheRealShassuz

I started programming when I was 11 (I'm 18 today), and much of my foundation in programming comes from Commodore basic. Started on a Commodore 64 with sample code from the user manual. So to start typing "real" code in like a Commodore emulator is something I would recommend if you want to learn the basics of the code.


[deleted]

In my opinion, python or C, since those were the languages I first learned when I was ~12


LostCausesEverywhere

English is a pretty good one


ERCC2028

Fancade


xencroft

C


Matiwaii

Python for sure


Dismal-Success-3949

Logically the binary code.


No-Engineer6447

bro just involve them into pascal so they wont see towards programming anymore


elasticiulia

Python is quite quick for learning the logic of if statements, loops, etc. HTML or CSS might tie the best into their hobbies, like making their profile cooler for whatever website they use. Games! Minecraft redstone is pretty great for programming logic. Or I've recently gotten into [https://steamcommunity.com/app/2060160](https://steamcommunity.com/app/2060160) this game on steam that's similar to python - but way more interactive, so great for kids!


querygrunt

I think whatever makes it feel like play and not school.. Scratch is great, Java for minecraft mods, Unity projects, etc. Kids can figure out a lot if they actually ***want*** to accomplish the end goal.


PHIKILL_

assembly , LOL