What are the most interesting, readable software books?

・1 min read

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!

DISCUSSION (77)
 

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

 

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!

 

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

 

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.

 

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

 
 
 

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 😉

 

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

 
 

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.

 

Seconded - The Phoenix Project is amazing. Sound advice and recommendations in a story format.

 
 
 

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.

 

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.

 
 

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

 

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.

 

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

 

I've always had Amazon recommend this to me. Now I've decided to cave in and buy myself a copy!

 

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.

 

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

 
 
 

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.

 

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.

 
 

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

 

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.

 
 

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

 
 

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

 

Bought the third because yes, I do suck at CSS. I want to improve my web development skills in general, mostly so I can get out of my current line of work and into either that or game dev.

 

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.

 
 

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.
 

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.

 

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

 

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.

 

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.

 

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

 
 
 

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.

 

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.

 

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.

 

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

 

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

 

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)

 

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

 

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.

 

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.

 

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

 

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.

 
 

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

 

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

 

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

 

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

 
 

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

 

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

 
 
 

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

 
 

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

 

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.

 

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.

 
 

Discrete mathematics and its applications
Book by Kenneth H. Rosen

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

 
 

ASP.NET design patterns
Web Application Hackers Handbook

Classic DEV Post from Jan 29

CSS and JS Are at War, Here’s How to Stop It

There are a lot of people who love both JS and UX/CSS. If we stop labeling people just as “JS developers” or “UX developers”, we can achieve a ceasefire in the current “JS vs. CSS” war and achieve a mutually benefiting peace.

Ben Halpern
A Canadian software developer who thinks he’s funny.
Join dev.to

Better understand your code.