Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Name 3-5 books that had the most impact on your career and knowledge?
254 points by dondraper36 on Sept 19, 2022 | hide | past | favorite | 86 comments
Even though there are literally thousands of books on software engineering, not many are really useful or career changing. That said, let's try and name the books that you consider to be important in your career, how you understand the field, your current skills and depth of knowledge.

Let me start:

1. Designing Data Intensive Applications

This book doesn't need any additional praise, but it's just brilliant how it manages to be both highly technical and very readable (and even capturing).

2. The Pragmatic Programmer

I wish I had read it years ago. It reads like a great conversation with an incredibly experienced friend of yours

3. Philosophy of Software Design

It's debatable whether this book is the better replacement for Clean Code, but I really like how nuanced and undogmatic it is.

It goes without saying that with such books it's often the case that you revisit some parts or delay until you have a usecase that includes the topic discussed in the book. This is especially true for DDIA.

What are your top 3-5? Please, also add your brief comments on how exactly this book changed you :)




1. Leaders Eat Last Deluxe: Why Some Teams Pull Together and Others Don't

We gave this to every employee at the business, as it models the type of culture and leaders we wanted to grow. For me personally, it put down on paper what I had been trying to do for years. It was something I reread often to try to improve my manager/leadership skills. This type of thinking helped me become a better CEO (it wasn't instant).

2. Playing to Win: How Strategy Really Works

Great books on tactics and strategy; it helped me improve why we did things and created a much better approach to problems.

3. 4. Lean B2B: Build Products Businesses Want and The Lean Product Playbook: How to Innovate with Minimum Viable Products and Rapid Customer Feedback

Totally changed how I approach building solutions and testing ideas. I learn how to do customer dev interviews and go from learning to testing what problems I am hearing and so on. I’ve flipped through each of them 50+ times as I construct the next interview or so on. I particularly like the Product Playbooks method to evaluate different problems and the value individuals put on them. They have been helpful as I’ve started to learn, and I’ve got a long way to go.

I wish I had these 10 years previous; it would have saved a lot of money.


= Out of the Crisis by Deming.

Everyone ought to read and absorb Deming. It's hands-down the most life-changing read I've ever come across, by a wide margin.

Dealing with life statistically rather than overreacting to randomness means it's possible to achieve much higher levels of effeciveness and productivity. Working with people to unleash their inner motivation is vastly superior to trying to carrot-and-whip them around.

Understanding that a specific process will yield a specific outcome, whatever outcome you wish for, is how to avoid getting the same result over and over while thinking you ought to see something different because gosh-darned if you aren't trying really hard!!

= Willful Ignorance by Weisberg.

This isn't that good a book, in that it doesn't cover very much content at all, but it really gave me a good intuition for what statistics and probability is about that has helped me understand more advanced things than I was able to before.

Both this book and Deming will take a few years to digest. You'll want to practise it in real life, then come back to read it again, then practise some more. Eventually the lessons will start to stick.

= Performance Modeling and Design of Computer Systems by Mor Halchor-Balter.

Despite the name, this is a book about queueing theory. You know, that branch of statistics that shows up literally everywhere, except nobody seems to understand that it does. I have been dabbling in queueing theory before this book, but the focus this book put on practical applications really made me understand it on a deeper level than before.

= Working Effectively with Legacy Code by Michael Feathers.

I didn't originally want to put this one in this list because it's so predictable, but I can't not. I keep coming back to it and re-reading portions of it every time I have to deal with tricky code. It's just that good at explaining clever ways to get things under test, so they can be worked on with confidence.

= How to Measure Anything by Douglas Hubbard.

What I really take away from this is how powerful it is to be able to estimate ranges that are true 90 % of the time. It's hard to convince others of what a superpower this is, but I hope to work with people who understand that some day.


Also recommend Hubbard's How to Measure Anything. Background in social science & stats, so was familiar with the decision making logic before reading, but think the book is more straight forward than any other reference. (Similar in spirit is Tetlock's Superforecasters, but I think Hubbard will be easier for most people to relate to.)

