this post was submitted on 14 Feb 2024
58 points (100.0% liked)

chapotraphouse

13198 readers
375 users here now

Banned? DM Wmill to appeal.

No anti-nautilism posts. See: Eco-fascism Primer

Vaush posts go in the_dunk_tank

founded 3 years ago
MODERATORS
 

I really wish programming tutorials for absolute beginners were exactly like that. Like please program my dumb ass to learn programming.

Ideally a tutorial would Just assume I know nothing at all. In fact, assume I'm some medieval serf from 1320, motherfucker. Assume I've never heard of a computer before, never mind used one. Assume I've lost two dozen children to the plague, scurvy, smallpox, and conscription into wars with neighboring fiefdoms. Assume I'm currently imprisoned in the oubliette for hiding grain under my floorboards. Assume I speak in such a thick accent from bumfuck nowhere that it is entirely unintelligible to both contemporary nobility and modern English speakers alike. Assume I'm illiterate. Assume I've never washed my penis before. Assume I've never wiped my ass.

I'm talking about a tutorial that involves a thorough description of each and every click of the mouse. Rigorously define every single word that has programming relevance. Leave no stone unturned, if you're even slightly vague about any step I guarantee you I will fuck it up! It'd be sick as hell if such a lesson plan existed for every common programming language

top 21 comments
sorted by: hot top controversial new old
[–] [email protected] 24 points 9 months ago* (last edited 9 months ago) (1 children)

I'm talking about a tutorial that involves a thorough description of each and every click of the mouse.

The thing about that sandwich programming introduction is that there is no limit to how detailed the instructions are. You can say "open the jar of peanut butter" and your partner doesn't know how to do it. Maybe they don't know how to execute "unscrew the lid" or even "grasp the lid". The level of detail of the instruction set is arbitrary. The goal is to introduce students to the idea of functions: there are some things the computer already knows how to do, and you can put them together into larger routines.

I worked at a helpdesk for a bit. The reason tutorials don't give you "click at pixel 300, 627" is because you need to understand computers as tools that respond to input according to sensible rules. They are not magic invocations; there are many paths to the same outcome. Say I want you to open a program. I can say "click that icon on the desktop", but I'm just guessing at what level of instructions you understand. For instance, I didn't specify to double-click, so a really clueless user might single-click and ask "now what?" and be confused when I follow up assuming they opened the program. Normal users get annoyed with tedious detail; maybe they normally open programs without using the mouse at all. If I lead by saying the actual thing I want you to do, in this case "open the program", you can ask for more detail if you don't know what I mean.

Since it's got to be appropriate for many people, tutorials can't perfectly guess your level of knowledge. Since they are finite length, they can't fully define this infinite chain of meanings. For instance, if I ask you to create test.js, you need to know what a file is, what an extension is, what a text editor is, which one you're using, how to open it, how to save a file, how to use a menu bar, on and on and on. Since the tutorial can't ask you what you know and respond on the fly, almost everyone is going to have to look some stuff up themselves. At the top end, there are often no tutorials! We try to write docs and READMEs, but that competes with development time - sometimes you're a new employee, you get dumped into a poorly documented codebase, the last workers quit, and you have to figure it out yourself.

The goal is not to turn you into a factory automaton, moving the mouse to (300,627) and not knowing what to do if there's an unexpected popup. Goal is to get you away from rote repetition and towards understanding what you're doing. If you must, a thinking machine. Practically, you need to plop the serf down in front of MSPaint until they learn to use a computer. Then they can learn programming.

[–] [email protected] 2 points 9 months ago

Since the tutorial can't ask you what you know and respond on the fly,

someone is working on that

[–] [email protected] 18 points 9 months ago (1 children)

One thing that irks me is when like hobby YouTubers gloss over the programming. They'll spend ten minutes showing you every solder joint and then go "then I programmed it" and show 5 seconds of them typing.

[–] [email protected] 4 points 9 months ago (1 children)

It is hard to make the process of programming entertaining to a wide audience because a lot of programming occurs in the mind. While some people are interested, many aren't, and youtubers prioritise the retention graph.

[–] [email protected] 1 points 9 months ago* (last edited 9 months ago)

TodePond is the only YouTuber I can think of that does this. His videos were initially about the custom programming language he made for his 3D simulation game, and slowly evolve from being in-depth tutorials on how to use it to being programming fever dreams.

[–] [email protected] 13 points 9 months ago

One of the problems with this is that the setting up of the programming environment is different for different computers and operating systems, and becomes outdated with time. Though I'm pretty sure old school manuals for like 80s computers (and BASIC was usually included in that) used to be kinda like that.

Command line interfaces have an advantage there, they don't change as much as mouse interfaces and instructions can be written down rather more easily than mousing instructions. I'm pretty sure you find a C programming tutorials telling you to run

gcc -o foo foo.c && ./foo

from decades ago and that would still work fine on a modern Linux.

[–] [email protected] 8 points 9 months ago* (last edited 9 months ago)

Assume I'm illiterate. Assume I've never washed my penis before. Assume I've never wiped my ass.

They do make programming languages and tutorials for people like this. It’s called Scratch (developed by MIT). https://scratch.mit.edu/

