This is tough to do. There are tons of technical books out there. Also, now that the Internet can instantly answer just about any question, the path of least resistance leads to arguments like this: Why I don’t read books.
There is no right or wrong when in comes to learning methods. It's a personal preference. I'm a book reader, but I can understand how Internet content (blogs, articles, etc.) has made it easy for people that don't like books (for whatever reason) to acquire relevant knowledge.
The availability of "Best" lists are abundant. For example:
- Programmers Don't Read Books -- But You Should: As usual, Jeff is in top form here.
- UnSpun by Amazon: Best Programming Books: Based on reader reviews.
- The Best Programming Books Ranked by Programmers: Categorizes ranked books by topic.
- Six Essential Language Agnostic Programming Books: Lots of comments with other suggestions and opinions.
- The Top 9½ In a Hacker’s Bookshelf: Each is well reviewed.
OK, so once you get past the classics (Code Complete 2, The Pragmatic Programmer, Design Patterns, etc.) where do you go from there?
I will typically invest in books on emerging technologies that I want to fully understand (a recent one was Windows Presentation Foundation Unleashed -- highly recommended). The real challenge is finding a book that doesn't suck. Reviews and recommendations by other readers, like from the sites above, are the best resources.
My other vetting technique is standing (and reading) for long periods of time in the nerd-book section of a bookstore. There's no substitute for browsing the pages of a real book. The one that's still in your hand when your SO drags you towards the exit is probably the best one to buy.
Pingback: Top 10 Concepts That Every Software Engineer Should Know | Bob on Medical Device Software