My other mentions would be Algorithms to Live By (Christian and Griffiths), and Tufte's Visual Display of Quantitative Information (with a follow up of Doumont's Trees, Maps, and Theorems. Tufte I really enjoyed.

Thank you for the Deming reference -- will need to put that and Performance modelling on the list!


I love "Working Effectively with Legacy Code" and recommend it at least once a month to someone working on non-greenfield projects with inadequate documentation and test coverage.


In his later years Deming consulted with Gallery Furniture in Houston, and "Mattress Mac" has been one of the most respectable local entrepreneur/philanthropists for some time now.


Probably not the answer you are looking for but Carnegie's 'How to Win Friends and Influence People'.

So much of our career path is decided on relations more so than deliverables, also self-promotion is key but it doesn't come naturally for everybody.

The idea that I shouldn't self-promote (because somehow it felt like bragging) and that people will notice if I do amazing work but stay silent was probably one of the most negatively impacting inhibitions I had at the beggining of my career. Also the book made me realize how 'utilitarian' and sometimes selfish I was in communication with others.

I had an amazing manager as a Junior who gifted me that book, it really gives you some perspective. We are often selfish listeners and are not committed to acknowledging the other in a 2 way relation. Once you condition yourself not to do that then building relations is way easier, and the space for self-promotion occurs naturally without a feeling of humblebrag.


I’d recommend reading this and then immediately reading Nonviolent Communication by Marshall Rosenberg.

Carnegie opened my eyes to how to communicate productively, but it’s also a really manipulative way of being.

Nonviolent communication comes from a position of love and understanding instead of just getting what you want.

There is significant overlap, but where they differ, NVC is going to lead to better relationships especially with family.


>Carnegie opened my eyes to how to communicate productively, but it’s also a really manipulative way of being.

I find it odd that people keep raving about this book. As you said it is a very manipulative and exploitative way. It is ok if you are just aiming for getting what you want. Instead I find Robert Green's books which callout and does not sugar coat anything.


this interesting! I did make many friends with Carnegie but non of them felt deep or were long lasting. I need to check out NVC


I found Carnegie’s book terrible and impossible to finish. Though his advice (the main idea of each chapter) might be true, his supporting arguments are all purely anecdotal, are of dubious veracity, lacks nuance, and commit the logical fallacy of claiming correctness by bombarding you with examples that only repeat each other.

I’m still looking for a more science-backed book on influence and persuasion and I’m currently looking at Influence + Persuasion from the HBR Emotional Intelligence series. Would be happy to hear about others’ recommendations as well.


I’d like to also recommend Nonviolent Communication.

Like the other reply said: it’s an opportunity to switch one’s mindset from a manipulative one (getting people to… like you/whatever) to a mindset of serving what’s alive in them, and yourself.

It’s an invitation for a deeper alignment with one’s humanity and generates effortless compassion and understanding.

Leading to satisfaction much deeper than the one of getting your way.


1. Never Split the Difference by Chris Voss

From someone who hated negotiation books and didn't want to "win" negotiations, this was a true life changer. Listen with empathy. Find the thing your counterpart really wants. Put them in your shoes by asking how you can do [x thing they're asking]. Fundamental things that have improved my relationships with many people in my life.

2. Radical Candor by Kim Scott

This book helped me understand how to care for someone while still challenging them and asking for their best work. I truly believe that people are happier and more fulfilled when they feel challenged by their work and empowered to rise to that challenge.

3. Building a Story Brand by Donald Miller

Selling anything is about understanding that the buyer is the hero of their own story, and your job is to sell them the tool helps them succeed. The buyer is Luke, you're Obi Wan, and you're selling them the Lightsaber. This has been endlessly applicable working with entrepreneurs.

4. The E-Myth Revisited by Michael Gerber

A seminal text on why small businesses often fail and how they can create systems that work and create ongoing success.

