I’ve been coding for years in a multitude of languages, but other than one c class I had in college I mostly learned through osmosis, or learned new things as they were needed.
So my knowledge is honestly all over the place and with a ton of gaps.
I’m trying to learn rust and starting going through The Rust Book and afterwards I plan on going on Rust by Example and trying to code my stuff as strictly following best practices as possible.
Is that a waste of time? I mean rawdogging it has been working for me for a decade now. Should I just yolo and write what I wanna write in Rust and learn as I go?
Yes. I find it very difficult to get a complete knowledge of something just reading random articles and playing with it. For me, one of those giant books intended to document every little aspect has always helped fill the gaps, and take my working knowledge up to expert level. It’s getting harder to find those kind of quality books though.
alright, I get the random articles thing, but what about the official language documentation/reference on the language’s homepage?
It depends on what you want to learn. One book won’t teach you everything there is to know about a language.
Decide on what area of the language you want to learn more about and then try to find a book that focuses on conveying that.
Otherwise you may spend a bunch of time learning something you don’t care about. You don’t need to know everything about a language unless you have a specific reason for why you want or need that knowledge.
The depth you go into a language will dictate where you need to go to gain the knowledge you’re seeking, if that makes any sense.
A simple 2-3 hour breeze through online documentation may be all that you need to get by. Or maybe a deep dive into serialization is needed because the kind of project you’re on and therefore finding a few books on that subject will be required.
I have read and worked through most of the O’Reilly animal books - perhaps this is before your time. Perl, C, C++, Java, etc… Yak, Camel, animals galore. I still have most of them buried in a closet somewhere.
This was before you could just google or (gasp, CGPT) your answer. You had to read and learn how to do something then try, practice and refine until you had a solution.
To this day I really prefer to enter a new language with a manual that has an index and examples. I could not have learned shit with nothing but Discord and (today’s) google to help.
That’s basically how I learned programming. I’ve bought a book I was interested in, an as I was progressing, always typed the sample codes by hand and tried them.
Even today I buy a bunch of programming books.
alright, I get the just buying a text book thing, but what about the official language documentation/reference on the language’s homepage?
That’s a great resource for when you know what you’re looking for, but I wouldn’t use it for learning new stuff. It’s like if you were trying to learn a language from a dictionary.
I think related/similar languages can be picked up on the fly, but if (for example) you’re only familiar with object-oriented languages, you need a more comprehensive introduction to your first functional language.
The last one I have read was “Java in 21 days”, when I had some spare time between jobs.
Already decades ago… The last one before that was the API reference of Windows 3.1 :)
Today I start a new topic or language with a few youtube tutorials (when I have time) or just with ChatGPT (when I don’t have time).
I first started from just reading “teach yourself” books. But I would say most of the actually useful shit I learned was just by sheer brute force fucking around with my own things and learning by doing.
Yeah I’ve only learned at work by bashing my head against the wall whilst complaining about bad documentation
I think it comes down to how you learn. I’ve found programming books useful because I tend to learn quickly from books. I know others do not. Regardless, if I’m reading a programming book, it is usually nearby a computer where I can try stuff out. At the end of the day, the time at the keyboard will be time well spent when learning a language.
Exactly. I know I learn the best from reading. I’ll read the book, do the exercises, then reread the book after a while. The first pass I pick up some of it, and the second pass I pick up a lot more detail. Once I’ve built the mental model
I read programming books the way my wife reads cookbooks.
In my opinion, once you have learned the basics (and a few advanced topics) of programming, you are already 40-50% into learning any other new programming language. If you feel reading a book is a waste of time, skim it to learn the syntax while you work on projects and come back to it when you are stuck on something. Also programming books often have sections about best practices and common mistakes, make sure not to skip those.
Yeah when I swap between languages these days I usually just google some form of “cheat sheet” and hope some college kid made one I can reference
Reading programming language books isn’t a waste of time. What is a waste of time, is delving into a programming language and finding out how little of use it is. You’d hate yourself for pursuing a programming language and find out that it has little purpose.
The point of programming however, is to be versatile. Do not be content. You may focus on one or two programming languages, but there are jobs and fields out there that’s going to require more programming languages so you might want to keep a head up on that.
But no, reading programming books is not a waste of time. Just do not expect one book to answer everything. There’s a reason why there’s tons of editions of C/C+ for example. There is something new to document and learn about with that programming language.
After I had learned programming well enough to do it comfortably in a few different languages, the return on investment for reading most common programming books declined sharply and since then the only programming books I still read are of a very specific kind and the very best of those still remains The Practice of Programming by Kernighan & Pike which still remains a greatly educational and relevant book today, 25 years later: https://en.wikipedia.org/wiki/The_Practice_of_Programming
I got more out of the Google class because it gives instructor notes with time estimates for each lesson.
this lets me figure out if I need to dive down a particular rabbit hole or if the class is just giving an overview of a topic.
God I hate learning by books.
I need a series of solution walkthroughs I can follow along with, until I get a solid foundation.I’ve read the full C++ programming book by Bjarne Stroustrup before. It’s good because you get the insight of the author about the language, but I don’t think it’s the best way to learn the language. I think it’s good if you want to learn what is at the root of the programming language.