Programming thread

Wanted something to listen to in the car, and stumbled on an absolute gem of cringe material. Even driving, I didn't make it past 4 minutes or so. Just give it 40 seconds or so (or skip to 30 seconds in) for the spectacle to begin.
The only way to get good ideas is to have bad ideas
If this is true, he's in for a real "Eureka!" moment sometime after his talk concludes.
 
I'm unsure if this is the right thread for this question but how should someone young go about learning about the inner workings of computers? One of my friends (math type, in his 20s) has been enthusiastically asking me this question and I'm not sure how to respond. He has rudimentary knowledge of C, C++ and the terminal but I find myself having to explain things that I find for granted (for example, that clicking on an executable's icon in a file browser and writing its' name in the command line both more or less do the same thing, or that when people upload .exes on the web first they compile them and then upload the resulting file). He also told me he was going to grind LeetCode because "it is used in interviews" as if it would make him more proficient in understanding what's in a computer. I think he's conflating programming (specifically algorithms, given his background) and computer literacy, even if the two usually come hand in hand. I learned both of these as a hobby through fucking around and finding out for over a decade (I had weak hardware and too much free time), but I don't think the same will work for him. He has the mental baggage of only using phones and niggerware for most of his life. Also, ChatGPT keeps "poisoning" him so to speak and I'm unsure how to respond to that. Should I tell him to learn languages that will give him fast results (a la Python) and then go lower level from there? Should I tell him to switch to Linux Mint and bang his head against the proverbial GNU/Wall until it all suddenly makes sense? I'd like a second opinon.
 
I'm unsure if this is the right thread for this question but how should someone young go about learning about the inner workings of computers?

He has rudimentary knowledge of C, C++ and the terminal but I find myself having to explain things that I find for granted (for example, that clicking on an executable's icon in a file browser and writing its' name in the command line both more or less do the same thing, or that when people upload .exes on the web first they compile them and then upload the resulting file). He also told me he was going to grind LeetCode because "it is used in interviews" as if it would make him more proficient in understanding what's in a computer.
This basic computer literacy stuff is picked up through experience. Unless he can fuck around on the command line for days like we did, he won't make the basic connections/associations that make the examples you gave obvious to us. Nigga just needs to install baby's first linux on another partition or drive and dive in head-first.

As a side note: I have never done a single fucking LeetCode in my life. I know what I do as a result of practical, tangible experience and trial-and-error.
 
How "inner working" are we talking here?

Like at a certain level computers are electric circuits. Above that it's a collection of components. Above that it's an operating system and all the nuances thereof... and then above that it's various platforms, like web, and so on.

It seems like you're asking about the basic operations of an operating system? In which case, Linux?
 
Thank you both for responding so quickly.
This basic computer literacy stuff is picked up through experience. Unless he can fuck around on the command line for days like we did, he won't make the basic connections/associations that make the examples you gave obvious to us. Nigga just needs to install baby's first linux on another partition or drive and dive in head-first.
I see, I'll probably tell him to get a spare laptop (a second partition is probably too risky at this point) and to try to install Linux on it. I've been a bit hesitant to suggest Linux up until now because I'm unsure of how he perceives it. The only exposure he has to it must be from social media. Of course after some time fiddling around it will be clear that the Mean Scary *UNIX world is not so Mean and Scary after all, but for someone who has never asked himself how the websites he uses run it must seem like No Man's Land. I fear that he might get impatient, but if he's not cut out for the computing world, I guess there's no helping that.
As a side note: I have never done a single fucking LeetCode in my life. I know what I do as a result of practical, tangible experience and trial-and-error.
I agree. I've told him that if he wants to learn programming he should just think up ideas and try to implement them. Thing is, at this point they're too grandiose. He wants to make a GUI app in C++. I think it's too early to introduce widget toolkits or SDL to him, plus he relies heavily on AI, so my gut feeling is that even if I did talk to him about these, he'll just ask ChatGPT to make an app for him instead and look at that. I'll probably have to convince him about the importance of documentation at some point soon.
How "inner working" are we talking here?

Like at a certain level computers are electric circuits. Above that it's a collection of components. Above that it's an operating system and all the nuances thereof... and then above that it's various platforms, like web, and so on.

