this post was submitted on 12 Apr 2025
59 points (100.0% liked)

Programming

19578 readers
26 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

A bit different from the audiobook request 2 years ago, as I'm not looking for audiobooks (so it does not have to be nice to listen to, I can see code examples) but regular books you read. Let me know which books helped you out the most, or that you just found fun to read!

EDIT: Thank you to everyone for helping me inflate my reading list! I was wondering what question I should ask to get answers including books on databases, cybersecurity, basically any topic that might fall under "computer science" and not just programming. In hindsight I maybe should have posted somewhere other than Programming and said something other than "Programming book recommendations" if I wanted that, but since I am also interested in programming and software engineering all these books will definitely be eaten soon. Thank you!

Oh, and !books@programming.dev for programming books exists but is sadly not getting much attention.

top 27 comments
sorted by: hot top controversial new old
[–] Dunstabzugshaubitze@feddit.org 18 points 6 days ago* (last edited 6 days ago) (1 children)
  • Refactoring by Martin Fowler, having patterns to help identify parts of code that could be changed for the better helps a lot.
  • Test-Driven Development with Python, because testing is important and you should atleast have tests in mind when writing you code, even if you dont write them first. I like this one, because it's very hands-on.
  • Head first java by Sierra and Bates, good introduction to programming with languages that offer object orientation and not as dry as the gang of four book, but definitely aimed at beginners
  • Fundamentals of Software Architecture by Richards and Ford, working as a programmer often means talking with big picture people or being one yourself, and they have their own strange language.
  • Domain Driven Design by Evans, for a similiar reason as Fundamentals of Software Architecture.
  • Neuromancer by William Gibson, because fun is important ;)
[–] NostraDavid@programming.dev 4 points 5 days ago (2 children)

Refactoring

Once you know how to write code (in any language) it's important to learn how to rewrite it (into something better)

Test-Driven Development with Python

Because manually stepping through your code is a PITA, so it's better to put that process into code that you can save and re-run without thinking about it.

Head first java

Any of the Head First series are great introduction books. Head First Design Patterns is great to learn programming patterns that you can typically re-use in any language :D

Fundamentals of Software Architecture

Haven't read this one, but learning about architecture is important so you can keep your UI, logic and data layers separate, so when you need to replace one layer (like the UI, because the boss wants a refresh), you don't need to pull out all your hairs due to frustration!

Domain Driven Design

I don't do DDD (at least not consciously), but understanding what a domain is really really important once you need to talk to business people (not something I like, but it's necessary to write the right code).

Neuromancer

"The sky above the port was the color of television, tuned to a dead channel." is such a banger of a first line. Outdated, because "dead channel" won't make sense to younger kids, but I bet they'll get a kick out of learning about how TVs used to be.

[–] Dunstabzugshaubitze@feddit.org 2 points 5 days ago (1 children)

oh, i was not aware that there is a head first just about desgin patterns, thanks for the heads up.

And Archicture is something that gets more and more important for devs, because it's likely that the code we write is just a part of a complex system of which we don't control every part and understanding communication channels and the reasoning behind the setup of the system allows us to write our part in a way that it works well in the bigger thing and not something others (or worse, we) have to work around later.

[–] bleistift2@sopuli.xyz 1 points 4 days ago* (last edited 4 days ago) (1 children)

That Head First about design patterns actually takes heavy inspiration from the Gang of Four. I haven’t read both (only Head First), but I’d wager you don’t need to read GoF if you’ve read Head First.

Only the writing style… is somewhat cringy.

that is the selling point of the head first books, they all feature bad jokes and other oddities to help you remember what you've read. it works.

[–] andioop@programming.dev 1 points 4 days ago

Hey, I was going to read that person's recommendations anyways, but thanks for the explanation of why each one matters :)

[–] zerofk@lemm.ee 7 points 5 days ago

Kernighan & Ritchie, the C programming language. Yes it’s old, and about one specific language that you may never use. But it’s also very well written and can give good insight into how to tame computers. And it’s short.