5. Non-violent communication by Marshall Rosenberg

This one literally changed who I am as a person and how I show up for others. Realizing how much judgement is embedded in our language, how often we express that judgement to other people, and how that makes them feel was eye-opening. I strive to both feel and express radical non-judgement, and to listen to and communicate with people in a way that allows them to feel heard and safe.

I have strong, loving relationships with some people in my life that I never would have expected 10 years ago, in part because this book helped me grow.


My background is mainly in BD (tech) and policy (US & international gov) and I've always found business books with the exception of How to Win Friends and Influence People to be incredibly lacking. Instead, some of the most influential books for me have been sci-fi or more in the future prediction category.

1) Stand on Zanzibar: Helped me understand one direction of a potential world unfolding and stands out as incredibly prescient

2) Sovereign Individual: Helped me understand emerging tech trends potential impact on how government/society is organized

3) The Unbearable Lightness of Being: Helped me better understand relationships, human needs, and dealing with impossible choices


1. Data Analysis with Open Source Tools

This learnt me how to analyze "small" datasets which have helped me incredibly in my career. Technology wise is very out of date, but the concepts are still valid.

I think it's hard to get more with less investmtent. Really underrated book.

2. Expert Oracle Database Architecture

If you have to develop on Oracle (something I undestand it's not very popular in HN), you have to read it. It's a great book that delves into the why's and not only into the how's.

3. Software Estimation: Demystifying the Black Art.

Only the "cone of uncertainty" concept would make it a must-read. It provided me a framework for doing estimations and at same time, to worry less about them. It has helped me to divert lots of uncomfortable conversations about "when" towards a much more productive "what-and-why-is-needed".


I bought the Data Analysis book thanks to your post.


I hope you like it!


Baden-Powell's "Scouting for boys", Jack London's "The Call of the Wild", The Commodore 64 Reference Manual... just to name a few. The first one because it lured me to the great outdoors, the second one because it pointed me where to go - I paddled the Yukon from Whitehorse to the Bering Strait with a water- and most likely bulletproof solar-powered "Virgin WebPlayer" and a hat/canoe-mounted camera to record it "all" (the camera was not totally waterproof so it died just before Eagle, the border town between Canada and Alaska...), the third one (which I actually destroyed way before I paddled that river) because it laid bare the soul of the new machine.

For the rest I just read whatever I can get hold of, I don't really have any "cornerstone books" - probably because I've seen too many of them rise to fame to later decline when the fad they promoted got out of fashion...


As a self taught developer there are only a few books I read early in my career that seriously impacted how I write code.

1. XML Schema by Priscilla Walmsley - https://www.amazon.com/Definitive-XML-Schema-Priscilla-Walms...

2. DOM Scripting by Jeremy Keith - https://www.amazon.com/DOM-Scripting-Design-JavaScript-Docum...

3. CSS Pocket Reference - Eric Meyer - https://www.amazon.com/CSS-Pocket-Reference-Visual-Presentat...

Most of the developers I have worked with in my career are absolutely terrified by tree structures. They will admit otherwise like some kind of pathological liar, but this is easily exposed and that's so unfortunate. A tree structure is just a data structure like any other and embracing that liberates you from a kind of Stockholm Syndrome.


Oh yeah, have to dig back the to heyday of O'Reilley. I think Webmaster in a Nutshell and Learning Perl were the ones I loved most dearly.


1. Release it

Got me to start thinking about reliability and able to express my thoughts on it.

2. Design of Everyday things

Read it as a junior and it got me thinking about UX and putting the user first.

3. The Pragmatic Programmer

Another one I read as a junior that had some really interesting ideas in it. Along with Release it! it gave me the language to talk about the ideas as well.

Thinking about this now, I’m keen to give the Design of Everyday Things a read. I now work in a different area and it’d be interesting putting it in that light.


The single most important programmer's book that I have ever read is the UNIX Programming Environment by Kernighan and Pike.

I read this as a teenager in the late 80's and it was an epiphany for me to discover what was possible to do with rather simple tools.


To be fair, I don't think 3-5 books suffice at all. So from the point of view of adding books no-one else has mentioned, from the point of view of C++ Software Engineer, a few of my favourites:

Code Complete 2 - McConnel

Professional Software Development - McConnel

Structure and Interpretation of Computer Programs (SICP) - Sussmann et all. (main artifact: Implement the scheme interpreter, not in Scheme, but in a language of your choice)

Algorithm Design Manual - Skiena

The Timeless Way Of Building - Alexander. Software patterns often refer this book, but the concepts used in software patterns generally are far more pedestrian in scope than Alexanders timeless vision for quality in architecture. Goes really well with this older book Notes On The Synthesis of Form.


Focused on systems and design for backend devs:

1. High Performance Browser Networking

2. Designing Data-Intensive Applications

3. Site Reliability Engineering: How Google Runs Production Services

4. Effective Python: 90 Specific Ways to Write Better Python

I wrote in a bit more detail here: https://notes.eatonphil.com/books-developers-should-read.htm....

Personally I would definitely not put Pragmatic Programmer, Clean Code or Philosophy of Software Design on the list (of required reading). I think they're good but not great. But whatever you enjoy reading is awesome! Everyone should read more. :)


Have you seen the book "Web Scalability for Startup Engineers"? I think it's also good for system design. Definitely not as deep as DDIA, but I would say it's a decent prerequisite :)


