0. Crucial Conversations: Tools for Talking When Stakes Are High, Second Edition
1. The Five Dysfunctions of a Team: A Leadership Fable
2. Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
3. Grit: The Power of Passion and Perseverance
4. Steve Jobs: The Exclusive Biography
5. What Got You Here Won't Get You There
6. The Power of Vulnerability: Teachings of Authenticity, Connection, and Courage
7. The Obstacle Is the Way: The Timeless Art of Turning Trials into Triumph
8. The Like Switch: An Ex-FBI Agent's Guide to Influencing, Attracting, and Winning People Over
9. Influence: The Psychology of Persuasion
10. Pre-Suasion: Channeling Attention for Change
11. Thinking, Fast and Slow
12. Mindset: The New Psychology of Success
13. Emotional Agility: Get Unstuck, Embrace Change, and Thrive in Work and Life
14. Originals: How Non-Conformists Move the World
15. Radical Candor: Be a Kick-Ass Boss Without Losing Your Humanity
16. Sapiens
17. The Everything Store: Jeff Bezos and the Age of Amazon
18. If you like space: Endurance: A Year in Space, a Lifetime of Discovery
19. Shoe Dog: A Memoir by the Creator of Nike
20. Quiet: The Power of Introverts in a World That Can't Stop Talking
21. Long Walk to Freedom: The Autobiography of Nelson Mandela
22. The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations
I need to give this a try again. When I originally read it, it was part of a team activity a decade ago and left unmoderated, so it devolved to everyone being at each other's throats by the end of the day.
Both of these books helped me immensely when I was down and I think DC's writing style (by examples) is what I found very useful.
https://www.amazon.com/Design-Everyday-Things-Donald-Norman/...
"Memory is the seamstress, and a capricious one at that. Memory runs her needle in and out, up and down, hither and thither. We know not what comes next, or what follows after. Thus, the most ordinary movement in the world, such as sitting down at a table and pulling the inkstand towards one, may agitate a thousand odd, disconnected fragments, now bright, now dim, hanging and bobbing and dipping and flaunting, like the underlinen of a family of fourteen on a line in a gale of wind. Instead of being a single, downright, bluff piece of work of which no man need feel ashamed, our commonest deeds are set about with a fluttering and flickering of wings, a rising and falling of lights."
I'm not sure it's useful for programmers in particular -- maybe all this stuff about the ad-hoc nature of identity will help you choose what language to learn next or something :)
P.S.: also, given many of us publish open source stuff and write blogs etc., reading some literature will always help regardless of whether the contents are relevant or not. I observe from various past threads and this one that the crowd here really likes sci-fi novels and self-help stuff, and also biographies to some extent; but the rest of literature is not as popular. Certainly many lack the time, but reading a 200-300 page novel in a week or two should still be possible even with a very tight schedule (hint: less driving and more public transport helps, if available).
[1] https://www.amazon.com/Never-Split-Difference-Negotiating-De...
- Borges' Aleph, and his essays (for example Other Inquisitions). He was fascinated about concepts programming is famous for now, he would have loved recursion
- Mann's The Wizard And The Prophet. He uses the life of two highly influential scientists (Borlaug and Vogt) as exemplars for two ways of viewing progress, one highly focused on technological progress, one being sceptical of technological progress
- Wachter-Boettcher's Technically Wrong, about implicit biases in modern technology and how that excludes or mistreats people. Some good lessons if you want to start a company and get as many customers as possible ;) Similar book with more academic stringency: Weapons Of Maths Destruction
- Roman's Writing That Works, non-fiction/memo/email advice from big advertising guys, lots of good advice on getting your point across
- Fromm's The Art Of Loving & The Sane Society, two non-fiction books from a sociologist/psychologist on how to work on your relationships (i.e., love as a movie concept doesn't exist, it's mostly very hard work and self-critique), and how society as a whole has very broken goals. Becker's The Denial Of Death (on how fear of death is a major drive in life) comes from a similar place
- Wilson's How To Teach Programming - delves deeply into the psychology of learning and how to build stable communities, it's available for free so why not
- Statistics books are always good to mend your thinking! My favorite layman's introduction is Motulsky's Intuitive Biostatistics (no formulas, plain English), for a non-practitioner Wheelan's Naked Statistics is probably better
- Seth Godin wrote lots of good business books, pick one (I liked Linchpin)
- If you haven't read them yet, get the 'classics' of software management: The Mythical Man-Month, and Facts and Fallacies of Software Engineering
- Cuckoo's Egg is a marvellously fun non-fiction book about a programmer tracking a hacker in the 80s, one of the first international computer crime cases, featuring tons of fun low-tech hacks
These are some of the books I've given an "A" over the last few years, roughly grouped by genre:
Nonfiction:
- A Short History of Nearly Everything
- Fabric of the Cosmos
- Dataclysm
- The Righteous Mind
- Merchants of Doubt
- Dead Wake
- Man's Search for Meaning
- Evicted
- The New Jim Crow
- Night
Sci-fi:
- We
- The Sirens of Titan
- Hyperion
- Stories of Your Life
- Frankenstein
- The Day of the Triffids
- Childhood's End
Fantasy:
- The Stormlight Archives
- The First Law Trilogy
- The Lord of the Rings
Literature:
- The Stranger
- Dubliners
- Things I've Learned from Dying
- The Things They Carried
- Cloud Atlas
- Stoner
- Pillars of the Earth
Mistborn Trilogies Warbreaker Elantris etc.
I didn't actually enjoy reading it - it's written in a pompous, braggy way that struck me as over-the-top even for a business book. However, the negotiation and communication tools it explains have been really helpful both at work and in my personal life.
[1] https://www.goodreads.com/book/show/8095067-getting-more
Say you're in a position where you can work on any aspect of a project, in any language, framework, SDLM, and with whoever you want. Some advice would be to learn new things all day long, but if you do that 100% of the time, you end up with a lot of nothing. Diversity is good, but not at the expense of in-depth knowledge, just like change is good, but change for the sake of change doesn't really do much by itself. Doesn't mean you should stagnate all development of course ;-)
As with all books on ideas and processes: it's just ideas someone else wrote, take what works, leave what doesn't work.
BTW, his recommendation would be 'Alice in Wonderland', something he's mentioned using when teaching courses on software engineering.
Reading that book represented a step change in my productivity, because I learned to communicate in a way that better prioritized my tasks. I've read it three times now.
Some psychological books teach a person to play psychological games, and if both parties have read the book, they both just play games and no communication actually happens. Not so with "Never Split the Difference", the book teaches that simply listening is one of the most effective yet difficult things you can do to get what you want.
https://pragprog.com/book/ahptl/pragmatic-thinking-and-learn...
I found it tremendously useful both in my career (where I can legit say I'm pretty good) and with outside activities like karate (where I'm very early in the learning cycle). It's one thing to tell people they need 10,000 hours to be competent at something, but quite a lot more helpful to explain all the steps along the way.
probably also C.N.Parkinson laws (of burocracy)... as computing is the ultimate burocracy.
and... Winnie the pooh, and the Little prince. aloud (to a kid probably). Really. esp. if u muse over what u just read aloud..
https://www.amazon.com/Crucial-Conversations-Talking-Stakes-...
If resolving conflict is a skill that you are weak in, this or any book that promotes growth in that area will lead to improved satisfaction on the job for both you and your colleagues.
Soft Skills: The Software Developer's Life Manual
The Lean Startup
The Idea Factory: Bell Labs and the Great Age of American Innovation
and/or
"Flow: the psychology of optimal experience" by Mihaly Csikszentmihalyi (or any of his other publications as they overlap a lot)
Understanding the psychology behind motivation and productivity is going to buy you way more than most productivity hacks IMHO, and even more helpful if you have to work with people.
https://www.goodreads.com/book/show/1203186.The_Existential_...
Chris was an FBI hostage negotiator. His book takes you through some of his hostage negotiations and demonstrates his techniques.
As a software developer, I "negotiate" all day long from code reviews to getting a promotion. His advice has helped more times than I can count.
- "Being Geek: The Software Developer's Career Handbook" https://www.amazon.com/Being-Geek-Software-Developers-Handbo...
- "Team Geek: A Software Developer's Guide to Working Well with Others" http://shop.oreilly.com/product/0636920018025.do -- Software engineering teamwork a-b-c. I'd love to work on teams where everyone has read this one.
[edit: 2nd edition of "Team Geek" is titled "Debugging Teams"; having read both, no difference which you get]
1. "How to win friends and influence people" - Dale Carnegie
2. "The seven habits of highly effective people". - Stephen Levy
A great book to understand the general workings of systems, be they technical or human (including companies, governments, ...)
Very useful to go from plain programming to actually identifiying problems and solving them efficiently.
https://www.amazon.com/SYSTEMANTICS-SYSTEMS-BIBLE-John-Gall-...
But at the same time I totally get what you mean.
http://www.the-niceguy.com/contributors/SurvivalGuide.html
Ask Roberto Rosario why.
- The Mythical Man Month
- Peopleware
- Good Strategy Bad Strategy
"A Pattern Language" by Christopher Alexander.
"The No Asshole Rule".
"How to Lie with Statistics".
For those curious what this book (and the one I mentioned) is about: Theory of constraints. But it's not just that. It goes through, in the form of a novel, the experience of a plant manager (VP of IT or something in Phoenix Project) as they go from clusterf--k mess towards a leaner, tighter, functioning plant.
An important lesson to take away (besides ToC itself) is that you have to make that lean enterprise the target. You cannot just, from day 0 of your clean up, rearrange everything and expect positive results. It's a growth process, a process of continuous improvement. If you have any role in project management, and have any desire to clean up how your office or enterprise functions, these are really good books to help along the way.
* "Alice in Wonderland", Carroll
* "Gödel, Escher, Bach: An Eternal Golden Braid", Hofstadter
* Either "His Dark Materials", Pullman; or "Illuminatus!", Shea and Wilson
* "The Hitchhiker's Guide to the Galaxy", Adams (all of its sequels are also good)
* "Zen and the Art of Motorcycle Maintenance" and "Lila", Pirsig
* Either "Watchmen", Moore and Gibbons; or "1984" or "Animal Farm", Orwell
* "Neuromancer" or "Pattern Recognition", Gibson
Be wary of anybody who recommends self-help, attitude improvement, psychology, business/management, or similar genres.
Also, I notice that some folks have recommended the official Steve Jobs biography. From my biography shelf, I humbly recommend instead "iCon", by Young and Simon, which is unauthorized and much more detailed.
This is a fairly broad rejection of multiple genres. While I agree that there are bad eggs in all of those categories (some moreso than others), there also is value to be found, and wariness of someone simply for recommending a book from one of those categories sounds overly harsh and dismissive.
After all, not everyone is born with a perfect understanding of social science and behavior, especially many programmers.
A good programmer isn't just one who can program. They must be willing to accept the fact that they aren't a special snowflake and that great achievements come from sharing and teamwork, having constructive and wholesome paradigms, etc.
I have been building world class e-sports teams for two decades. It breaks my heart for the future to see so many well educated folk ripping into eachother and themselves in these ways.
As for self-help/attitude improvement, it's only useless if you don't already know what science suggests are good habits and behaviors. From there, it's the process of integrating those into your life that becomes critical.
Speaking as someone who chronically lacked discipline, which then translated into a lot of mistakes, among the most important things a person can understand is the value of positive habits and behaviors, compounded over a long time period. Habits and behaviors are what drive wellbeing across a variety of different dimensions: diet, exercise, learning, growth, experience, socialization, etc. They are the principal foundation of a happy life, and most people never even come close to appreciating their full importance.
All that said, I'll be the first to admit that the self-help genre is typically more about dopamine hits and quick sales than real results.
What I want to add is that while "Gödel, Escher, Bach" is great, I found "I am a strange loop" makes a better point. I'd say that the two books from Pirsig, plus "I am a strange loop" helped me form a lot of my personal philosophy.