DEV Community

What are the most interesting, readable software books?

Ben Halpern on August 07, 2017

I'm in the mood for a good read. What books about software development are really well-written and enjoyable at a high level while still technical and informative.

I'm looking more for technical-leaning books as opposed to memoires and stories, etc. But feel free to mention those as well.

Would love some suggestions!

Collapse
 
antjanus profile image
Antonin J. (they/them) • Edited

Here is the usual that I hear about (and have read):

But here is one of my favorites that I don't often see mentioned: Game Programming Patterns - (and an amazon link to the book for print/kindle versions)

Now, I'm not a game dev but this is such a fantastic book to read (the web version is free). Code samples are easy to understand and it goes over the standard patterns that you'll find in libraries like Redux, Angular, or when you do animations, or events, etc. Or Node server stuff.

Even touches on how Prototype works in JS!

Seriously, give it a look and read it!

Collapse
 
galenstevens profile image
Galen Stevens

Yes! Game Programming Patterns by Bob Nystrom is excellent. Great examples and explanations.

Collapse
 
antjanus profile image
Antonin J. (they/them)

It's really well written. Bob has an awesome blog and I remember seeing that he's working on a book that walks you through building a language compiler.

Collapse
 
kusa profile image
Kevin Vavelin

Those are the best book in my opinion, I can add algorithm design manual by Steven S. Skiena

Collapse
 
deen_john profile image
Deen John

I am going to buy "Game Programming patterns"

Collapse
 
arne_mertz profile image
Arne Mertz • Edited

I second that. For all of the three.

Collapse
 
vaidehijoshi profile image
Vaidehi Joshi

Code Complete is hands-down, just an amazing book. I love anything by Sandi Metz as well, as well as Ruby Under a Microscope.

Maybe someday I'll add my own title to this list 😉

Collapse
 
stefandorresteijn profile image
Stefan Dorresteijn

Came here to advice "99 bottles of OOP" by Sandi Metz, she's incredible.

Collapse
 
ben profile image
Ben Halpern

Put me down for a pre-pre-order.

Collapse
 
theodesp profile image
Theofanis Despoudis

I've just recently read and can recommend:
Coders at work: Amazing insights from the worlds top Programmers. You need to read this.

Release It!: A pragmatic realization of how to ship production ready software and what are the dangers of doing it so. Realy good Read.

I'm currently reading:
The Phoenix Project: A good read that exposes stories and hard lessons about IT.

Team Geek: I've been recommended to read this. So far its good.

Collapse
 
monknomo profile image
Gunnar Gissel

I liked Release It! too

Collapse
 
ben profile image
Ben Halpern

I think coders at work might be my next read.

Collapse
 
edaenas profile image
Edaena Salinas

Head first design patterns
shop.oreilly.com/product/978059600...

Collapse
 
ben profile image
Ben Halpern

This cover is straight out of the 90s. I love it 😂

Collapse
 
mattlancaster81 profile image
Matt Lancaster

Anything 'Head First' is done well and is actually FUN to read. I used the Head First Java book to get started up with the language in 2006. Now, these may not be the most in depth books but the way they teach, I love.

Collapse
 
monknomo profile image
Gunnar Gissel

I second this, I like their pedagogical technique. I feel like it helps me learn better than the more standard format

Collapse
 
jjude profile image
Joseph Jude

Let me show my age by recommending, The Mythical Man Month. It is comparatively shorter book written more than 20 years back. The ideas in them are still valid.

We still add people to late project thinking it will somehow rescue the project. And we still look for the silver bullet. We still suffer from lack of effective communication between team-members.

Go read this short book. You will benefit immensely.

Collapse
 
dwd profile image
Dave Cridland

So glad someone else recommended this. But yeah, the last edition is 20 years old, and it's the 20-year anniversary edition... The first edition was published in 1975 originally, and some of the essays are a few years older.

Sometimes I think we forget how old our craft actually is.

Collapse
 
charlyn profile image
Charlyn Gonda

If you know a bit of Ruby, you might be interested in one of its most unique aspects: Metaprogramming Ruby by Paolo Perrotta is very engaging read. I really enjoyed trying out the fascinating concepts for myself.

Collapse
 
ben profile image
Ben Halpern

Nice. I write in Ruby but my metaprogramming toolset is pretty limited. Will definitely give this a look.

Collapse
 
deen_john profile image
Deen John

Grokking Algorithms:
amazon.com/Grokking-Algorithms-ill...

Grokking Algorithms teach you not just a difficult topic but how to explain the same stuff to others

Collapse
 
samipietikainen profile image
Sami Pietikäinen

I would add Working Effectively with Legacy Code to these recommendations.

Collapse
 
blakebarnes00 profile image
Blake Barnes

I just recently started to tread Code by Charles Petzold and it seems really interesting. It isn't entirely about software but so far it does help me understand how a lot of things work with a computer.

Collapse
 
chrisnelsonpe_10 profile image
Chris Nelson

I haven't reread it in a while but I've long held that Software Tools is one of the all-time best books on software engineering.

Collapse
 