Nope, I haven't seen it!


"Peopleware"

https://en.m.wikipedia.org/wiki/Peopleware:_Productive_Proje...

We are still making the same mistakes managing software projects and teams 30 years later.


Looking at construction projects, making the mistakes seems a millennia-old tradition at this point.


* The C Programming Language. 2nd Edition. nuff said.

* Learn C++ in 21 days. May seem strange from the title, but this was the book that helped me really grok OO design. It's examples about mammals horses dogs and unicorns (!) have stick to me for ever.

* Digital Computers (this is a greek-only book, publish date was 1979 or something): We had this book for a course at our first year on the University. It introduced everything from transistors to logical gates to flip flops, to more complex circuts to a complete (teaching) ALU to writing ASM for that ALU. Understand everything was a revalation to me.


My dad gave me a copy of K&R when I was a senior in high school and that was quite the spiral into developing my love for computers even more. A true classic.


I had just graduated high school and was really into economics/finance and I wanted to automate some Forex trading.

K&R and Unix Programming we’re two of the few books in my local library that were about programming. My hacker career/life started with reading page one of K&R. I never looked back.


Exploring Requirements: Quality Before Design, Gause+Weinberg

This book introduced me to the questions I should have been asking before starting to write software and helped me make a lot more money by impressing people with those questions.

Included in the book are context-free and meta-questions which are useful in all sorts of arenas.

By forcing me to become immersed in separation between functional and non-functional requirements, I began to understand the importance of the non-functional requirements (software quality attributes) and have since found that it is a useful distinction in the pursuit of living well.


1. Fundamentals of Physics by Halliday, Resnick, Walker

2. Quantum Mechanics by Eisberg, Resnick

3. Mathematical Physics by Arfken, Weber, Harris

4. Introduction to Statistical Learning with R by Hastie et al.

5. Deep Learning for Coders by Jeremy Howard


I want to self-learn physics from scratch. I have a degree in mathematics, but my understanding of physics is embarrasingly shallow.

Is Fundamentals of Physics by Halliday et al a good starting point for me?


I am a mathematician, too and trying to learn physics in my spare time. I don't like the 1000 pages tomes targeted for undergraduates, the Halliday book is well-liked, but since you already have a degree in mathematics, you may get a bit bored.

