I don't have as much time these days to read as I'd like, but I recently got stuck at an airport for a few hours and ended up spending the time drinking (too many) cappuccinos and reading
Michael Strevens' The Knowledge Machine.
I'll admit to not picking it up again since that day at the airport, but I do plan to, and I thoroughly enjoyed the ~8 chapters that I made it through. It's kind of fascinating, if you think about it, that the Universe even
has the property that its internal workings can be revealed, layer by layer, by inhabitants of its own construction, until it's understood (I mean, I get that some people feel/believe that it will
never be understood, at least not completely, but I think we're still a
very long way from maybe eventually having to face that fact).
(One thing I didn't expect to get from the book, and I don't think it was the author's intention, were some uncomfortable thoughts about just how differently people's brains can be wired: I kept bumping, especially at the beginning, into implied and sometimes explicit declarations by the author that some conclusion or another possesses an almost alien quality that defies normal sensibilities, and thinking to myself "But, that's like... the most natural/comfortable/intuitive thought in the world. Do other people really struggle to see that? Why can I see it so clearly? What's different about me? Was I dropped on my head as a baby?", etc.)
You're a programmer, right? One piece of advice that I can offer you is to not sleep on the wisdom of the old guard. There's a treasure trove of information hiding in plain sight if you can avoid the trap of thinking that the out-of-date stuff is less valuable than the shiny new stuff. In fact, it's almost become something of a coping mechanism with me. When the modern world gets a little too stupid for me to handle, I tend to retreat into old programming books (stuff like
Leo Brodie's Thinking Forth). I'm not sure why looking back is so effective at lifting my spirits, but, probably it has something to do with my weird childhood (as in, by the time I was 13 I'd already been "programming" for ~5 years, and had blown past Logo, BASIC, Pascal, and C, and spent my afternoons ignoring my homework and instead figuring out (S)VGA and Sound Blaster programming in x86 assembly and working on little "demos"). Beyond my own nostalgia, there's just something really special about programming-related stuff and computer/gaming magazines from the old days. I don't think I can articulate exactly what it is, but, I just know the people from that era so well, how impressively capable they were, how pure their motivations tended to be, and what made them tick, so digesting their thoughts is always really pleasant for me.
Anyway, that little trip down memory lane probably doesn't help you much, but, yeah, in general I get a lot more from older books than newer ones. There's kind of just this narrow band in time that I keep picking from: ~1970 to ~2000. (Ha! I just realized that's the same time window that I tend to enjoy
music from, too; probably it's normal to prefer things from one decade before and one decade after the one you were born in.) While I do enjoy reading programming books/manuals from before 1970 (like the first two volumes of Knuth's
The Art of Computer Programming, though, that's not exactly light reading), much past that point they start to become a chore because I can't always relate to what they cover. Much after 2000, it starts to become "slim pickings" (for me, anyway), too. There's something about "modern" programmers and their way of thinking/problem-solving that just doesn't sit well with me. It's like... they don't actually know how to program all that well, and they spend their energy on things
adjacent to their task, like build systems, and dependency management, and trying to stick to half-understood/unchallenged "best practices" and whatnot. The old-generation vs. new-generation issue reminds me of that kid at school with holes in his sneakers and a hand-me-down tennis racket soundly beating and making a mockery of the kids with all the "latest" equipment but only half the skill.
I'm not sure what's behind this generational skill-reversal, but I think it has something to do with the field having become much less selective over time: the further and further you go back, the harder and harder it was to nurture (and maintain) someone's interest in programming. There was this kind of natural "hump" that very few people could get over without being either exceptionally well-suited to the task, or extremely interested and tenacious enough to pursue that interest largely on their own. So, the
concentration of "talent" gets higher and higher as you follow the field towards its inception. Conversely, as you follow the field in the other direction, things get much more onramp-rich and inclusive, which
sounds like a good thing, but in practice what that amounts to is a much more
dilute mixture of talent making its way into industry and academia and then establishing a correspondingly poorer set of principles/practices/ideas that impair the next wave of programmers further still (I mean, there are still luminaries, as always, except that now, outnumbered practically to the point of irrelevance, instead of
establishing the current, they're swimming against it, and typically saying difficult-to-appreciate things that everyone else would rather ignore, especially when those things disagree with the prevailing wisdom).
(Sometimes it feels like we're already near to this outcome, but, if each new wave of programmers is, on the average, less skillful than the last, then software quality will keep declining, and eventually what's going to happen is that, excluding a few artifacts that were mostly built/designed by programmers from another time, our digital infrastructure will get locked into a state of always only ever barely working, with never-ending maintenance on components that keep collapsing under the weight of their own amplified/artificial/mishandled complexity.)
Sorry for the long aside... I'm turning into one rambly, grumpy bastard as I get older.
Long story short: I recommend picking some interest (like programming) and finding out when the "best" material for it was being produced, and then back-reading from that era (if it's an old subject, with no recent paradigm-shifting breakthroughs, then probably its halcyon days are well behind it).