Design Patterns by Gamma, Helm, Johnson, and Vlissides (the Gang of Four). Not so much a book to read as a reference with patterns to at least be aware of.

[–] bleistift2@sopuli.xyz 10 points 6 days ago* (last edited 6 days ago)

The single most bestest book that I wish my very first programming teacher would’ve hit me over the head with is “Code Complete 2” by Steve McConnell. I’ve only encountered it a few years into my studies, and time and again I thought: I had to figure this out myself!

It’s basically a collection of all the things you can consider, or think about, or do or do differently when programming. Nothing in there is revolutionary, and none of it is something you couldn’t come up with yourself, but I found it immensely helpful to have the content laid out in a structured way.

[–] lechongous@programming.dev 8 points 6 days ago (1 children)

Design patterns from 1994 and Code Complete are pretty solid

[–] notabot@lemm.ee 3 points 6 days ago

Design Patterns is good, another one is The New Turing Omnibus.

[–] solrize@lemmy.world 8 points 6 days ago (1 children)

Structure and interpretation of computer programs (SICP) is a classic. It's readable online or you can get a printed copy.

[–] NostraDavid@programming.dev 3 points 5 days ago

"Have you read your SICP today?" still rings in my head, occasionally.

[–] kwedd 6 points 6 days ago
[–] Zenlix@lemm.ee 6 points 6 days ago (1 children)

This is a good book to start with small usefull projects in python: https://automatetheboringstuff.com/

[–] andioop@programming.dev 1 points 6 days ago

I really wish this existed for other languages. Python is really Not It for me. Maybe this book will change my mind. I have heard about it a lot. Either way, thanks for the rec!

[–] Endmaker@ani.social 6 points 6 days ago

The Software Craftsman by Sandro Mancuso

It's less of technical stuff, but more about the attitude one can (and should) have in our profession.

IMO this interview with the author sums it up nicely.

[–] MyNameIsRichard@lemmy.ml 5 points 6 days ago* (last edited 6 days ago)
[–] GrapinoSubmarino@lemmy.world 3 points 5 days ago
[–] footfaults@lemmygrad.ml 4 points 6 days ago
[–] cr1cket@sopuli.xyz 4 points 6 days ago

A philosophy of software design, by John Ousterhout.

Short book with some fresh approaches that i like way more than some of the established ones.

[–] bizdelnick@lemmy.ml 2 points 5 days ago

Camel book is the best technical book I ever read. It's unlikely that you'll program Perl, but it's really fun to read.

[–] bizdelnick@lemmy.ml 2 points 5 days ago
[–] HelloRoot@lemy.lol 4 points 6 days ago* (last edited 6 days ago) (1 children)
  1. Software Architects Handbook - Joseph Ingeno
  2. Game Programming Patterns - Robert Nystrom
  3. Tidy First - Kent Beck

First one I found the most useful.

Second one gave me a new perspective, even though I am not programming games, I could apply this new perspective to my regular code.

Third one is the nicest book on that topic. I hated "the classics" but I enjoyed this one a lot.


Bonus round:

  1. Etudes for Programmers - Charles Wetherell

It's how I learned to code.

[–] andioop@programming.dev 2 points 4 days ago

Seeing "Etude" out of a musical context feels so wild to me. That book grabbed my attention just because of that.

[–] locuester@lemmy.zip 2 points 5 days ago

Enterprise Integration Patterns by Gregor Hohpe and Bobby Woolf

[–] jkercher@programming.dev 2 points 5 days ago* (last edited 5 days ago)

Algorithms + Data Structures = Programs

Niklaus Wirth

[–] Dagwood222@lemm.ee 3 points 6 days ago

For fun, read "The Difference Engine." Alternate history/science fiction that askes what would have happened if Charles Babbage and Ada Lovelace had succeeded in creating a workable computer?

https://bookshop.org/p/books/the-difference-engine-william-gibson/1517442?ean=9780440423621&next=t