I like the No-Nonsense Series by Jakob Schwichtenberg a lot. I worked through the Classical Mechanics book already and found that it teaches the conceptual framework very nicely. I plan to go through the Electrodynamics and Quantum Mechanics books in the series and then work through some other books with exercises (there are no exercises in the Schwichtenberg books, which usually is a no-go for me, but I am reading them to get the concepts in an uncluttered fashion.).

The best classical mechanics book IMO is the one by John R. Taylor, I have worked through 2/3 of it with nearly all exercises years ago, I can heartily recommend it.

For Electrodynamics I would recommend the book by Griffiths and for QM there is a very promising new book by Barton Zwiebach which has been created based on a course he is giving at MIT.

I wish you good luck with your learning journey!


Thank you! I'll make sure to check these out first.


You should look at Susan Rigetti's post - https://www.susanrigetti.com/physics


Aha, it looks like we have similar objectives.

I'd like to understand General Relativity, and do not care about Quantum Physics. I have found this post to be helpful. Hopefully it can help you to some degree, too.

https://physics.stackexchange.com/questions/14074/what-are-t...


I would start with the Leonard Susskind Theoretical Minimum series (books and YouTube Videos) and then see if you need to try other texts.

https://en.m.wikipedia.org/wiki/The_Theoretical_Minimum


> Deep Learning for Coders by Jeremy Howard

Can you discuss a bit more on this choice?


Thinking in Systems by D. H. Meadows

The Secrets of Consulting by J. W. Weinberg

Understanding SEO by F. Enzenhofer (wrote it myself, changed a lot for me)


Hehe nice self promotion


It's technically the truth, though :D - It's a book. - Had impact on the commenter's life


TRS-80 Color Computer Assembly Language Programming - Learned assembly as a teenager and there's no better foundation for knowing how a computer works. Love to shake the author's hand for that one - right book at the right time in my life, and surprisingly well written for something you could pick up at a Radio Shack.

Borland's Turbo Pascal 5.5 Object Oriented Programming Guide - explained object-oriented programming in a way that I could immediately get it even at a young age. TBH I'm not sure I've ever read a better and clearer explanation.

Distributed Programming in Argus, by Barbara Liskov - interesting academic language that found a way to merge a lot of disparate concepts including object oriented computing, distributed computing, and transactions. Good foundation for when I learned Elixir / Erlang OTP.

Peter Drucker, Larry Prusak, and Bruce Kogut are a few thinkers and professors that showed me how to see organizations as repositories of knowledge and human connections rather than collections of financial assets and strategic capabilities. (The customary view taught in business school.) Anything they write is worth reading, but Working Knowledge is a fine place to start.

(Tried to pick some interesting ones for you folks.)


I absolutely concur on the Turbo Pascal 5.5 book. It might sound absurd so I just had to add a voice to support this reality. It's been over 30 years but I really can't think of any writing about OOP or a specific language that was so... effective.

But I guess it shouldn't be so surprising. Turbo Pascal was kind of a well-spring of excellence in its time.


1. Amiga Assembly Language Programming (1987) - The book that tore me away from the Commodore BASIC I learned on my PET 2001 in 1978.

2. The Architecture of Symbolic Computers - (1991) - I didn't read this until the 2000s, but boy, what a book! It's about Lisp and Lisp Machines, but it covers everything that is still applicable to computers. A great example of a dense, readable textbook compared to all the fluff written nowadays with too many pictures and repeated explanations.

3. The C Programming Language, 2nd Edition - you know what I am talking about!

4. Genetic Programming (1992)- John Koza - Really got me into early machine learning and more into LISP!

5. The Handbook of Neuroevolution Through Erlang (2013) - Gene Sher - Great intro to ANNs in general, and Erlang even if you don't program in Erlang or want to!

Honorable mentions:

A. The Book of Shen - Mark Tarver - It's a LISP, but the history of computing and Lambda Calculus is nice, and Shen is an amazing language.

B. Building High Integrity Applications with SPARK 1st Edition - Great intro to SPARK, and Ada subset, used in the book for the CubeSAT program at VTC (Vermont Technical College).


