Here are some books that I highly recommend.
For C++, there is the curated list on StackOverflow: The Definitive C++ Book Guide and List. Nothing I could add to that list, or take away.
For JavaScript (ES6), I've been out of the loop too long. I suspect books like Eloquent JavaScript and JavaScript: The Good Parts are out of date, but I found them to be a great help back in the day.
For F#, I've read about a dozen books on the topic. Only one book have I found to be useful so far:
- The Book of F#, by Dave Fancher, a fantastically fabulous book
- disclaimer: I haven't read "Expert F# 4.0" yet, which I hope and expect will be good, even if the reviews call it "preachy"
For agile, I've really enjoyed these books:
- The Scrum Guide, by Schwaber and Sutherland, is nice, very short, definitive, and free (PDF)
- Succeeding With Agile, by Mike Cohn, is a "must have" book for agile
- How To Implement Scrum in 10 Easy Steps, by Kelly Waters, is an online article, but I'd be remiss if I didn't call it out here. Scrum really is that simple... in theory.
For general development, I have these heavily dog-eared books on my top shelf:
- Writing Solid Code, by Steve Maguire
- Code Complete, by Steve McConnell
- Clean Code, by Robert C. Martin
- Design Patterns, by Gamma, Helm, Johnson, and Vlissides
- AntiPatterns, by Brown, Malveau, McCormick, and Mowbray
On my short queue of books to read that have been highly recommended to me:
- Refactoring, by Martin Fowler, et al
- The Pragmatic Programmer, by Hunt and Thomas
- Growing Object-Oriented Software, Guided by Tests, by Freeman and Pryce
What are some book recommendations you would like to share?
Top comments (7)
These are some of my favorite books (I've omitted the books that overlap with your list):
Cheers.
Thanks Blaine!
In the other topic you created you mentioned 'The Principles of Product Development Flow' inspired me to make this topic thread. :-)
I've read Facts and Fallacies. After reading it, I only need to refer to Jeff Atwood's Revisiting The Facts and Fallacies of Software Engineering table of contents synopsis as a reminder of what the book discusses. I've chatted with Robert Glass, he's a nice person.
Awesome. I reread "Facts and Fallacies..." every couple of years too.
Working Effectively with Legacy Code by Michael Feathers is a must read. Even for those, who dream of working on green field project all their life. :)
My project is the poster child of legacy code. I'll have to pick up that book, thanks!
/!\ For everyone considering throwing out the current code and starting greenfield fresh... both Joel Spolsky "Things You Should Never Do" and Robert Martin "The Grand Redesign in the Sky" (Clean Code, Chapter 1, Section 4) strongly caution against.
I watched a talk where a gray-beard programmer said he sells his shares in a public company whenever he hears that they are undertaking a major IT project. (I wish I could remember where I saw that so I could give him credit.)
But, yeah, if your project gets to the point where you are contemplating a total rewrite, you're probably in a pretty bad situation.
In the Learn Regular Expressions using Atom topic, Programming Liftoff cited Mastering Regular Expressions.
I can wholeheartedly endorse this book. It's fabulous. (A little more specific subject matter focused than I originally envisioned for this particular thread, but upon further reflection book gems are worth sharing.)
Mastering Regular Expressions by Jeffrey Friedl, who is also a very nice person and graciously answered all my annoying emails about my OCD nitpicking of his book.