this post was submitted on 24 Feb 2025
28 points (93.8% liked)

Ask Lemmy

28625 readers
2125 users here now

A Fediverse community for open-ended, thought provoking questions


Rules: (interactive)


1) Be nice and; have funDoxxing, trolling, sealioning, racism, and toxicity are not welcomed in AskLemmy. Remember what your mother said: if you can't say something nice, don't say anything at all. In addition, the site-wide Lemmy.world terms of service also apply here. Please familiarize yourself with them


2) All posts must end with a '?'This is sort of like Jeopardy. Please phrase all post titles in the form of a proper question ending with ?


3) No spamPlease do not flood the community with nonsense. Actual suspected spammers will be banned on site. No astroturfing.


4) NSFW is okay, within reasonJust remember to tag posts with either a content warning or a [NSFW] tag. Overtly sexual posts are not allowed, please direct them to either !asklemmyafterdark@lemmy.world or !asklemmynsfw@lemmynsfw.com. NSFW comments should be restricted to posts tagged [NSFW].


5) This is not a support community.
It is not a place for 'how do I?', type questions. If you have any questions regarding the site itself or would like to report a community, please direct them to Lemmy.world Support or email info@lemmy.world. For other questions check our partnered communities list, or use the search function.


6) No US Politics.
Please don't post about current US Politics. If you need to do this, try !politicaldiscussion@lemmy.world or !askusa@discuss.online


Reminder: The terms of service apply here too.

Partnered Communities:

Tech Support

No Stupid Questions

You Should Know

Reddit

Jokes

Ask Ouija


Logo design credit goes to: tubbadu


founded 2 years ago
MODERATORS
 

The kid's grandparents got him an Amazon Fire tablet and I loathe the thing. It teaches literally nothing about computing and the games they have for kids are barely even games, and are more focusing on advertising various IPs.

I'd like to get the kid started, as he learns to read, on something that will be more useful than detrimental, let that soft little brain soak up some actual computer science, literacy. I teach him about basic electrical circuits and how that translates to computing, if, and, or, xor, nor, etc. He's got some familiar with hex (colors) and the concept of binary (on/off).

But what to get for a first computer? I almost want to get him something Linux based and turn him loose. Is there anything like that, that would require him to learn some command prompt and basic computing skills?

Every time and try and Google it, I get a bunch of crap suggestions and ads.

you are viewing a single comment's thread
view the rest of the comments
[โ€“] CidVicious@sh.itjust.works 2 points 4 hours ago (1 children)

I did Logo back in the 80s on Apple ][s and I still remember it. Definitely recommended and I'm surprised that schools don't try to incorporate things like this more.

[โ€“] tal@lemmy.today 1 points 3 hours ago

So, I don't know exactly what's happened with instructional languages, but my guess is that they may be trying to use languages that have broader real-world applications, even if they're somewhat more-complicated. Logo is great in terms of having a low bar to letting you do something fun...but it also doesn't see a lot of real-world use. I've seen some programming games using Javascript, for example.

Not "first programming language" stuff, but on the subject of instructional languages...

Around the mid-late 1990s to early 2000s, it was common for a lot of computer science courses to be taught in C++, since it was a commonly-used "serious" applications language. If you took an intro computer science course, you'd have good odds of doing C++, maybe blending into Java towards the end of that period.

I remember eating dinner with a Stanford University computer science professor once, and he was talking about how he was much happier teaching intro students in Python. The problem was just that C++ has a lot of stuff that's designed to help programming languages produce performant code or scale up, but which added a huge amount of complexity as an instructional language. With C++, he was spending more time helping students learn the language than the concepts that he was aiming to teach.

Now, okay. C++ (especially C++ in 2025, as it used to be a considerably-simpler language) is a complicated programming language. A lot of that isn't stuff that the compiler will handle, either, and stuff that the programmer needs to know to avoid screwing up.

  • A lot of error-checking happens in type-checking using templates, and at least with the compilers I've used -- and maybe things have improved -- the errors are stupendously-unreadable, where you can get the compiler telling you that half-page-long templated type A is incompatible with half-page-long templated type B, and not trying to reduce the error to just show the differences.

  • C and C++ also expose some of the underlying bare metal, and effective debugging means knowing something about the underlying, in-memory representation. It really is a huge bar to overcome to "writing useful software".

  • C++ inherited C's preprocessor, so you're actually needing to learn a macro language (which has some odd quirks) as well, and understand that you're working with two languages.

  • C++ has gone through several "paradigms". Originally, it was "better C", then more-OO stuff, RAII-structured OO, what looks to me like some kind of stuff with implicit static typing akin to the ML family today. I kind of like C-style OO code using PIMPL. But point is, if you're trying to learn a language and documentation at various dates has pretty different ways of writing code, that's another pain to dig through.

You don't have to know (all) of that to get Hello World working, but it also shows up pretty quickly.

I wasn't sure that I entirely agreed with the guy, because I think that part of what a lot of people were doing in Python was writing incorrect software that there just wasn't a strong static type-checking system to catch. I mean, maybe he didn't care about that in terms of getting across his topics, but I do think that writing rigorously-correct code is a good habit to get into for most fields of software, though it certainly matters more for some than others.

Now, that's C++-versus-Python. My guess -- and I haven't looked recently -- is that neither is probably the "first language of choice" these days in schools. But while I don't know if I'd agree with the guy as to Python being a great option -- I think that Python makes a great language on Unix sitting halfway between shell scripts and C -- I think that his broader point holds, that there is a valid point that keeping the bar down to getting something up-and-running is truly valuable for learning.

I kind of wish that someone would take a major modern "real world" applications programming language, something like Go or Rust or something, and then make a stripped-down version to help introduce students to concepts, with the idea that they'd later transition to that "larger" language, but to try and get the barrier down as far as possible from the "sit someone who has no idea what they're doing" to the "can make interesting output" stage.

Like, what changes would it take to make it pretty easy for a six-year-old to be writing something that is either a subset of Rust or something that can mechanically be transformed into a subset of Rust? What do new learners find confusing? I mean, if you had to ruthlessly cut anything, across-the-board, what would come out?

And OP, sorry, I know that you're mostly looking for basic computer familiarity, and I'm kind of heading off specifically down programming language learning, but I do think that that's an interesting issue too.