ben profile image
Ben Halpern

Awesome, thanks!

Collapse
 
chrisnelsonpe_10 profile image
Chris Nelson

I list a few more favorites on my blog.

Collapse
 
deen_john profile image
Deen John • Edited

Javascript books :

1) Professional JavaScript for Web Developers
most comprehensive yet readable JS book.
2) Secrets of the JavaScript Ninja

3) You Don't Know JS: Scope & Closures
If you think you know JS? prepare to be humbled

3) HTML and CSS: Design and Build Websites - by Jon Duckett
because most dev suck at CSS and this book is a great source to learn
4) Javascript Allonge
Taught me new ways to think in Javascript

Collapse
 
aketekt profile image
aketekt

I second that:You Don't Know JS is awesome and free on github github.com/getify/You-Dont-Know-JS

Collapse
 
deen_john profile image
Deen John

yeah, the full "You Don't Know JS" is awesome and completely free on GitHub.

Collapse
 
peterj profile image
Peter Jausovec

I guess this one is a classic: Code Complete.

Recently, I also enjoyed this one: Hello Startup: A Programmer's Guide to Building Products, Technologies, and Teams

Collapse
 
marshallformula profile image
Nate Gibbons

Professor Frisby's Mostly Adequate Guide to Functional Programming

This is what made me finally start to understand Functional Programming

Collapse
 
amattsmith profile image
Matt Smith

Devops 2.X toolkit by Victor Farcic.
leanpub.com/b/thedevopstoolkitseri...

These hit a sweetspot for me. Each of my colleagues that took the advice to check them out came away with nothing but good things to say.

Collapse
 
ben profile image
Ben Halpern

On the topic of more memoire-leaning but still filled with interesting insights, I enjoyed Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web by Tim Berners-Lee

Collapse
 
johnlukeg profile image
John Luke Garofalo

There are a few that I highly recommend that were already mentioned. One that I'm finishing up which has won me over is Algorithms To Live By by Brian Christian and Tom Griffiths. It takes a lot of the complex theory of computer science into super easy to understand overview and application in your real life.

Some example of a few of the topics they speak about:

  • Processor Scheduling Theory ~> How to optimize your daily scheduling for maximum efficiency.
  • Various Sorting Algorithms ~> Every day we are constantly sorting & searching from folding laundry to choosing your wedding seat arrangement.
  • Optimal Stopping Problems ~> How long is long enough when searching for an apartment or a spouse or a winning slot maching? Computer Science theory says it's around 33%.
  • Network Packet Switching Theory ~> Humans communicate like buffers and with the dawn of the packet switching paradigm in networks, our society has evolved to buffer things just like our text messages or emails.
Collapse
 
monknomo profile image
Gunnar Gissel

I've recently enjoyed The Manager's Path and The Tangled Web

Collapse
 
leslie profile image
leslie burugu • Edited

I would recommend CODE:The Hidden Language of Computer Hardware and Software. It's not really about programming or software development but more about the elementary building blocks of computers and electronics and he explains them in a really clear and straightforward manner.Here is a great review on the book.

Collapse
 
adisesha profile image
Adi

Everyone, who wants to get into coding, should read this first.

Collapse
 
dstull profile image
Doug Stull

this one really opens your eyes as a Gang of Four version for ruby:

Design Patterns in Ruby

I'd suggest that it is not for beginners though.

Collapse
 
ennor profile image
Enno Rehling (恩諾) • Edited

C++ Coding Standards, Sutter and Alexandrescu. Save yourself the trouble of writing your own standard, just get everybody on the team one of these books.

Working Effectively with Legacy Code, Michael C. Feathers. Despite the title, this is a book about testing, and every programmer should read it.

The Pragmatic Programmer: From Journeyman to Master, Hunt and Thomas. This is, more than the previous two books, a fun read, with a lot of good advice in all areas of the craft.

Collapse
 
andym profile image
andym

The Imposters Handbook looks like a great way to revise/learn useful parts of Computer Science. I've not read it yet, but it's On The List.

Collapse
 
zac_heisey profile image
Zac Heisey
Collapse
 
ben profile image
Ben Halpern

Wow, that does look really well-crafted from the pictures on that page. I don't feel like I need to dive into jQuery but I might pick it up simply for reading-UX inspiration.

Collapse
 
zac_heisey profile image
Zac Heisey

Yea, it's definitely geared more towards entry-level front end devs. What I really like are the diagrams and code examples - they make it really easy to understand basic JS concepts. There are also interactive lessons that you can follow online that accompany the book as well, making it that much more useful.

Collapse
 
ste profile image
Ste

This one million times!!

Collapse
 
arj profile image
arj • Edited

I actually love "Becoming a Better Programmer" by Pete Goodliffe.

It covers style of code but also how to think as a programmer in a team and how to change your life. It is quite a stretch but I think it works out nicely.

Collapse
 
albertogarrido profile image
Alberto Garrido

I'm quite late to the party, since dev.to fb page just reposted it hehe

Currently reading and enjoying the new uncle Bob's clean architecture :) I would recommend it even tho I havent finished it yet

