4 ms·
There are two kinds of programming books. Some are technical references covering a specific technology (usually a tool, library, or framework); I generally find
by jonstewart 9y ago
There are two kinds of programming books. Some are technical references covering a specific technology (usually a tool, library, or framework); I generally find these to have a short shelf-life and to be lower in quality. New versions of software can quickly result in their obsolescence, and sometimes the examples and precise details are not accurate even when published. However, I have found such books to be _essential_ when learning an emerging technology, where maybe there's API documentation but very little (or very poorly written) conceptual/overview documentation. Often the book's author is elbows-deep in the implementation of the technology and can explain some of the essential concepts. I typically buy these kinds of references only when I know I need to come up to speed on something, often a new fresh open source hell with its own jargon (looking at you, Angular), and then I make a dedicated attempt to power through the book and the examples. You can go broke if you buy this sort of book and don't put in the effort for an immediate return; also, you can skip whole chapters that aren't applicable to your situation.
The second kind of programming book covers a broader topic and/or more mature technology. They can vary from an academic orientation to almost a sly anti-intellectual style (e.g., the Camel Book). Here you learn core concepts that will be more-or-less evergreen. These are books you will want to read cover to cover and then return to again and again, for years in the future. These books vary in their tone, some serious, some silly, but they all should be fun to read due to the clarity of their prose and presentation of essential concepts. The ultimate example is TAOCP.
- Ace17 9y agoSpot on ; we might need a name for this second category of books ("technology-agnostic"?). These are the books I want to search for in a bookstore ... without getting polluted by the unlimited variations of "Teach Yourself <SomeShortLivedTechnology> in 7 days" or "Learn <SomeUsefulTechnique> with <SomeBloatedFramework>".
- jonstewart 9y agoWell, I'm not sure I'd say "technology agnostic". I would include Programming Perl or Stroustrup's The C++ Programming Language in the second category. Parts of both are now dated, the accidental noise of APIs and so on, but the essential concepts are explained so fundamentally that you'd have no problem adapting to current APIs. Sometimes, though, you just really need help coming up to speed on a bunch of accidental syntax and incantations to get the job done.
- deleted 9y ago[deleted]