Funny – I wanted to write a longer blog post about this topic (learning/growing with books) for some time now.
The following is the abridged guide of how this works for me subjectively. Perhaps it gives you some ideas to develop your own style. Fair warning: I don’t know Rust.<p>First of all: You do not learn a programming language from a book, nonetheless a book can be a great way to support your learning.<p>For me getting proficient in a programming language is a combination of learning the language, the tools, the platform, API and having some structured understanding of the language.<p>Parallel to finding the right books you can already download/install the tooling for your language which translates to compilers, software development kits, package managers, a decent text editor or integrated development environment. Once the tooling is installed you will find plenty of examples on how to write a ‘hello world’ program.<p>If you have any chance to get more than one book about your topic of interest (cash to buy, access to a library, …) than you should try to get your hands on 2-3 books.<p>How to find your 2-3 books?<p>Do your research first:
- Which books have good (non-fake) reviews?
- Which books come regularly up in discussions?
- If you have any chance, look at the table of contents, read a few pages and see if you feel comfortable with the authors writing style and if book covers topics which seem reasonable to you.
- Check that the book as a decent index (bonus points for a good glossary).<p>Once you have your books, you do not read them front to back word by word.<p>First you get an overview of the book. For this you flip through the book and just read the first and last paragraphs of each chapter, read all headings, look at each picture and read all the source code examples you see. The point is to get an overview, idea of the idioms and concepts, not to understand each and every detail. Have a good look at the table of contents and at the index/glossary.<p>For a programming language you should now have general idea about the syntax, data types, control structures, way to organize code (methods, functions, classes, traits, closures, module system) and special features of the language (borrow checker, macro system).<p>Depending on your previous knowledge/interest you can now read about the topics you have questions about in the book(s). Again, the point is not to read every word from start to end but to find the information that answer your questions in an economic way.<p>Depending on your previous experience:
If this is the first programming language you every learn, type the examples from the book yourself. Read the compiler/interpreter messages if something does not work properly and learn to correlate what the compiler/interpreter prompts to the errors you made.<p>If this is not the first programming language, find some easy tasks or challenges to program and start coding small programs until you become comfortable enough to tackle bigger projects.<p>Follow the classic cycle:
1. Make it work
2. Make it idiomatic for your target language
3. Make it fast<p>Bonus tip: Get into the habit to learn the more coarse grained structural elements of the language as fast as possible.<p>(Sorry for any typos and my grammar – English is not my first language.)