
Ask HN: Which non-programming books are a beneficial read for programmers? - tomerbd
.
======
notimetorelax
Here are some books I listened to on Audible in the last year and a half,
listing those that I enjoyed the most. Each of these books changed me in some
ways, I never thought how much fun it is to listen to biographies and how many
lessons there are.

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

~~~
carrja99
> The Five Dysfunctions of a Team: A Leadership Fable

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.

~~~
afarrell
Note that it is in "Business Novel" style. If you don't like that style, you
should read The Advantage by Lencioni instead.

------
yellowstuff
A classic that hasn't been mentioned yet is Doug Norman's "The Design of
Everyday Things". My main takeaway 10 years after reading it is that a bad
user experience, even one so subtle that the user doesn't notice, can usually
be prevented by careful design.

[https://www.amazon.com/Design-Everyday-Things-Donald-
Norman/...](https://www.amazon.com/Design-Everyday-Things-Donald-
Norman/dp/1452654123)

~~~
EdwardCoffin
This and The Inmates are Running the Asylum by Alan Cooper could go a long way
to improving UI abilities, I think.

~~~
rimliu
Inmates Running the Asylum was the book that changed my view on interfaces.
Sadly, for some reason is not liked by many developers.

------
myWindoonn
The essentials, looking at my non-CS shelves:

* "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.

~~~
codingdave
> Be wary of anybody who recommends self-help, attitude improvement,
> psychology, business/management, or similar genres.

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.

~~~
nmstoker
Not to put words in someone else's mouth, but isn't the advised wariness
targeted at the recommenders rather than the genres?

~~~
rando444
I like your train of thought, but the logic that follows is one can not enjoy
or recommend self-improvement books to one another lest they be lumped in with
some group of undesirables .. which is silly, as there are many beneficial
books in the genre.

After all, not everyone is born with a perfect understanding of social science
and behavior, especially many programmers.

~~~
smilangalang
I agree. My former mentors and colleagues need to understand more psychology
and how to improve themselves, because they tore our team apart and cost
themselves and all of us incredible opportunities.

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.

------
majos
I recently read and enjoyed _Orlando_ by Virginia Woolf. It tells the story of
an English nobleman who lives for hundreds of years and accumulates a bunch of
experiences. To me, its main point is about the fluidity of identity and what
it means to age (or not). It's also just a fun and funny centuries-spanning
story full of great sentences like these

 _" 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 :)

------
gkya
In what ways? From an ethical perspective, books like Orwell's famous 1984 are
good reads that can help reflecting on privacy and its implications on
societal and individual levels, helping decide on whether or not to
participate in produciton of software that is antagonistic to data privacy.
Also, _Aprender a rezar na era da técnica_ of Tavares is a contemporary novel
that can be useful in a similar vein. So also the Anarchist Banker of Pessoa.
Maybe also the _A Caverna_ of Saramago. All these books depict the clash of
morality and modernity in some ways, and us as programmers are of a profession
that is central to the change of times; thus, our perception of ethics is of
immense importance to the furthering of the world.

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).

------
gsharma
"Never Split the Difference"[1] - A book on negotiation, which can be used at
work or personal life.

[1] [https://www.amazon.com/Never-Split-Difference-Negotiating-
De...](https://www.amazon.com/Never-Split-Difference-Negotiating-Depended-
ebook/dp/B014DUR7L2)

------
a_bonobo
Some books I enjoyed and which _could_ be beneficial:

\- 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

------
ryanstorm
I listen to books during commutes and errands, and give them a letter grade
when I'm done. I read a lot of different genres as I believe there's value in
all genres (and mediums too).

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