[–] [email protected] 8 points 9 months ago

I kinda wish people would start with what you need.

Lots of tutorials start with an obvious menu location, and I just can't find it. Months later I'll find out you need a specific add on or version. Off the top of my head (not vocational) is "Send air volunteers" in HoI4. It took quite a while to find out you needed one particular DLC, the button was in the logical place (as much as anything is in paradox games). Idk why no one in all but one help thread thought not to mention it.

This gets worse with industrial software.

[–] [email protected] 7 points 9 months ago

I'm gonna say the forbidden Hexbear phrase and say - Actually AI (eg ChatGPT) is really helpful for learning exercises like this. Maybe because it was trained on a bunch of techbro stuff, I don't know.

Open ChatGPT, say you want a very simple tutorial about whatever coding language. If at any point it suggests something you don't understand, or something went wrong, tell it and it'll usually get there. As a professional coder, it is a genuinely helpful resource because I treat it just like a slightly more advanced search engine.

Maybe don't use those words specifically though unless you really want to be taught like a medieval serf

[–] [email protected] 6 points 9 months ago

I wish it was like this too, or at least, had been about a decade ago when I tried to learn. I do/did not have the brain for it, and I wonder how much different my life would be if I could have gotten hired doing coding stuff instead of people facing roles.

[–] [email protected] 6 points 9 months ago* (last edited 9 months ago)

I remember when I first started out codeacademy was pretty good b/c it did everything in the browser so u didn't have to deal with anything but the actual coding.

https://www.codecademy.com/catalog/language/python

that was like 10 years ago tho so idk if it's been enshittified or if I'm remembering something else.

Anyways death to bazingas, death to computers.

[–] [email protected] 6 points 9 months ago

Yeah, when I got my degree, the coding aspect of it became much easier as time went on. The math and shit gets more complex, and whatnot, but after getting some kind of base of understanding, it was easier.

Now I've been doing it professionally for years and can consistently Google how to instantiate arrays in a variety of languages with success.

[–] [email protected] 6 points 9 months ago

i would not describe myself as a coder, but people i work with would. because i can, if needed, write simple code and develop custom / responsive interfaces and web-based decision making tools. a lot of the tools i use will confront me with the need to put together some relatively complex conditional statement or query, or to design a function and parse some data and make it readable to some tool.

i took a comp sci class at in the 90s and the first unit was Karel/Karel the Robot. i remember thinking it was dumb and how i wanted to be like coding phreak shyte and cracking the warez like tha riddler, but i'm glad that was the foundation now because languages seem to come and go, and be application specific anyway. i had to learn C when i was 19 and let me tell you how i never used it again. anyway, so it was helpful to learn a programming language that was designed to be learned, to edify and draw the learner in to programming conceptually with functions, loops, conditionals, etc.

[–] [email protected] 5 points 9 months ago (2 children)

our example was folding a paper airplane, but that wasn't in the intro to programming course, where we just went right in with printing in the console, then arithmetic operators and variables, then loops, sets, recursion, errors handling, CSVs, statistics and graphics.

I later had to take an ~~indoctrination~~ introduction to $MAJOR which had an intro to programming module sandwiched between a few other rudimentary modules that were insulting to require people to spend weeks of time and thousands of dollars practicing (Especially since each module is just retaught from the beginning and at greater depth in dedicated classes later). This was where we spent 15 minutes on the paper airplane exercise.

anyway, here's the tutorial you asked for; https://youtu.be/mZWsyUKwTbg?list=TLPQMTQwMjIwMjSnpNj7zCmEig

[–] [email protected] 1 points 9 months ago

I found a YouTube link in your comment. Here are links to the same video on alternative frontends that protect your privacy:

[–] [email protected] 1 points 9 months ago

this video is incredibly funny!

[–] [email protected] 5 points 9 months ago

Maybe help me understand this post?

There are plenty of programming textbooks that are 1000+ pages long that go through exactly the exhaustive tutorials you’re looking for, from the simplest concepts to the advanced tricks. I know this because I am not a programmer by profession and I had to learn from scratch to perform certain tasks for my work.

However, I would not recommend this approach at all. Trying to teach/learn everything is the fastest way to make a beginner lose interest in a subject. You might think this is what you need, but you will quickly find yourself getting exhausted and having to muster the will power to endure through each and every section, and in the end you either give up, or you start skipping sections, which is the point of why tutorials don’t follow this approach.

[–] [email protected] 3 points 9 months ago (1 children)

Maybe it isn't for you. I've never been able to get into it myself. I like IT, networking, security and Linux. I'm not dumb, but I'm just not suited to coding. I wish I was-- it would be really useful for me. ChatGPT is good for a lot.

[–] [email protected] 3 points 9 months ago (1 children)
[–] [email protected] 2 points 9 months ago

Comforting to know there's at least two of us!

[–] [email protected] 2 points 9 months ago

please program my dumb ass to learn programming.

Not sure if you're interested in the language but Heartbeast's Godot Tutorials took me from knowing nothing about programming to being able to figure things out on my own, maybe something like that could have the desired effect.