* Beyond Java, by Bruce Tate

Convinced me to leave Java and start doing Ruby instead. Did a lot more programming languages since then.

* Javascript the Good Parts, by Douglas Crockford

Taught me how to write better js. Of course since then the language has changed so much that this little booklet is completely obsolete, but for a brief period, this book was absolutely essential.

It's hard to single out a third book. No other books come close to these two. Most books are too thick and wordy and boring, and I'm not a fast reader. I'd love to list one of the books about design patterns here, but I never finished any of them, so I think I'm going with:

* Beginning Scala

I haven't actually done any big projects in Scala, but it was captivating, showed me how beautiful a programming language could be (but also how ugly, in later chapters), and changed how I think about programming languages. I still regret never having actually begun anything in Scala, although I still fear the complexity of its type system. The world needs a cleaner Scala.


> * Beyond Java, by Bruce Tate

> Convinced me to leave Java and start doing Ruby instead. Did a lot more programming languages since then.

So you did not like the book?


Of course I did. It convinced me to move beyond java.


* Getting Real, by 37signals: Gave me confidence to side-step a lot of the bs I saw in software development practice

* The Mythical Man-Month, Fred Brooks: Provided an argument against inexperienced managers who errantly assert that they need more developers to get projects done quicker; perhaps more importantly, it gives as a model for a programming team with a "chief programmer" to whom these managers need to report

* The Timeless Way of Building, Christopher Alexander: Taught me the original (perhaps better) concept of design patterns, which helped in talking to colleagues about the parts of software we build and reuse

* JavaScript: the Good Parts, Douglas Crockford: Led me to a solid understanding of how to make good use a crummy scripting language that was only really meant to glue DOM behavior to Java applets


Maybe not what the OP wanted to read but the book(s) that have had the most lasting impact on my career these past few years were some of Ellul's books, such as Le bluff technologique [1], which book builds on his entire career of writing about tech's effects on our life and our modern society.

It has "disenchanted" a lot of the tech-related stuff for me, and it has disenchanted most of our industry, for that matter (I'm a computer programmer, forgot to mention that). Still doing my small thing, getting my salary doing honest work, work which, hopefully, doesn't send anyone to prison nor enables some genocide half-away around the globe, so there's that.

[1] https://www.amazon.com/le-bluff-technologique/dp/2818502276


inky black pill, not for the faint of heart or casually happy


1. The Millionaire Next Door - I read this as a kid and took away the importance of owning your own business and living below your means.

2. The Good Earth - Another book that I read as a kid that I think about often…specifically about the choices the family makes as their fortune rises and falls.

3. Running Lean: Iterate from Plan A to a Plan That Works - I like the 1 page canvas for capturing assumptions and the product & solution interviews.

More recently, I read Four Thousand Weeks: Time Management for Mortals. I wonder if the central message of this book (“you can’t do it all & how to embrace that”) will stick with me.


1. Pragmatic Programmer Many pearls of wisdom about the development process 2. The C Programming Language Established the foundation for my early career 3. The Mythical Man-Month Gave names to problems I'd experienced in my career. 4. Accelerate Taught me the metrics and means of improving the software delivery process 5. Refactoring Defined and named patterns for improving a codebase There are others that could fit into a top 5 depending on what I'm working on at the time, (Gang of Four, Programming Pearls to name a couple).


I have been in technical content creation world, so Definitely 1) Design Data intensive apps - my go to book all the time for the basics. 2) System design interviews - whenever I need to borrow the idea on how a specific system is designed and 3) ALWAYS BE QUALIFYING: MEDDIC - the foundation book for sales that I recommend everyone to take a look, especially people in tech. It opens a different perspective on how the business side are thinking. And a lot of the concepts can be applied to work even I am not in sales.


- The Pragmatic Programmer - helped me see some common pitfalls and figure out how to avoid them. Also gave me some good language for working with others.

- Coders at Work - hearing how some very experienced people thought about software was perspective altering for me in a good way.