~~~
akoshodi
For fantasy, I would add the Malazan Book of the Fallen.
[http://malazan.wikia.com/wiki/Malazan_Book_of_the_Fallen](http://malazan.wikia.com/wiki/Malazan_Book_of_the_Fallen)
[https://en.wikipedia.org/wiki/Malazan_Book_of_the_Fallen](https://en.wikipedia.org/wiki/Malazan_Book_of_the_Fallen)

~~~
ryanstorm
Thanks for the recommendation! I've heard so many good things about Malazan.
I'm a big fan of the 'grimdark' genre, and Malazan seems like the
quintessential series for that genre.

------
alexhutcheson
Getting More: How to Negotiate to Achieve Your Goals in the Real World by
Stuart Diamond[1].

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](https://www.goodreads.com/book/show/8095067-getting-more)

------
oneplane
Contrary to the self-help nature, "The Subtle Art of Not Giving a F*ck: A
Counterintuitive Approach to Living a Good Life" has a set of somewhat
structured ideas on how spending time/attention a bit more selective and
sometimes going deep instead of broad gives you a better return on your
efforts.

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.

------
pjmorris
Anything and everything Gerald Weinberg has written. I particularly recommend
'Are Your Lights On?' as a place to get started, 'The Secrets of Consulting'
as a steady companion, 'The Psychology of Computer Programming' as the perfect
thing to read two-to-five years into your career, and 'Becoming a Technical
Leader' when you're looking past individual contributor, but I do mean
everything he's written. He's been thinking seriously and lucidly about people
in programming longer than many of us have been alive.

BTW, his recommendation would be 'Alice in Wonderland', something he's
mentioned using when teaching courses on software engineering.

------
panic
"Seeing Like a State: How Certain Schemes to Improve the Human Condition Have
Failed" by James C. Scott
([https://www.amazon.com/dp/0300078153](https://www.amazon.com/dp/0300078153))

------
CardenB
"Never split the difference" has made a huge difference for my communication
style.

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.

~~~
Buttons840
I like that the techniques in that book work even if both parties have read
the book -- especially if both parties have read the book.

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.

------
jdcarter
"Pragmatic Thinking and Learning" by Andy Hunt

[https://pragprog.com/book/ahptl/pragmatic-thinking-and-
learn...](https://pragprog.com/book/ahptl/pragmatic-thinking-and-learning)

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.

------
svilen_dobrev
Lila - "Enquiry into Morals" (R.Pirsig) .. "good" is a noun.. and MoQ in
general, with all the orthogonal layers, and identity being the most basic
characteristic of things

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..

~~~
norealidea
the little prince is really one of the best books I have ever read about
enjoying life while subsequently understanding the decisions I make/Will
make/Have made.

------
UnpossibleJim
To be honest there's no telling what anyone means by beneficial, but the
argument can (and has) been made that any fiction, especially character driven
pieces, are good for building neurological processes; as the imaginative
processes when reading this type of book not only "creates" worlds inside
one's head, but also engages other, disparate portions of the brain, not
typically used when reading text books. This type of reading, in turn, helps
the user (in theory) more easily digest and retain information from text
books. Almost like working out for the brain..... I'll try and find the study,
when I get a chance and come back and put the link in. Sorry I don't have
ready access to it at the moment, was just doing a quick read through at work
=)

------
toddwprice
Crucial Conversations

[https://www.amazon.com/Crucial-Conversations-Talking-
Stakes-...](https://www.amazon.com/Crucial-Conversations-Talking-Stakes-
Second/dp/0071771328/ref=mt_paperback?_encoding=UTF8&me=)

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.

------
newman8r
Here's a few I enjoyed:

 _Soft Skills: The Software Developer 's Life Manual_

 _The Lean Startup_

 _The Idea Factory: Bell Labs and the Great Age of American Innovation_

------
sixhobbits
"Drive" by Dan Pink (or his Ted Talk if you want the short version)

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.

------
jdowner
"The existential pleasures of engineering" by Samuel Florman.

[https://www.goodreads.com/book/show/1203186.The_Existential_...](https://www.goodreads.com/book/show/1203186.The_Existential_Pleasures_of_Engineering)

------
tcfunk
I would suggest "Zen and the Art of Motorcycle Maintenance" by Robert M.
Pirsig.

------
hakejam
"Never Split the Difference" by Chris Voss [https://www.amazon.com/Never-
Split-Difference-Negotiating-De...](https://www.amazon.com/Never-Split-
Difference-Negotiating-Depended-ebook/dp/B018FHCPDO)

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.

------
wyclif
Polanyi's _How to Solve It_.

------
comvidyarthi
I really liked "The Effective Engineer" by Edmond Lau. Its not intended for
starting your own company. But it has some good insight for doing good in your
job and how to grow as a software engineer. [https://www.amazon.com/Effective-
Engineer-Engineering-Dispro...](https://www.amazon.com/Effective-Engineer-
Engineering-Disproportionate-Meaningful/dp/0996128107)

------
indescions_2018
Great suggestions so far. This is really an untapped genre in science fiction.
Post-Internet Literature. Examples that come most readily to mind are things
like Flatland, The Machine Stops, The Last Question, Arrival, and The Three
Body Problem. Perhaps some of the more obscure "recursive" and "ergodic"
fictions such as House of Leaves. But I dare say the great "coding" novel has
yet to be written ;)

------
techmaddy
Soft Skills: The software developer's life manual is a unique guide, offering
techniques and practices for a more satisfying life as a professional software
developer. [https://www.amazon.com/Soft-Skills-software-developers-
manua...](https://www.amazon.com/Soft-Skills-software-developers-
manual/dp/1617292397/)

~~~
ekke
In that section, would like to add recommendations for:

\- "Being Geek: The Software Developer's Career Handbook"
[https://www.amazon.com/Being-Geek-Software-Developers-
Handbo...](https://www.amazon.com/Being-Geek-Software-Developers-
Handbook/dp/0596155409)

\- "Team Geek: A Software Developer's Guide to Working Well with Others"
[http://shop.oreilly.com/product/0636920018025.do](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]

------
enitihas
Two that I particularly liked:

1\. "How to win friends and influence people" \- Dale Carnegie

2\. "The seven habits of highly effective people". - Stephen Levy

------
zackkitzmiller
The Systems Bible

~~~
mgarstecki
Seconded.

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-...](https://www.amazon.com/SYSTEMANTICS-SYSTEMS-BIBLE-John-Gall-
ebook/dp/B00AK1BIDM)

------
dasmoth
It’s got a little bit of tech, but I can’t recommend “The Soul of a New
Machine” (Tracy Kidder) highly enough.

------
gtycomb
A basic book on finance or accounting to help you scan over the Annual Reports
of companies. Their write-up on finance, product strategies, marketing, sales
tactics, pricing, compensation, company valuation, etc can familiarize you
with many aspects of creating a viable company on your own.

------
aphextron
Tractatus Logico-Philosophicus

~~~
majos
Is this serious? I'm hard put to imagine anybody who doesn't get paid to do
philosophy (or at least have regular access to such a person) getting anything
out of this book.

~~~
rwnspace
I think there's plenty useful to meditate on in the Tractatus, 6.0+ has most
of the exciting stuff but it's worth working through to get there.

But at the same time I totally get what you mean.

------
mgraybosch
How about Mary Shelley's _Frankenstein; or, the Modern Prometheus_?

------
ropeadopepope
The SJW Attack Survival Guide.

[http://www.the-niceguy.com/contributors/SurvivalGuide.html](http://www.the-
niceguy.com/contributors/SurvivalGuide.html)

Ask Roberto Rosario why.

~~~
babygoat
The world's worst satire?

~~~
ropeadopepope
Nope. Read it carefully. It could save your career.

------
wilsonnb
Pretty much the same books that are beneficial for non-programmers to read.

------
jrs235
The Principles of Product Development Flow: Second Generation Lean Product
Development [http://amzn.to/2DK6kVP](http://amzn.to/2DK6kVP)

------
binarymax
My top 3:

\- The Mythical Man Month

\- Peopleware

\- Good Strategy Bad Strategy

------
joshka
See also
[https://news.ycombinator.com/item?id=16568949](https://news.ycombinator.com/item?id=16568949)

------
rwmj
Which programming books are _actively harmful_ for developers? I'd put the
"Gang of Four" Design Patterns book in this category.

~~~
poulsbohemian
Peeking at your website, I suspect that the reason you don't like the GoF
book, or perhaps design patterns in general, is that they are aimed at an
audience solving different problems than those in your work. For developers
doing application level development, the GoF book, while a bit dated, is
useful. More generally, this kind of systematic approach ("Where have I seen
this pattern before, and is it applicable to my current problem?") is IMHO, a
good thing, as it brings structure to the thinking process.

------
nunez
Technically not programming. TCP/IP Illustrated by W richard Stevens is a
classic that explains, in great detail, how networking works.

------
microtherion
"Getting to Yes" and "Getting Past No".

"A Pattern Language" by Christopher Alexander.

"The No Asshole Rule".

"How to Lie with Statistics".

------
san_jose
Algorithms to Live By. It's a very good book on how computer ideas work in the
real world, and vice versa.

------
rwnspace
[https://meaningness.com/](https://meaningness.com/)

------
erikerikson
[http://dataintensive.net](http://dataintensive.net)

------
NoB4Mouth
"Tools of Titans" by Tim Ferriss A must-read piece for wannabe achievers like
me

------
gravypod
"the moon is a harsh mistress" and other things by Heinlein

------
jackconnor
Crossing the Chasm, for anyone trying to launch a product or startup.

------
combatentropy
The Elements of Style, 3rd ed., by William Strunk and E. B. White

------
throwaway413
7 Brief Lessons on Physics, Carlo Rovelli

------
andyfleming
Don't Make Me Think by Steve Krug

------
lebanon_tn
Hackers and Painters by pg himself

------
bg4
The Goal by Eliyaho Goldratt

~~~
Jtsummers
Eliyahu (I only realized the typo because I have it sitting right here). I've
read _The Phoenix Project_ which is an IT/software/devops analog of it
(covering the same topics, but for those fields rather than manufacturing as
the focus). I really liked it (the writing was average, but it was a great way
to introduce the concepts), and stumbled across this in our (undocumented, no
one knows what books are there) office library. I've read the first 1/4 and
I'm going to put it on my manager's desk once I'm done.

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.

------
diminoten
"Debugging Teams", helps me understand how to operate as a member of a
software team.

