DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on • Updated on

What are your must-read programming books?

Top comments (88)

Collapse
 
mohamed3on profile image
Mohamed Oun

Currently reading Don't Make Me Think by Steve Krug.
It's an excellent book on UX that I think is important for all developers (especially front-end) and designers.

Collapse
 
mariosangiorgio profile image
Mario Sangiorgio

In addition to the many good suggestions already posted I'd recommend Designing Data-Intensive Applications by Martin Kleppmann.

It's very good if you're interested in distributed systems.

Collapse
 
nemrism profile image
Aymeric A

Robert C. Martin
Clean Code: A Handbook of Agile Software Craftsmanship

Collapse
 
adaelxp profile image
Carlos Gant

I fourth that

Collapse
 
thomaswdmelville profile image
Thomas Melville

Here here

Collapse
 
olioskar profile image
Oli Oskar

I second that

Collapse
 
cristian_sima profile image
Cristian Sima

Really good book

Collapse
 
driscollwebdev profile image
Brian Driscoll

I third that.

Collapse
 
jlhcoder profile image
James Hood

Distributed counting is hard. 😜

Collapse
 
nitishdayal profile image
Nitish Dayal

JavaScript:
Essential JavaScript - Solid introduction to JavaScript and common programming principles
Secrets of the JavaScript Ninja, 2nd Edition - Function context, closures, ES6, oh my!
Learning JavaScript Design Patterns - Because fundamentals are good, and you should work on them.

Swift:
The Swift Programming Language (ie: the docs!) - It's literally the docs. That's how conversational the documentation for Swift is; they took it and put it in a book and it actually reads like one. 10/10 pretty much my only resource for learning Swift.

Python:
Learn Python The Hard Way - It's. Uh. Amazing.
Learning Django Web Development - Django documentation is great tbh, but it can be a little overwhelming given how deep every section goes. This book is a solid way to gain clarity on some of the verbose sections in the documentation.

Collapse
 
kardonice profile image
shitpost_​​​​​​​bot

"Learn Python the Hard Way" teaches you all the wrong lessons in the wrong way. I learned using those books, and unfortunately had to relearn most of the lessons taught to me from that and "Learn C The Hard Way". Try "Dive Into Python".

Collapse
 
rxhl profile image
Rahul Sharma

I second that. Learn Python The Hard Way introduces a lot of noise and unnecessary stuff which you might never use in the future. Also, the examples are boorish and make no sense.

Collapse
 
ben profile image
Ben Halpern

Great list 👏

Collapse
 
nitishdayal profile image
Nitish Dayal

Written in order of recommendation per topic. Eloquent JS is a great lead-in into SotJS (which has become my favorite JS book), and once you've got a firm grasp on those core concepts understanding the various implementations of modules and stuff is covered pretty well in Learning JavaScript Design Patterns. Swift docs genuinely are as awesome as I hype them up to be.

Python, if Learn Python the Hard Way is too much, 'Automate the Boring Stuff w/ Python' is more interactive.

Collapse
 
driscollwebdev profile image
Brian Driscoll

Definitely all of the following:

  1. Clean Code by Robert Martin
  2. Design Patterns Explained by Shalloway and Trott
  3. Joel on Software by Joel Spolsky

My "good to read" list includes:

  1. Working Effectively with Legacy Code by Michael Feathers
  2. More Joel on Software by Joel Spolsky
  3. Smart and Gets Things Done by Joel Spolsky
  4. Design of Everyday Things by Donald Norman
  5. Return on Software by Steve Tockey
Collapse
 
grmpyprogrammer profile image
Chris Hartjes

I am on my second, dog-eared copy of The Pragmatic Programmer by Andrew Hunt and David Thomas. Cannot recommend this book enough as a blueprint for your minimal skills base

Collapse
 
claudiordgz profile image
Claudio Rodriguez

This one is great for any developer

Collapse
 
thisfred profile image
eric casteleijn

TDD by Example, by Kent Beck. This is the one programming book I go back to every few years, and even though it's not a huge book, I always come away with something new.

Refactoring, by Martin Fowler. Though I don't revisit this one quite as often (except maybe to look up one of the less common recipes, I think it's still a book ever programmer should read at least once.)

Collapse
 
cristian_sima profile image
Cristian Sima

Both of them are excelent pieces.

Collapse
 
mohamed3on profile image
Mohamed Oun

Definitely The Pragmatic Programmer. So many priceless tips.

Collapse
 
thomaswdmelville profile image
Thomas Melville

Just finished reading it and I know I'll be going back to it periodically.
So many useful tips!

Collapse
 
netanelravid profile image
Netanel Ravid

Second to recommend it, what a great book!

Collapse
 
rapidnerd profile image
George • Edited

Got quiet a few

1: Learning Java (Patrick Niemeyer& Jonathan Knudsen)
2: Clean Code (Robert C. Martin)
3: Java Pocket Guide (Robert Liguori & Patricia Liguori)
4: Elements of Programming (Alexander A. Stepanov, Paul McJones · Addison-Wesley)
5: Debian GNU/Linux (Heike Jurzik · Rheinwerk Verlag GmbH)
6: Linux Bible (Christoper Negus)

Collapse
 
simplymanas profile image
Manas Ranjan Dash • Edited

I wrote this blog on my #must-read list

medium.com/@simplymanas/books-for-...

  • Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin) Code Complete Paperback by Steve
  • Refactoring: Improving the Design of Existing Code by Martin Fowler (Author), Kent Beck (Author), John Brant (Author), William Opdyke (Author), Don Roberts (Author)
  • Test Driven Development: By Example By Kent Beck
  • The Art of Unit Testing: with examples in C# by Roy Osherove
  • Design Patterns: Elements Of Reusable Object-Oriented Software by Gamma
  • Patterns of Enterprise Application Architecture By Martin Fowler
  • The Pragmatic Programmer By Hunt
  • Microsoft.NET Architecting Applications for the Enterprise 2 by Dino Esposito and Andrea Saltarello
  • Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation (Addison-Wesley Signature Series)
  • RESTful Web APIs By Leonard Richardson and Mike Amundsen with Foreword by Sam Ruby
  • Adaptive Code via C#: Agile coding with design patterns and SOLID principles
  • Effective Java (2nd Edition) Paperback — by Joshua Bloch (Author)