- Things a Computer Scientist Rarely Talks about - Knuth has a depth to him and his thinking that freed me to have depth in my own thinking. While not strictly a software engineering book, the integration of all areas of life was and is inspiring.


Software Engineering Risk Analysis and Management by Charette. This unlocked the meaning of "risk" for mme and how it applies to engineering and systems.

VAX/VMS Internals and Data Structures by Kenah. Not that anyone cares anymore but this provides a distinctively different description of operating system internals. Very different from Linux. Explains what goes on behind system calls; process creation; file systems and so on.

Structured Programming by Djikstra. Up there with K&R.

System Engineering Management by Blanchard. This introduces you to system lifecycles of very very large systems (pre-Google/pre-Meta). And how to manage the people building them and manage the engineering. Relatively hard to read; the NASA System Engineering Handbook or matching European references are easier reads.

C/C++ Users Journal (magazine subscription). Seeing a wide variety of programming styles, approaches to solving problems, and approaches to describing the solutions.

Various SQL language guides. Knowing SQL helps organize my problem solving even if a "database" is not part of the solution. "The" classic declarative language.

Other books already mentioned here: Mythical Man-Month; Visual Display of Quantitative Information.


Never Split the Difference by Christopher Voss and Tahl Raz


Accelerate (Forsgren, Humble, Kim) gave me a way to quantify results and talk to execs about how a development org is performing, something I always found difficult before.

Domain Modeling Made Functional (Wlaschin) provided me with concepts and techniques that I've used practically every day since I read it, especially functional design patterns and DDD/CQRS without the jargon.


* Godel Escher Bach

An ambitious work that's hard to describe, Douglas Hofstadter weaves history, maths, geometry, music, fictional Socratic dialogue and a hell of a lot of recursion into a investigation of Godel's infamous paradox at the heart of mathematics. I read it as an undergraduate and it was mind blowing at the time.

* The Poignant Guide To Ruby

A weird and captivating journey that I found in my early years as a programmer. Though I never actually wrote much Ruby in the end.

* Modern Operating Systems by Tanenbaum/Bos

The most normal textbook. It's a doorstopper that covers a lot. I just liked it for some reason (I loved the course too) and I've kept it around.

Many more that I'm sure I've forgotten.


The Mythical Man Month - important lessons for any developer

Bird by Bird: Some Instructions on Writing and Life - A really good read on how to write which is applicable to everyone who needs to communicate well

Producing Open Source Software - This is such an in depth book into everything you need to consider when working “in public”


The Mythical Man Month by Fred Brooks

Professional SQL Server 2000 Programming by Robert Vieira

Programming BASIC for Tandy Computers by David A. Lien


Ross Anderson's Security Engineering.

More than any other title on my bookshelf, it has affected the way I think about any product design process.

Things WILL go wrong, sometimes in ways you did not expect. Hence, you had better plan for systems to fail gracefully rather than by going kaboom.

(I design handling systems in the low megawatt range - so design failures tend to make themselves painfully and spectacularly evident if given half a chance.)

Edit: Oh, and Horowitz & Hill's 'The Art of Electronics.' I've a MSc in electronics, but AoE was the book which bridged the gap between all the theory we were fed in lectures and the nitty-gritty of actually making something which would work.

If nothing else, AoE drove home the validity of the old truism 'In theory there's no difference between theory and practice, in practice there is.'


1. An anonymous poaster in an image board who was very very passionate about SWE to such a degree it made me passionate about it too.

2. https://www.tedinski.com/archive/


Is 1 a reference to the /prog/ poster?

If so, his functionalCS syllabus is some of the best content online.


Can you provide a link to the syllabus?


functionalcs.github.io/curriculum/


Yeah, haha.


1. Effective Java. The mentality/no-nonsense approach more than anything...the language itself not my favorite these days.

2. Headfirst Java. A stepping stone book like above, but it was very helpful in progressing from "here are variables and control statements" to here are the wide range of things a language can do in the later sections.