It seems like you're asking about the basic operations of an operating system? In which case, Linux?
He asks a lot of questions about many different subjects. Broad strokes about operating systems, web browsers, the internet, various (popular) programming languages. It seems to me he just wants to learn everything and anything he can about how computers work. He has made no inquiries about the electronics inside yet.
 
I'm unsure if this is the right thread for this question but how should someone young go about learning about the inner workings of computers?
I wanted to learn to program and use a good IRC client without paying for mIRC, so I dual-booted Linux. This was back in the early 00s when programming on Windows was either awful or expensive. Getting Linux to do what I wanted and work right meant I spent a lot of time perusing man pages or writing one-off scripts or talking to people on IRC about my problems to learn how the system worked and how I should fix it.

Then in college, I went all in on Linux for my personal laptop and developed an autistic competency in the system to the point where I even did Linux From Scratch in the search of the 'perfect' setup (this is the trap but it's a useful trap for teaching you things)

I don't think it's necessarily an age thing. I've known people in their late 20s/early 30s who went whole-hog into this stuff and came out just as knowledgeable. But it's like learning a language - you need to immerse yourself in the scene and the culture to really 'get it.'

I also don't think you can really force it. You have to have an innate desire to want to learn these things that spurs you on to dig deeper and deeper. If your only interest in computers is getting a jerb then you're probably NGMI.

As a side note: I have never done a single fucking LeetCode in my life. I know what I do as a result of practical, tangible experience and trial-and-error.
I've done leetcode but only insofar as to memorize the common problems because interviewers love to drop one on you with basically no time to organically solve it. If you don't have much of a background in CS, leetcode is decent for giving a reason to dig into algorithms and data structures concepts but the system exists more so shitters can justify their employment via rote memorization.

he wants to make a GUI app in C++. I think it's too early to introduce widget toolkits or SDL
Why? The worst that happens is that he grinds on too big a problem for a while and doesn't actually succeed but gains more experience in the subject area. Even failure can be a powerful teacher.

Is he the type of dude who can't stand not being immediately successful? Then he needs to learn how to fail now because fucking up and learning from your fuckups is part of being an engineer.
 
I see, I'll probably tell him to get a spare laptop (a second partition is probably too risky at this point) and to try to install Linux on it.
These days baby's first Linux for Windows users is just to enable WSL(Windows Subsystem for Linux) and pick a distribution from the Windows Store. Another option would be a Raspberry Pi if he has a monitor and keyboard and mouse. Neither require 'installation' but will quickly give him a command line and a bunch of dev tools.
 
These days baby's first Linux for Windows users is just to enable WSL(Windows Subsystem for Linux) and pick a distribution from the Windows Store. Another option would be a Raspberry Pi if he has a monitor and keyboard and mouse. Neither require 'installation' but will quickly give him a command line and a bunch of dev tools.
My issue with WSL is if your goal is to learn Linux then you really need to disconnect from Windows at least partially. Part of what makes Linux autists is being thrown in the deep-end on a machine that only runs Linux and having to figure out how to make things usable.
 
I'm unsure if this is the right thread for this question but how should someone young go about learning about the inner workings of computers? One of my friends (math type, in his 20s) has been enthusiastically asking me this question and I'm not sure how to respond. He has rudimentary knowledge of C, C++ and the terminal but I find myself having to explain things that I find for granted (for example, that clicking on an executable's icon in a file browser and writing its' name in the command line both more or less do the same thing, or that when people upload .exes on the web first they compile them and then upload the resulting file). He also told me he was going to grind LeetCode because "it is used in interviews" as if it would make him more proficient in understanding what's in a computer. I think he's conflating programming (specifically algorithms, given his background) and computer literacy, even if the two usually come hand in hand. I learned both of these as a hobby through fucking around and finding out for over a decade (I had weak hardware and too much free time), but I don't think the same will work for him. He has the mental baggage of only using phones and niggerware for most of his life. Also, ChatGPT keeps "poisoning" him so to speak and I'm unsure how to respond to that. Should I tell him to learn languages that will give him fast results (a la Python) and then go lower level from there? Should I tell him to switch to Linux Mint and bang his head against the proverbial GNU/Wall until it all suddenly makes sense? I'd like a second opinon.
Breadboard. Arduino. Simple as.
 
This might be the perfect example of a troon programming article.
Constant author masturbation and pop culture tangents peppered with weird emoticons.
I was waiting for him to get to the damn point for so long that I'd forgotten why I'd clicked on it.
...then I looked at the scrollbar and noticed how small it was.
"Hmm. Must be a lot of comments."
I began rapidly scrolling and noticed that it kept going. It never fucking stopped.
 
Breadboard. Arduino. Simple as.
Sorry, the correct answer is now "Raspberry Pi Pico"
But, yes, I'm of the opinion that everyone should understand limited systems as part of learning programming. I guess "Limited" does leave the Pico out with 2 cores and tons of RAM and Flash.
 
  • Like
Reactions: ADHD Mate
Should I tell him to learn languages that will give him fast results (a la Python) and then go lower level from there?
No if anything he should start with assembly and reverse engineering; This learning path will teach him basic shit like what an executable file actually is, how it's compiled and how it's made to exist in memory.
Should I tell him to switch to Linux Mint
Also no, get him started with VMs so he can go through the installation and basic usage of various (preferably CLI) operating systems and distros without having to pump the brakes on everything else he's doing. If he's been messing around with C++ for some time he's probably already indirectly used QEMU to some capacity for testing across platforms so being more aware of it would also be helpful.
 
Is using Chat GPT to help you learn to code based or cringe? Is this just a smart thing to do, or am I handicapping myself in some way by not doing all the research by myself?
 
Is using Chat GPT to help you learn to code based or cringe? Is this just a smart thing to do, or am I handicapping myself in some way by not doing all the research by myself?
ChatGPT now is just what Google was in the 90's. Use it to learn, don't use it to replace thinking for yourself. It's a great way to learn things if you treat it as a (fallible) teacher, and not some infallible preacher of programming truth.
 
Computer Insanity (ML) is basically a Pajeet Machine. You will get an answer, it might be right, or wrong.
If it's right it might be a really bad and embarassing way to do it, or it might be the best industry standard.

In my weird programming experience I have found that it really isn't able to solve the problems I've been desperate enough to ask it about. The answers I have gotten that happened to be correct were only barely so and would be hugely embarassing for me to put my name on anything it inspired.

I think these have always been useful as random noise generators since the GPT breakthrough in 2018.
It really can help with writers block or introduce novel concepts that might be related. Much like a search engine.

However you are the critical last step in checking that it is actually true.
 
LLMs are demons, it can predict with some accuracy, but doesn't "understand", and will screw you over if you get too trusting, not even maliciously.
If you consult with demons, at least double check if it isn't lying to you. It's worst if you ever ask it esoteric topics since it lacks the "training". It's fine for explaining programming syntax for example.
 
Is using Chat GPT to help you learn to code based or cringe? Is this just a smart thing to do, or am I handicapping myself in some way by not doing all the research by myself?
i use chatgpt as a more convenient google tbh. if i think it has a better way of formatting something or may be able to give me some sort of insight into a particular portion of a project. I used to just ask it to generate code and copy and paste but then id realise it would change things that worked just fine before. i'd ask why it did that and it'd just say nevermind and make something else entirely. I wouldnt trust it unless you know what your doing. have the documentation on hand so you can look up what its doing. if your using as an aid or tutor its a little different because its much better at explaining coding concepts than creating consistent code. but dont take my word for it. the best way to learn is to experiment with it and see what works for you.
 
Is using Chat GPT to help you learn to code based or cringe? Is this just a smart thing to do, or am I handicapping myself in some way by not doing all the research by myself?
Skip ML if you want to learn anything. You're starting from nothing; you are inevitably going to have to trust the LLM because you don't have any knowledge to fall back on to know if it's just lying to you, or worse, correct but giving very, very bad advice, and then you're fucked. It's already chopped your legs off while you're still trying to crawl.

Just program something, anything. Read the error messages and try to understand them, learn from your mistakes. If you want to learn you'll learn.
 
Back