this post was submitted on 26 Aug 2025
28 points (91.2% liked)

NotAwfulTech

492 readers
8 users here now

a community for posting cool tech news you don’t want to sneer at

non-awfulness of tech is not required or else we wouldn’t have any posts

founded 2 years ago
MODERATORS
 

Another excellent piece from Iris Meredith - strongly recommend reading if you want an idea of how to un-fuck software as a field.

you are viewing a single comment's thread
view the rest of the comments
[–] smiletolerantly@awful.systems 5 points 5 days ago (1 children)

What language would you suggest?

[–] swlabr@awful.systems 3 points 5 days ago (3 children)

Great question that I don’t have a good answer to. My bit about python was more just a throwaway joke that was also supposed to indicate that my own opinions aren’t sufficient to write the linked article.

Here are some wrong answers, but with reasons for and none against:

  • Assembly: really gets you to understand that you are contending with a computer chip, and that anything interesting that you want to do requires abstraction.
  • C: similar to the above, but also gets you to understand some of the fundamental aspects of programming languages, mostly memory.
  • Perl: if you’re willing to teach python, why not Perl? Less readable, more magic, fun language to play golf with, so tutorial exercises could be fun.

By coincidence, these are the first three languages that I encountered as a CS student with no preexisting knowledge of programming (not in this order).

Anyway, for something approaching a real suggestion: Dart/Flutter could be an interesting choice, for some of the reasons given in the article for HTML. I haven’t given this much thought so this might still be a bad answer. Also this is the language I’m using at work right now.

[–] BlueMonday1984@awful.systems 2 points 13 hours ago* (last edited 13 hours ago) (1 children)

Assembly: really gets you to understand that you are contending with a computer chip, and that anything interesting that you want to do requires abstraction.

This is only tangential to your point, but I did remember (now-defunct) game studio Zachtronics put out a few games heavily featuring assembly: TIS-100, which directly revolves around programming the titular computer in its own version of assembly, and SHENZHEN I/O, which centers around building embedded systems and programming the microcontrollers contained within.

The company's catalogue is completely free for schools under the Zachademics program, so you could use them to show how assembly programming's like if you were running a school.

[–] froztbyte@awful.systems 3 points 3 hours ago

frankly, it's really not a good idea to early-years kids assembly (double especially not fantasy assembly), if your goal is to encourage learning the field. this is why all the strong/popular pi-based educational distros and options focus on stuff like scratch, some light python (often paired with light pygame and turtle), and other low-entry-effort exploratory things like sonic-pi

many do come to explore programming topics in depth later (asm via zach games, other structural/dependency things via satisfactory/factorio, etc), and that's fine too

there is of course a longer-term balance to be struck with (and structural problems coming from) people not understanding the layers below them (cf. current nightmare of tottering piles of javascript and continually worsening app performance everywhere despite having literal supercomputers in our pockets), but "learn asm" is bad starter advice for the same reason that "you should know how to write in c" has been part of why we're in this fucking mess in the first place

[–] blakestacey@awful.systems 5 points 5 days ago (1 children)

I got my start with line-number BASIC, MS-DOS batch files and x86 assembly.

Oh, and once in college, I got really high and made a Visual Basic program that had no graphical user interface.

[–] lproven@awful.systems 2 points 3 days ago

a Visual Basic program that had no graphical user interface.

I approve of this sort of thing.

[–] smiletolerantly@awful.systems 3 points 5 days ago

Gotcha. It's still a fun question to think about though.

My uni switched from teaching their intro classes in Java to python the year before I started, and in defense of python, I have to say: it's so simple for small things, that it gets out of the way in the classroom. Sure, it's not great for big projects, but it is very easy to demonstrate concepts in a readable manner.

(That was the second program I enrolled in, btw. The first one, at another uni, they started with Haskell. No joke. And while I do appreciate Haskell and functional languages in general now, maybe in part due to this, it just got in the way of the concepts they were actually trying to teach.)

But in any case: uni isn't really there to teach you to code. That's something you are supposed to pick up on along the way, or on the job.