A Tricycle of the Mind
marcusb.org
marcusb.org
<canvas id="myCanvas" width="500" height="300"></canvas>
<script>
const ctx = myCanvas.getContext( "2d" );
// Draw the line
ctx.beginPath();
ctx.moveTo( 50, 50 ); // Starting point
ctx.lineTo( 200, 150 ); // Ending point
ctx.stroke();
document.write( "Hello World" );
</script>
JavaScript is quite forgiving. No need for the HTML preambles. "document.getElementById" is a nicety that can also be ignored.Nonetheless, I (born 1947) too miss the simplicity of BASIC, the plethora of magazines for beginners, the many shelves of "for dummies books". And, especially, that we were all beginners.
These days, full stack developers and AI are priestly classes that that, currently, do not facilitate the investigation by newbs of the black boxes they create.
Nonetheless, I look forward to AI being able to read aloud Python, Rust, Cobal, Euler notation, Greek or whatever in ways that I may understand.
Huh, I did not know that. This makes it a lot nicer for micro-projects.
Of course, I am but a single stack developer, so your experience may vary
I was doom-and-gloomy about how programming is more complicated now, but then friends pointed out a bunch of things to me:
* Arduinos & ESP32s (<$5): program in a simple app, flash over USB, & you're programming bare metal. ESP32s have Wi-Fi & Bluetooth
* Raspberry Pi ($30-$80): program on a real, self-contained Linux OS. If you trash it, just reset the SD card. GPIO, Bluetooth, Wi-Fi.
* Web (free): like theoa points out, you can make apps that work on any modern computer/phone in a single file with no compilation & instant output (and share it on GitHub Pages).
* Go & Rust (free): 2 easy-to-build-and-install languages, & Rust feels "C enough" to sate anyone who wants to learn "low-level" programming.
* Pico8 ($15): fake 8-bit console w/ dev tools. [Celeste](https://maddymakesgamesinc.itch.io/celesteclassic) was first written for Pico8.
* Unreal Engine/[Unreal Editor for Fortnite](https://www.unrealengine.com/en-US/uses/uefn-unreal-editor-f... (free): make games using the same engines everyone else uses
* Roblox? (free???): make & share games with your friends
IMO, the hardest things in 2024 (hah) are native app development & "modern" web development/anything that includes a login.
I don't have enough context for your points about learning without adult supervision, but I know that all of these options are very well documented; I bet No Starch has some good books for each?
Thoughts?
- To me it seems kids/beginners these days are less easily impressed both on the producing and consuming side. So for them to implement something that provides a wow factor, there's needed much more than a mandelbroth set or a simple 2d platform game.
- There's just too much choice. Back in the day, BASIC was an obvious first choice, now to get started, you have at least the ones you mentioned and much more.
- It's too easy to get distracted. Look something up on the internet... 'wow more cool stuff' rabbit holes. Or addictive memes, short videos or songs lead to wasting time in stead of making stuff.
However assuming an intelligent youngster familiar with English I don't think such a hypothetical person would assume it works like English because some things might remind them of English - given that there is quite a bit that is obviously different than English.
It would take a very strange intelligence to look at their first programming language and say, huh this thing that makes a computer draw a line has some words like English uses but it is obviously not English, I will try to modify it like English. After all - Python is not Cobol.
I suppose someone with a desire to learn might do so quicker with BASIC, but I am only supposing that seeing the Python code might make them think I CAN LEARN - and sometimes the idea I can learn is the parent of the desire to learn.
I also wasn’t thinking about this from the perspective of the tooling discouraging someone from wanting to learn - that just wasn’t a problem my friends and I had, but I can see how the modern tools could be more likely to inspire someone on the fence to continue.
Anyway, thanks for the comment.
That same smart 8yo would probably make at least one typo trying to type in the Python program. And they would need to read the error message and figure out where in the file they made a mistake.
I'm considering having my son try this Python MOOC: https://programming-24.mooc.fi/ The exercises can be completed inline. I wouldn't just hand him a python book and a computer. Whereas I could totally imagine him learning something with the Acorn Electron and book I had at 10yo or 11yo.
Now, once out of the box and having responded, willy nilly, to numerous dubious questions, you are presented with a screen full of all sorts of strange things, and nothing happens when you use the keyboard.
Compare and contrast with:
>That's not true. Python has a builtin turtle module which emulates LOGO. https://docs.python.org/3/library/turtle.html
More knowledge about computer internals can't hurt, I guess, but maybe it just might become unimportant in future, and there could be opportunity costs about learning something else.
It feels like the Apple IIe and GW-BASIC systems that I cut my teeth on, but with more features (Simple windowing TUI, good editor, extensive help system, many examples) and high performance (compiled code running on modern x86 hardware).
I don't know if I'd give to a kid as their only computer (For better or worse, there's no networking, and I wish it had high res graphics modes and a little more polish), but it's a really cool environment for a curious young mind to explore.