Often times I see threads on HN about good Compuer Science books, but I'd like to find out which books have helped you the most in your career growth (which may not specifically be CS type books) or professionally (which may be CS type books).<p>Edit - having a few words describe how the book was helpful would be really useful!
Would it be ridiculous if you upvoted this comment??<p>Never Split The Difference - Chris Voss<p>This book has made a much greater negotiator both professionally and personally.<p>“Would it be ridiculous if” and
“How am I supposed to do that?” Have saved me 100s of thousands of dollars!! The only negative point is that the negotiation style does not work on my wife ever since she read the book.
How to win friends and influence people. Helped me solve some approaches to handling people in general and highlighted a few approaches that I had been taking that were actively causing me problems.<p>The Secrets of Consulting: A Guide to Giving and Getting Advice Successfully by Gerald Weiberg. [1] Helped me understand why technical problems are rarely just technical.<p>Working effectively with legacy code by Michael Feathers [2]. Practicing some of the techniques in this helped me get my foot in the door in a job long ago where one of the interview scenarios was "This is broken, go ahead and fix it.". I recommend reading this for anyone working on a code base that's been around for a while.<p>--<p>[1]: <a href="https://www.amazon.com/Secrets-Consulting-Giving-Getting-Successfully-ebook/dp/B004J35LHQ/" rel="nofollow">https://www.amazon.com/Secrets-Consulting-Giving-Getting-Suc...</a><p>[2]: <a href="https://www.amazon.com/Working-Effectively-Legacy-Robert-Martin-ebook/dp/B005OYHF0A/" rel="nofollow">https://www.amazon.com/Working-Effectively-Legacy-Robert-Mar...</a>
For a non-cs book, checkout Deep Work by Cal Newport. It's been a little while since I read, but what struck me most is the mindset to avoid distractions.
Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems by Martin Kleppmann. Absolute best book on system design.
"How to Solve it" was great for me from an abstract problem solving point of view. It helped me get better at seeing which abstractions help solve an otherwise difficult problem, which is a useful skill to have for coding interviews and, really, most technically difficult problems encountered during the work day.
As a small business owner I'd have to say E-Myth Revisited and Work the system.<p>Because once you learn systems thinking, you see the world totally differently and from a business point of view, understanding how their systems work is like getting to have a look at the source code of that business.
If you want to embrace DevOp culture, where it comes from, why is it important and the reality of medium big businnesses, then you definitely want to read the Phoenix project
"What Got You Here Won't Get You There: How Successful People Become Even More Successful" by Marshall Goldsmith helped me become a better teammate and communicator.
33 Strategies of War. It's good for dealing with any and all types of conflict, including conflicts with yourself. Half of the book is unconventional techniques most people don't even think of.<p>Similarly themed is Extreme Ownership, which covers leadership in chaotic situstions.<p>Militaries are designed to deal with the chaos of war, and a lot of principles apply to the chaos of software engineering too.
"Large-Scale C++ Software Design" by John Lakos. The only book (as far as I know) that really teach you the nitty gritty of handling very large scale systems (not just C++ systems). Something I have needed more than once in my career.
I'm no professional but I was very impressed by the immediate utility and domain independence of what I gained from reading "Thinking, Fast and Slow".<p>I've always felt that intelligence is largely cultivated (or at least a significant portion of what we commonly refer to as 'intelligence'), and much of this book seemed to agree and offered constructive advice on improving ones cognition, along with making use of many quirks, oddities and primitive habits our brains have been endowed with.
ReWork by Jason Fried and David Heinemeier Hansson (good reference on good principles)<p>Traction by Gino Wickman (how to create SOPs & scale)<p>Authority by Nathan Barry (how to develop an audience)
early in my career, those two books were on my desk continuously:
<a href="https://www.amazon.com/Network-Programming-Perl-Lincoln-Stein/dp/0201615711/" rel="nofollow">https://www.amazon.com/Network-Programming-Perl-Lincoln-Stei...</a>
<a href="https://www.amazon.com/Mastering-Algorithms-Perl-Practical-Programming/dp/1565923987/" rel="nofollow">https://www.amazon.com/Mastering-Algorithms-Perl-Practical-P...</a><p>later, it was time for <a href="https://www.amazon.com/How-Win-Friends-Influence-People/dp/0671027034" rel="nofollow">https://www.amazon.com/How-Win-Friends-Influence-People/dp/0...</a>
POODR - Practical Object oriented design in ruby. Changed my way of coding entirely, brought me to a completely different level and pushed an even bigger growth
Pitch Anything - About selling and the psychology of selling. Really need to re-read that one actually.<p>And +1 for Deep Work, So Good They Can't Ignore You or The World Beyond Your Head. They made me realize that being in a profession where you can reach "flow state" actually is a privilege.