how to learn to code

The question is really when do these things become more economical than just hiring some dude and the way things are going on both ends the technology would need to become a lot more efficient before it's really worth it.
That's kind of the point - if we truly reach AGI, then the amount of shit it's going to be able to invent/discover and operationalize is going to create ludicrous efficiency gains in a relatively short time. True AGI that could put real programmers out of work is going to quickly obsolete every skillset in existence simply by virtue of generating breakneck technological growth.

But I don't really think we're there yet tbh. I see current models generating a lot of small, toy projects that kinda work and not really any large-scale applications with a ton of business logic. I also haven't seen any of the current tech solve fundamental problems in AI - it's just throwing more scale at the same sort of ML tech we've known about since the 80s. So despite my pro-AGI shitposting, I remain pretty skeptical overall.
 
As I'm progressing in coding, I'm shocked by just how intuitive it is. That, or maybe I have a natural aptitude for coding or the course I'm taking is just good. The more I learn, the more the once previously "arcane language" of programming becomes something comprehensible to me. I can say I'm having a bit of fun doing this.

The take away would be that, in order to learn to code, you need to come at it with a positive mindset
You're obviously above average if you can express this. A LOT of people lack the cognitive ability to put all the pieces together. Normal people have trouble with some pretty basic programming tasks.

I understand what you're saying. I've published software in half a dozen languages. Seems stupidly easy sometimes. The hardest part for me is DECIDING which solution I want and then COMMITTING to it. After I've done that, NBD. Until it bites me in the ass because I didn't see some weird interaction ahead of time... And therein is the rub: until you do it once, you don't know how to do it properly. Sometimes, even the second attempt isn't much better. You'll see your limits faster the more complexity you deal with.

One of the best features of Prolog for me is that it encourages atomizing things into higher levels of abstraction. This enables simple representations that I can be more confident about. I imagine other people feel the same way about Haskell.

Also, if you haven't learned anything about Leslie Lamport's TLA+, learn today: https://lamport.azurewebsites.net/tla/tla.html
 
You're obviously above average if you can express this. A LOT of people lack the cognitive ability to put all the pieces together. Normal people have trouble with some pretty basic programming tasks.
Good point. I used to think everyone could learn to write programs to help them with menial tasks but later came to the conclusion that a depressing number of people are wired in such a way that it is just not feasible.

When someone has the realization "oh this actually makes sense" it's a great sign.
 
  • Feels
Reactions: Pee Cola
i have this same question i am thinking about watching one of these python tutorials with like 30 million views but i am just not sure i just want to be able to make webpages and make money help me kiwis
Few people are hiring and all the available jobs are going offshore or to diversity hires. If you didn't start programming five to 10 years ago, you're out of luck. We need more welders/electricians, not junior developers helping Bay Area degenerates get rich.
 
i have this same question i am thinking about watching one of these python tutorials with like 30 million views but i am just not sure i just want to be able to make webpages and make money help me kiwis
Different strokes for different folks, Python is a great starter language but many of the starting resources, especially on youtube, are trash. Python wasn't my first language and I seem to be in the minority for enjoying learning from books these days but... O'reilly and No Starch Press have good books for beginners that are really easy to pirate you may want to check out.
I buy books I deem useful and encourage the same