Collapse
 
andreivsays profile image
Andrei V

Martin Fowler's "Refactoring: Improving the Design of Existing Code" - a bit old at this point, but you'll still pick up tips on how to improve your code, no matter what you're writing

Collapse
 
o_a_e profile image
Johannes Zillmann

Double down on that! One of a few books i was able to complete without force ;)

Collapse
 
dwd profile image
Dave Cridland • Edited

Not hardcore programming - which is just as well since it refers a lot to exciting modern techniques like COBOL - but there's no book I can recommend more highly to learn about development management (even including Agile, amazingly) than Fred Brook's Mythical Man Month:

The Mythical Man Month

Collapse
 
adisesha profile image
Adi • Edited

My favs are already listed, adding to them,
Designing Data Intensive Applications.It should have been named 'Designing Distributed Systems'. From storage to processing, all the topics are clear and crisp. References to papers and posts, at the end of each chapter, is gold. Next comes Site Reliability Engineering. Most of the books talk about making perfect dish but this is all about serving it fast with consistent taste, and presentation.

Collapse
 
horstn profile image
horst

for me it is: Lea Verou, CSS SECRETS - Better Solutions to everyday Web Design Problems!

shop.oreilly.com/product/063692003...

The book itself is produced using only HTML and CSS! It is available in many languages and a joy to read.

Collapse
 
9gtm profile image
4:5GTM • Edited
Collapse
 
katzy687 profile image
Natti Katz

I'm quite enjoying Professor Frisby's Mostly Adequate Guide to Functional Programming.

It's a pretty quick read, but also pretty demystifying of all those complicated sounding functional principles

drboolean.gitbooks.io/mostly-adequ...

Collapse
 
rafaelpadovezi profile image
Rafael • Edited

For JS developers I recommend JavaScript: The good parts

Douglas Crockford has a very nice point of view about JavaScript and what makes javascript good (and what make it bad)

Collapse
 
rpalo profile image
Ryan Palo

Think Python - How to Think Like a Computer Scientist is one of my all-time favorites. Also anything by Green Tea Press, which is run by Allen Downey who is a boss. Great to read even if you know nothing of Python or programming in general.

For the more artistic, The Nature of Code by Daniel Shiffman is awesome. Good if you already know some JavaScript. Daniel is an amazing instructor and has tons of youtube videos to go along with everything else.

Collapse
 
v_vindemiatrix profile image
Vega Vindemiatrix

If Hemingway Wrote JavaScript because it's a fun a read and a unique language book.

Collapse
 
juanitourquiza profile image
juanitourquiza

Excelent books in leanpub.com in many idioma and languages of programming for example leanpub.com/laravel-y-angularjs

Collapse
 
andy profile image
Andy Zhao (he/him) • Edited

I really enjoyed Eloquent Javascript. Going to take a look at it again actually, since we're probably doing more JS stuff soon.

Collapse
 
olkinn profile image
olkinn

I really enjoyed Grokking Algorithms manning.com/books/grokking-algorithms
plus, the author also has an amazing blog adit.io

Collapse
 
cboudereau profile image
Clément Boudereau

Working effectively with legacy code

Collapse
 
decahub profile image
Dan

Head First C, Head First Java & Head First Python.

Collapse
 
deen_john profile image
Deen John • Edited

Head First Java is best for those who think they suck at Java

Collapse
 
deen_john profile image
Deen John • Edited

Discrete mathematics and its applications
Book by Kenneth H. Rosen

Taught me how to link your Math skills to Computer science. easy read

Collapse
 
daveblythe profile image
Dave Blythe (he/him)

Head First Design Patterns : A Brain-Friendly Guide (O'Reilly)
... if you haven't already.

I'm slowly working through it, myself.

shop.oreilly.com/product/978059600...

Collapse
 
exadra37 profile image
Paulo Renato

Write code that writes code with Meta Programming in Elixir:

pragprog.com/book/cmelixir/metapro...

Collapse
 
mattkocaj profile image
matt kocaj

I'd like to submit my own ebook I just launched leanpub.com/agileforteams (free to read online) but more for feedback and review if you guys don't mind.

Collapse
 
pryl profile image
Priyal Kumar

read linuxVoice magazines

Collapse
 
dev3l profile image
Justin L Beall

Pragmatic Thinking and Learning
pragprog.com/book/ahptl/pragmatic-...

Collapse
 
arandilopez profile image
Arandi López

I loved reading Refactoring Ruby Edition

Collapse
 
david_ojeda profile image
David Ojeda

I recommend The DevOps Handbook: how to create world-class agility, reliability, & security in technology organizations. An amazing read for every developer, even if you are not into DevOps.

Collapse
 
mrsacs profile image
Colin

One book that I found very inspirational as a junior dev was "Coder to developer" by Mike Gunderloy. An easy to absorb read.

Collapse
 
himanshub16 profile image
Himanshu Shekhar
Collapse
 
thefinalcountup profile image
Satish

ASP.NET design patterns
Web Application Hackers Handbook