I want to get up off my ass and actually attempt to contribute to lemmy eventually if I can
Not sure what projects or languages you’re considering but Automate the Boring Stuff with Python is excellent if you want to get into Python. Rather than teaching concepts up front, it teaches you how to solve specific problems and build up a programming mindset focusing on a particular project in each chapter.
I am leaning towards Rust eventually but I do know that it’s very much not a good idea to start off with Rust. I mainly need to build more of the foundations of establishing a programming mindset as well as the basic fundamentals involved in programming before going to Rust and having to break all of it apart.
Nah, i dont think that’s true at all. Priority number 1 is learn the language that deals in what you’re most interested in. Priority 2 is learning the language whose ecosystem you can tolerate.
Why? Because you learn most when you enjoy what you’re doing.
I’m interested in performance and systems programming so i tried to start with c++. C++'s ecosystem and tooling are complete garbage and i spent more time fighting it than learning to program. I learned python for a specific project, but eventually started learning rust because i was frustrated with python’s lack of low level functionality (and speed).
Rust has a lot of modern features that c++ doesnt (and that arent buried behind 20 years of “do this, no wait that’s bad, actually do this instead”). The tooling is excellent for beginners, and there’s lots of core and standard library features that simplify some of the stupid things about low level programming. And you dont have to start with all the low level fiddly bits, you can start with variables, conditionals, and functions just like you would in python or whatever.
As for book recommendations:
NOT the official rust book. Imo it assumes you already know at least one other programming language. It doesnt always go into enough detail about advanced concepts, but other times goes into WAY too much detail for true programming beginners.
The two that i liked the most were:
Programming Rust by Blandy, Orendorff, and Tindall
Rust in Action by Tim McNamara
I’ve also heard good things about Command-Line Rust by Ken Youens-Clark, but i havent read it myself.
Also, dont be afraid to read language-agnostic books that cover general computer science concepts like Dive Into Algorithms, Understanding The Machine or Data Structures The Fun Way after you’ve gotten your feet wet.
Rust isn’t the easiest language but starting with it might not be the worst option. Rust is weird enough that if you start with some other language you’ll spend a lot of time unlearning that when you eventually try Rust.
Also I’ve found that the rust compiler gives the most helpful suggestions. It’ll tell you exactly what is wrong and where. I’ve worked in at least half a dozen languages and the tooling for Rust has been the best.
I like the Head First series: https://www.oreilly.com/library/view/head-first-python/9781492051282/
If you’re REALLY really new to programming, I’m a big fan of Code by Charles Petzold.
Eloquent JavaScript is very good for beginners in my opinion. Even if you aim to learn a different language in the long run. It is also free.