DEV Community

Ben Halpern
Ben Halpern

Posted on • Updated on

What are your must-read programming books?

Oldest comments (88)

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
 
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
 
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
 
k2t0f12d profile image
Bryan Baldwin

The C Programming Language, Second Edition
The Practice of Programming
The Unix Programming Environment
C Unleashed
21st Century C
Autotools: A Practitioner's Guide to GNU Autoconf, Automake, and Libtool

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
 
booradley profile image
boo radley

Patterns of Enterprise Application Architecture - our goto resource for breaking down development and design problems.

Continuous Delivery by Jez Humble and David Farley. One of the best books for clearly justifying the costs and processes of CI/CD patterns to non-IT people.

Collapse
 
tra profile image
Tariq Ali

Software Engineering by Ian Sommerville. This is not a book about writing code. It is instead about all the non-technical aspects of programming, such as the trade-offs of code reuse, managing risks to projects, dealing with complex "socio-political systems", and handling ethical dilemmas. It's a college textbook but it has practical advice for dealing with real-world situations, and it is the first book that I read that made me scared for programming. Even the textbook questions at the end of each chapter can give me pause.

Collapse
 
ben profile image
Ben Halpern

Oh, this sounds great.

Collapse
 
wilsoncampusano profile image
Wilson Campusano Jorge
  • clean code
  • the clean coder
  • design patterns
  • Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman
  • Test Driven: TDD and Acceptance TDD for Java Developers
  • Test-Driven Development: A Practical Guide: A Practical Guide
Collapse
 
tamas profile image
Tamás Szelei

All from Scott Meyers.

Collapse
 
nemrism profile image
Aymeric A

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

Collapse
 
olioskar profile image
Oli Oskar

I second that

Collapse
 
driscollwebdev profile image
Brian Driscoll

I third that.

Collapse
 
jlhcoder profile image
James Hood

Distributed counting is hard. 😜

Collapse
 
cristian_sima profile image
Cristian Sima

Really good book

Collapse
 
adaelxp profile image
Carlos Gant

I fourth that

Collapse
 
thomaswdmelville profile image
Thomas Melville

Here here

Collapse
 
nivesh002 profile image
Nivesh

Javascript:

Books:

  • Javascript: The Good Parts,
  • Javascript Design Patterns.

Articles:

  • Airbnb Style Guide,
  • Clean code in JS,
Collapse
 
cptstroparo profile image
Cristian Stroparo
Collapse
 
antonfrattaroli profile image
Anton Frattaroli

The manual?

Collapse
 
bnhn profile image
Rayy Benhin

Eloquent JavaScript
Introduction to Algorithms 3rd Edition

Collapse
 
ennor profile image
Enno Rehling (恩諾)

"Working Effectively with Legacy Code" by Michael C. Feathers, and "C++ Coding Standards" by Herb Sutter and Andrei Alexandrescu.

Collapse
 
joshcheek profile image
Josh Cheek • Edited

For testing: the RSpec book. I know it's old and dated, but nothing made it click for me like that book did.

For understanding programming: the Elements of Computing Systems. Amazing book (people are calling it "Nand to Tetris" these days). That book is the reason I understand hardware (the big patterns, not like all the nuances of modern complex hardware).

For Ruby: The Pickaxe and Ruby Under a Microscope. The pickaxe is shockingly practical. I wasted so much effort trying to learn stuff that was in that book. A lot of it is just docs, too, which makes it thick and scary, but the first half is a wonderful collection of super practical information. Ruby Under a Microscope is basically "how does Ruby work", pick that one up if you're writing Ruby based on syntactic patterns you've seen and you want to actually understand why anything does what it does.

The book Absolute Java was wonderful when I read it, too. At that time, I was very new, so their lengthy explanations of how things worked were very useful and enlightening. Now it's an obvious / boring read for me, but I'm not its audience any more. So if you've got less than a year or two of experience, this book does a good job of helping you understand how language level stuff are implemented. If you've never worked with a typed language before, it's also worth reading for that reason (any typed language will be good for your programming brain, it will make explicit and obvious a class of errors and ways of thinking that dynamic languages leave implicit).

I'm sure there are others, but my books are in storage.

Collapse
 
yeedle profile image
yeedle

Java: Effective Java
C#: C# In Depth
JavaScript: You Don't Know JS series
[Haskell: Learn You a Haskell for Great Good]

General: Clean Code, The Mythical Man-Month