3. TCP/IP Illustrated. I never really saw the use in pulling back the curtain of some these lower level details in most modern development, but having pulled it back I can say it is absolutely useful/enlightening/worthwhile.

4. The Haskell Road to Logic. Educational exploring some math and logic through the lens of a programming language.


In my case it was not a book, it was a magazine, MSX Club. When I was very young, without knowing any English, without internet or any kind of books, I learned to program by copying the Basic code that appeared in the magazine.


"Adaptive Web Design" by Gustafson. This is how the Web _should_ be made.

The Network one by Ilya Gregorik. There's just not a lot of other material that covers this and certainly not this thoroughly. This one is probably responsible for me "looking smart in front of others" more than any other book on the list.

"100 things every designer should know about people" by Weinschenk (sp?). Actually I take it back: _this_ is the most "look smarter than everyone" book you can read if you work anywhere around the web. Especially if you have to argue with designers.

I have a few more, but I'd start with those.


> The Network one by Ilya Gregorik. There's just not a lot of other material that covers this and certainly not this thoroughly. This one is probably responsible for me "looking smart in front of others" more than any other book on the list.

This one https://hpbn.co/ ?


- The BASIC book that came with my TI-83+ calculator

All the essentials of programming

- The C Programming Language

The book to start getting serious

- Mathematics for 3D Game Programming & Computer Graphics

The book that finally helped me understand the university math I had never managed to grasp


“Design Patterns” showed to me that there is a way to build software in a systematic way.

“Only the paranoid survive” taught me the need to constantly staying up to date.


Not books on Software engineering, but since you asked for most impact:

* Limits to Growth (Meadows, Meadows & Randers)

* Sustainable Energy: Without the hot air (David MacKay) Available here: https://www.withouthotair.com/

* Sitopia (Carolyn Steel)


1. Head first design patterns

2. Javascript - The good parts


For me it was "Teach yourself...Assembler" - not because it was a great book or anything, but it was the first book I purchased to learn actual programming.

I don't think I even finished the book. (assembler is tedious and hard!) But it began a lifelong love of computers and software.


The Selfish Gene by Richard Dawkins changed my whole outlook when it revealed that cheating and stealing will inevitably happen in any complex system and is not a question of morality but a question of optimal allocation of resources.


1. Founders at Work

2. Structure of Scientific Revolutions

3. The Myth of Sisyphus

4. How to Win Friends and Influence People

5. Design of Everyday Things


The Art of the Long View - Peter Schwartz

Any book by Tom Kyte.

Pragmatic Thinking and Learning: Refactor Your Wetware - Andy Hunt

The Media Lab: Inventing the Future at M.I.T. - Stewart Brand

Extraordinary Popular Delusions and the Madness of Crowds - Charles Mackay

Only the Paranoid Survive - Andy Grove


I would say the technical books can be important (esp. higher level ones, like DDIA), but the bigger impact can be getting more perspective on the business or product side.

1. Lean startup - Eric Ries

2. Inspired - Marty Cagan

3. Sprint - Jake Knapp

4. Creativity inc. - Ed Catmull

5. Range - David Epstein


The Real Book - Great for learning jazz standards and how to read music.


Loudspeakers, Gilbert Briggs The Feynman Lectures, Richard Feynman, et al. Introductory Special Relativity, W G V Rosser


1. Atlas Shrugged - made me understand the complex relationship between politics and the business world

2. The Code Book - gave me a great appreciation for cryptography and its historical importance

3. The Swerve - made me understand how the renaissance came to be and also showed me what great writing and unique research can accomplish


The Big Book because one's own worst enemy is one's self.

The Big Book because addiction can kill.

The Big Book because so many people just don't get how self-destruction looks.


1. Getting Real

2. Hackers and Painters

3. Zero to One

4. The Intelligent Investor


Antipatterns

SICP

Sedgewick Algorithms




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: