Programming thread

I started my journey in programming by downloading a commodore 64 emulator and making programs in BASIC on that
I really enjoy retrocomputing as far as running old games and demos is concerned but doing mundane tasks is a lot less fun compared to what we have now. Did you just enter things right into the interpreter without an editor? How long were the programs you wrote?
 
  • Like
Reactions: ADHD Mate
I really enjoy retrocomputing as far as running old games and demos is concerned but doing mundane tasks is a lot less fun compared to what we have now. Did you just enter things right into the interpreter without an editor? How long were the programs you wrote?
Imma be real, I just used this three part series (I was a little kid back then), so I just copied what the guy wrote, then did my own modifications based on that (I was by then using cbm prg studio) and thats that tbh, then I was trying to find some C++ tutorial, found one, was trying to follow it, but I didn't know what a variable was, so I stopped, some time went by and I started learning python, entered a giant tutorial hell as I misunderstood what programming was (me want more type less think)
What got me out of tutorial hell and in general back into programming was tsoding, love this guy
 
  • Feels
Reactions: Belisarius Cawl
Imma be real, I just used this three part series (I was a little kid back then), so I just copied what the guy wrote, then did my own modifications based on that (I was by then using cbm prg studio) and thats that tbh
So at least there's an IDE you can use instead of having to be stuck with whatever will run directly on the target platform. (I remember using KingCON on emulated Amigas and, while better than the default shell, it was still sorely lacking even compared to bash with zero user customization.) Unfortunately I don't know wojakspeak and can't really evaluate your videos other than see what the BASIC appears to be doing.
 
Haskell and then x86. The only correct answer when this question is asked here.

Have fun
1743858893368.png

That was pretty much my own development path–going from not knowing anything about computers to being forced into Python by chance of being the guy burdened with programming tasks for a group project in first year undergrad, then discovering Haskell, and finally landing into C, and from there catching up on a bunch of classics like Scheme via SICP etc.

Also gonna take the opportunity to shill the Algebra-Driven Design book, it wasn't yet around when I was starting out with Haskell and I wish it was at the time. Great illustration of a well-reasoned approach to software design where programs almost automatically assemble themselves to given constraints (with an added bonus of fitting in nicely with advanced math courses if you care about that). For my money, it has the potential to be the SICP of the 21st century, if it only were more well-known.
 
I can't say I agree but let's say I did agree. Even then the other main competitor for baby's first language would be JavaScript and I submit that JS will corrupt your mind far more than Python in that capacity.
I did my first personally useful project in Ruby (aside from Delphi, but that was a long time ago). I'd say it's comparable to Python in how easy it is to learn, but at the time the libraries needed to do what I needed for web scraping and kept getting stuck on what I fed it, so I re-implemented it in Python at some point. 50/50 on whether it was actually the library's fault or PEBKAC. After so many years, I'm sure it's gotten better so you can always give it a try, @mag_fag. Grorious scripts, folded 1000 times, no significant whitespace.
 
  • Feels
Reactions: Belisarius Cawl
I can't say I agree but let's say I did agree. Even then the other main competitor for baby's first language would be JavaScript and I submit that JS will corrupt your mind far more than Python in that capacity.
There's a reason why I suggested Python over Javascript, even despite the syntactically significant whitespace.

Syntactically significant whitespace is a problem. Maybe we can disagree about how serious a problem it is, but at least to some extent it is.

The reason being, is that small differences in whitespace can be visually invisible. So '\t' and a sequence of ' 'es can be visually indistinguishable. Or even if two indentations are close, but not exact, it can be easy to gloss over it visually. IDEs or fancier text editors help you with this, but that means correspondingly, that the "user interface" of the language, so to speak, is shittier in contexts where all you have is more primitive text editors. And sure, it's easy to say "well use good tools", but still, it reduces the utility of the language in constrained situations.

I find myself occasionally hacking together quick fixes or printf debugging issues, while in docker containers or as root or in all kinds of constrained scenarios, and syntactically significant whitespace makes that artificially harder than it needs to be.
 
Youtube tried recommending him to me a few times, doesn't he use AI?
he doesn't, he doesn't even use an LSP. if anything he's the opposite of all those javascript youtubers that scream "DSA! DSA!" (which is exactly what stopped me from being interested in programming). Every day he just makes a small project in C, sometimes its a longer project requiring a few streams, sometimes it's a language other than C, but still something similar like D, C3 or Rust. I genuinely learned a lot by watching his streams.
He only touches webdev stuff only during april fools (most recently he tried svelte)
So at least there's an IDE you can use instead of having to be stuck with whatever will run directly on the target platform. (I remember using KingCON on emulated Amigas and, while better than the default shell, it was still sorely lacking even compared to bash with zero user customization.) Unfortunately I don't know wojakspeak and can't really evaluate your videos other than see what the BASIC appears to be doing.
Yeah, now I just recommend people CS50, it's pretty good, gets you interested in computing. Starts off with C to make you learn how computers work, then switches to Python to make you learn programming. The teacher (whoever he is, I forgot) is great as well, really fun to watch.
 
he doesn't, he doesn't even use an LSP. if anything he's the opposite of all those javascript youtubers that scream "DSA! DSA!" (which is exactly what stopped me from being interested in programming).
real programmers don't use the absolute crutch that is syntax highlighting
Yeah, now I just recommend people CS50, it's pretty good, gets you interested in computing. Starts off with C to make you learn how computers work, then switches to Python to make you learn programming. The teacher (whoever he is, I forgot) is great as well, really fun to watch.
C is unironically a somewhat ok teaching language because it isn't full of features. It's really nice for making smaller programs and experimenting, and there aren't that many layers of abstraction getting in the way. It's not the best at "programming in the large" so you need to shift over to another language to get a taste of things like namespaces and modules, which is useful even if you go back to C, since this kind of thing is actually present as informal guidelines in the C world. It's best to learn programming concepts in languages that use that concept natively.
 
Youtube tried recommending him to me a few times, doesn't he use AI?
I've seen him do the occasional prompt but it seems to be more to entertain the chat than anything, it's not like he needs the help. If I had to guess, I don't think that he would have a particularly high opinion of "vibe coding".

I'd say he's worth a look.
 
real programmers don't use the absolute crutch that is syntax highlighting
my nigga david knuth doesn't use syntax highlighting, except for like numbers iirc
C is unironically a somewhat ok teaching language because it isn't full of features. It's really nice for making smaller programs and experimenting, and there aren't that many layers of abstraction getting in the way. It's not the best at "programming in the large" so you need to shift over to another language to get a taste of things like namespaces and modules, which is useful even if you go back to C, since this kind of thing is actually present as informal guidelines in the C world. It's best to learn programming concepts in languages that use that concept natively.
I like using C because it's fucking simple, which not only makes it good for teaching, but also the fact that it's very close to the computer, so people can learn bottom up. The problem with other languages like C++ is that I spend way too much time reading the docs, debating which features to use to make the source code the simplest/most idiomatic. That problem doesn't exist in C, because it has fucking nothing.
 
I like using C because it's fucking simple, which not only makes it good for teaching, but also the fact that it's very close to the computer, so people can learn bottom up. The problem with other languages like C++ is that I spend way too much time reading the docs, debating which features to use to make the source code the simplest/most idiomatic. That problem doesn't exist in C, because it has fucking nothing.
this is a very double-edged sword because c has absolutely fucking nothing and if you want a hash table you will have to write one yourself
and there's nothing wrong with writing one to learn but it's hard to do better than the standard library people (unless you write something incredibly specialized of course)
 
this is a very double-edged sword because c has absolutely fucking nothing and if you want a hash table you will have to write one yourself
and there's nothing wrong with writing one to learn but it's hard to do better than the standard library people (unless you write something incredibly specialized of course)
honestly, limitations breed creativity.
I'm making a minecraft clone to learn opengl, so when i got to rendering chunks the obvious way is to make a hashmap, but it's possible to use flat arrays instead, it's possible that it's even faster than a hashmap since you don't need to generate keys, and you have to iterate thru it anyway to render it. The search times aren't abysmal either, since for an X chunk render distance you only need to search X amount of chunks (since you only need to find the x OR y coordinate), 2X(+1 maybe) if it's a radius not a length
 
my nigga david knuth doesn't use syntax highlighting, except for like numbers iirc

I like using C because it's fucking simple, which not only makes it good for teaching, but also the fact that it's very close to the computer, so people can learn bottom up. The problem with other languages like C++ is that I spend way too much time reading the docs, debating which features to use to make the source code the simplest/most idiomatic. That problem doesn't exist in C, because it has fucking nothing.
I'd argue in many cases C is better for learning and C++ or another language that has some specific or a generic purpose is best for getting shit done. But the best thing to do if you want to learn more about computers is learn how a CPU works and build one yourself in some software or literally Minecraft. That way you can also figure out how an assembly language really is made.
 
I still enjoy C. I also like doing microcontroller stuff and similar low level where you're not often worrying about hashmaps or anything more complicated than "record PWM value, apply IIR filter, output new value" But it doesn't pay the bills.

My standard comment is that my Rust, Go, Python, Javascript, Ansible, Puppet, and any other language I'm forced to cargo-cult a fix into always looks like PERL. And all my PERL looks like C.

Except for some of the async stuff I've found I really can use my C skills to understand most languages and make fixes as needed. Admittedly it's usually not complex stuff except for that one stupid open source project to receive a particular RF signal which was literally doing everything wrong and barely worked. Just because you CAN write something in Golang, doesn't mean you should. Another version of it for different hardware was straight C and far easier to fix, but I did get the Golang version to be reliable in my application at least.
 
Back