Alternatively you can just start on Python.org (https://docs.python.org/3/tutorial/ or https://www.python.org/about/gettingstarted/) but people I've shown it to get intimidated. If it seems daunting then move on to something that suits you better.
A couple of No Starch Press books I think are good to start

I'm not much for web development and it's broad. Start with HTML and CSS then you'll want to learn Javascript as the primary programming language. The Recursive Book of Recursion by Al Sweigart features both Python and Javascript for example code but it's a book about recursion so a tad 'tistic
Autistic.svg
and likely not very helpful. It is not representative of normal programming and tries to make that clear up front, it's just a book I know that has Python, a great beginner language, and Javascript, a fundamental web language.
For dedicated books there's Javascript Crash Course and Javascript: The Definitive Guide but I just used the internet and browser consoles to get started, I'm not much into web dev.

Most web dev projects I've skimmed on youtube have just you blindly following along with some guy who is implementing some classic school project and they almost always do really stupid shit and handwave away the stupidity, if they acknowledge it all. Experience is experience and it's free so check them out but be open to the idea that the person is an idiot and may be doing some terrible things or have terrible habits. Maybe there are some known-goods but I don't know them.

There's also this Github repo with free books.

As for money, there are still jobs out there but web dev is what a lot of college grads want to do so is probably quite competitive, I wouldn't know as it's not something I've ever been into. Without a relevant degree it will be a lot harder to get off the ground, most places won't even look at you without prior professional experience.

Kinda rambly but maybe it gives you somewhere to start.
 
  • Like
Reactions: Pee Cola
i have this same question i am thinking about watching one of these python tutorials with like 30 million views but i am just not sure i just want to be able to make webpages and make money help me kiwis
Learn Javascript and React or Angular. Or become a normie wordpress developer.

But really, if you don't really like software and just want money, I wouldn't bother right now. I do this because I love programming and sometimes I still think it'd be better for my sanity to just work at Taco Bell. If you don't really enjoy this kind of shit, you'll burn out really fast.
 
  • Agree
Reactions: Aidan
been teaching myself C++. how screwed am i?
Depends on why you're learning it. You want to make operating systems or low-level system utilities or games or maintain old codebases? You could do way worse.

You want to write a normal desktop application? Go learn a modern programming language. C# and Java are pretty good but tbh you could write that kind of shit in Python or Ruby these days.
 
been teaching myself C++. how screwed am i?
On a sufficiently abstract level, programming knowledge is very transferable. C++ knowledge will transfer well to all but the weirdest contexts. But if you want to avoid being screwed, practice some other languages too. C++ ought to prepare you for all kinds of directions: Java, C#, Python, Go, Rust, PHP, whatever.

You want to write a normal desktop application? Go learn a modern programming language. C# and Java are pretty good but tbh you could write that kind of shit in Python or Ruby these days.
Done any UI work in Ruby recently? My last go at it was in like '13, and it was not comfortable at all. Ruby's my go-to for prototyping things, but I've never had much success UI toolkits. Python's probably a better match for this kind of thing, save the fact that Python on Windows is awkward.

i have this same question i am thinking about watching one of these python tutorials with like 30 million views but i am just not sure i just want to be able to make webpages and make money help me kiwis
"make webpages and make money" is not adequately specified. What kinds of webpages do you wish to target? "Making webpages" is a ridiculously broad field that can involve graphic design, video creation, server wrangling, and network management in addition to the more well-understood front-end dev, document layout/formatting, and back-end dev fields. My longest stint as a wagie programmer was working with SharePoint, which is a mammoth Microsoft monstrosity that enabled me to stretch in quite a number of these areas.
 
Strangely enough the best coders I've known (and I haven't known a lot of coders, the tech sector is a fucked up thing that has a unique degenerative effect on the human mind and spirit so I've deliberately distanced myself from it) didn't so much start out wanting to code, they had other things they had to do, and had to figure out what they had to know to make it happen, and once they started it naturally progressed from there.

So a person knowing what they want is going to be pretty helpful; "coding" can involve a huge number of different avenues, and depending on which understanding principles of how information is stored or processed or how applications interact is a lot of times more important than the physically typing up code part.

On the other hand if a person is just learning to code because idk what to do in life but mom's going to be mad if I don't act like I'm progressing, that doesn't tend to work out as well.

Slight tangent: I feel this is most applicable to my experience with Linux. What little I do know about “coding” or “programming” boils down to specific tasks that effectively required a text console. It's funny: I can't sit down and proactively learn about shell scripting, programming in MacLisp, or anything of the sort. I always need to have my ass to the fire in some respect for things to really stick.

Something from the AUR didn't compile right? Oh beans, now I have to learn the bare minimum of BASH scripting necessary to fix a malformed line properly.

I could never finish any dedicated LFS system that I started, but I staunchly maintain that Linux From Scratch was, in essence, a crash course in BASH scripting, software building/compilation, the basics of operating systems, and so much more.

Learning about Gentoo was tons of fun because it's basically automated LFS, but now I can actually get to the part where I learn the basics of configuring, compiling, installing, and maintaining my custom kernel!
 
How does one download these books?

I had a look, tried a few things and couldn't manage it. 😭
Depends on the book. Some of the links in the repo go directly to a PDF, others take you to a website with the book/content.

You can go about it two ways:

Either you navigate the readme file down to the Resources heading and manually follow links:

sc1.png
sc2.png
sc3.png
sc4.png

Or: You follow this link and search directly for whatever you're interested in.
 
Depends on the book. Some of the links in the repo go directly to a PDF, others take you to a website with the book/content.

You can go about it two ways:

Either you navigate the readme file down to the Resources heading and manually follow links:

View attachment 4517754
View attachment 4517749
View attachment 4517745
View attachment 4517742

Or: You follow this link and search directly for whatever you're interested in.
Thank you very much for going to all that trouble.

I was thinking/hoping there was a simple way to get all the free books downloaded in one go.
 
Despite it being old, I think SICP (Structure and Interpretation of Computer Programs) is the best introductory CS book. link1 link2

SICP can be enjoyably read cover to cover. Every bit of content is practical in the sense of understanding and writing better Scheme (the language taught in the book), and the exercises involve actually building programs.

At the same time, Scheme itself and the ways they get you to use it are a great tool for understanding the creative thinking behind all programming. Often times it'll guide readers along into devising a new systems and concepts and then analyze their clever uses and where they fall apart. Its coding practice is not route coding but actually implementing intellectually interesting stuff.
 
Despite it being old, I think SICP (Structure and Interpretation of Computer Programs) is the best introductory CS book. link1 link2

SICP can be enjoyably read cover to cover. Every bit of content is practical in the sense of understanding and writing better Scheme (the language taught in the book), and the exercises involve actually building programs.

At the same time, Scheme itself and the ways they get you to use it are a great tool for understanding the creative thinking behind all programming. Often times it'll guide readers along into devising a new systems and concepts and then analyze their clever uses and where they fall apart. Its coding practice is not route coding but actually implementing intellectually interesting stuff.
There is a javascript version now in an attempt to make it more directly relevant.

I've got SICP on my list and downloaded somewhere, I should start going through it to see just how good it is. A bit more 'tistic but I want to work through Knuth's The Art of Computer Programming books as well, I read a chunk of Volume 1 and did some of the exercises. Dense but definitely makes you a better programmer and problem solver.
 
Text based action adventure games used to be common projects for someone learning to code. For some reason that type of project seems to have fallen out of favor. If I could go back in time I would probably do it that way. You need to learn lots of different topics from input/output, control logic, computer arithmetic for combat, interacting with file systems for save files, some basic data structures, and probably more than I can think of because its been many years since I first learned to code. You can also extend the project as far as you want to and incorporate things like images or GUIs if you want although you'll probably get board by then or get crushed under the weight of spaghetti code you will definitely create on your first project. After a text game you can take it step further and try strategy or 2d platformers but eventually you'll need to learn real Computer Science theory.

There's simply no escaping it that a lot of programs you write early on will be small academic projects that poorly implement some algorithm or data structure that you barely understand.

Edit:
been teaching myself C++. how screwed am i?
There's a lot of largely unjustified hate for C++ these days. Its actually a very solid choice for many projects - yes even new projects that don't require tons of low level code. It really isn't that hard to create a project like the one I mentioned above using C++. Literally everything you need to write a text based game is already provided in the standard library. And there's a dozen or GUI libraries out there if you want to/can expand the project further.
 
Last edited:
been teaching myself C++. how screwed am i?
There's a lot of largely unjustified hate for C++ these days. Its actually a very solid choice for many projects - yes even new projects that don't require tons of low level code. It really isn't that hard to create a project like the one I mentioned above using C++. Literally everything you need to write a text based game is already provided in the standard library. And there's a dozen or GUI libraries out there if you want to/can expand the project further.
Its just the unloved middle child of programming languages. C++ standard tries to be for high level, but still can't escape the low level baggage, see the whole Boost library that tries to add in what they thought was missing from the standards but there's still low level details spilled everywhere, see the docs for regex matching: https://www.boost.org/doc/libs/release/libs/regex/doc/html/boost_regex/ref/match_results.html

If you wanted low level, C does everything already. If you wanted high level, you could just do python, Java or C#, they too have all the C++ standard library routines bundled. You could even write high level bindings in C if you need the occasional low level routines.

There's also the bad aftertaste of C++ programmers ruining all the fun out of it by writing line noise like code in the early days of object oriented programming before practices properly formalize, at least with perl, its usually out of sight, out of mind. You can take a look at the nasty stuff the earlier C++98/C++03 standards had to go through at https://yosefk.com/c++fqa/, yes you can explicitly call the destructors on a local variables explicitly before it goes out of scope, it only makes sense on fixed memory embedded systems, but it is there and requires all implementations to support it.

Edit: The C++ Standards governs API (Application Programming Interface), it does not govern ABI (Application Binary Interface) and you must recompile everything if you change standards, this applies to all underlying dependent libraries underneath too. Sometimes you end up with the same libraries installed multiple times for different C++ standards. It just can't escape all the low level details properly unless you took explicit action to isolate all interfaces. Inb4 you end up with an inner-platform effect.
 
Last edited:
  • Like
Reactions: Samuel Hyde
There's a lot of largely unjustified hate for C++ these days. Its actually a very solid choice for many projects - yes even new projects that don't require tons of low level code. It really isn't that hard to create a project like the one I mentioned above using C++. Literally everything you need to write a text based game is already provided in the standard library. And there's a dozen or GUI libraries out there if you want to/can expand the project further.
I've been making one of these for practice actually. But you know what system is even better for text games? The goddamn TI-83/84 calculator. No scope or passing. Better built in menus. Actual calculations.
 
Its just the unloved middle child of programming languages. C++ standard tries to be for high level, but still can't escape the low level baggage, see the whole Boost library that tries to add in what they thought was missing from the standards but there's still low level details spilled everywhere, see the docs for regex matching: https://www.boost.org/doc/libs/release/libs/regex/doc/html/boost_regex/ref/match_results.html

If you wanted low level, C does everything already. If you wanted high level, you could just do python, Java or C#, they too have all the C++ standard library routines bundled. You could even write high level bindings in C if you need the occasional low level routines.

There's also the bad aftertaste of C++ programmers ruining all the fun out of it by writing line noise like code in the early days of object oriented programming before practices properly formalize, at least with perl, its usually out of sight, out of mind. You can take a look at the nasty stuff the earlier C++98/C++03 standards had to go through at https://yosefk.com/c++fqa/, yes you can explicitly call the destructors on a local variables explicitly before it goes out of scope, it only makes sense on fixed memory embedded systems, but it is there and requires all implementations to support it.

Edit: The C++ Standards governs API (Application Programming Interface), it does not govern ABI (Application Binary Interface) and you must recompile everything if you change standards, this applies to all underlying dependent libraries underneath too. Sometimes you end up with the same libraries installed multiple times for different C++ standards. It just can't escape all the low level details properly unless you took explicit action to isolate all interfaces. Inb4 you end up with an inner-platform effect.
C++ isn't without problems. But I'll still choose it over pretty much every other similar language given the choice. It's a bit of a cliche but modern C++ (roughly C++17 in my opinion) cleaned up the language significantly.

Of course it still needs modifications. The two big things I want to see are reflection and std::embed. Reflection has been a decades long battle that I don't have much hope will end well. And although some implementations of embded exist and I guess the new C standard is looking into it unfortunately the C++ committee keeps pushing it off. It might be 2026 by the time we see it in the standard.

Even with all of the problems in C++ I'll still choose it over Golang or rust. I would conditionally choose Java or C# but only for certain tasks and then mostly because those two are deeply intertwined with other libraries/frameworks/enterprise solutions. You are right about it being the middle child. It frequently gets compared to the languages I've already mentioned and C as well. Even though C really isn't comparable to Java and C# in design or application.

I've been making one of these for practice actually. But you know what system is even better for text games? The goddamn TI-83/84 calculator. No scope or passing. Better built in menus. Actual calculations.
I never had a programmable calculator so I'll have to take your word for it. Isn't the programming mostly assembly though?
 
Back