Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What are some older programming books that still hold up today?
21 points by Decabytes 8 months ago | hide | past | favorite | 19 comments



In no particular order:

Structure and Interpretation of Computer Programs

Design Patterns: Elements of Reusable Object-Oriented Software

Code Complete

Refactoring: Improving the Design of Existing Code

The Pragmatic Programmer


For those who don't know, there was a 20th Anniversary edition of The Pragmatic Programmer released a few years ago - It's still full of a lot of the same great advice, but they've brought the context and examples up to date.


Agreed. I was pleasantly surprised by how general and practical it was. I assume it was an over hyped shallow book but I was the one being shallow... Definitely worth a read.


Rapid Application Development by Steve McConnell

Applied Cryptography by Schneier

Mythical Man Month by Brooks


Anything by McConnell really. His book on estimation is still the best I've found.


Most of 'em.

The main exceptions will be programming books which focus on versions of programming languages which have gone though extreme changes between released versions. Like (say) GTK+, Visual Studio, etc

But 40-year old books on C, COBOL, and Pascal will be very useful, likewise books on algorithms like (say) Binary Trees, etc.


Question for the masses - is “Clean Code” still something worth reading nowadays? I have so far only heard good things about it (but that might also just be survivorship bias, I would assume books that aren’t good wouldn’t really be talked about as much), but have yet to grab a copy


Some parts are okay. It's one of the books that hasn't aged very well though, similar to JavaScript: The Good Parts.

A lot of it tackles flaws in Java itself, and assumes that OO in geeral has the same problems. For example passing an object instead of multiple parameters into a function. It's one of the suggestions that our team just agreed to reject for Kotlin/Dart because we could set default values.

Uncle Bob is generally one of the best in explaining why problems happen, though you have to step aside and think whether the solution he proposes is the best.


I wasn't a huge fan when I read it a year or two ago. It's fine, but I think that there are a lot of things that just aren't that clean (which is a subjective take). Uncle Bob in general though is a favorite of mine. Highly recommend Clean Architecture, Clean Agile, and The Clean Coder.


It's very heavily Object Oriented influenced, but it's still worth reading. Just make sure that you (and any team you work with) form your own opinions on what Clean Code is for you.


Lots of good answers here. To chime in a few:

- Beej's Guide to Network Programming (1994 originally I believe). Fantastic intro to networking programming via the Unix interfaces.

- The C Programming Language (1988 for 2nd edition). There has been change, but not a crazy amount.

- Mastering Regular Expressions (2006). Never look at a regular expression with fear again!

- Patterns of Enterprise Application Architecture (2002). Some of the patterns are antiquated but a lot of them are fantastic for modern development. Some of them are core to a lot of development now but we just don't think of them.


Paradigms of Artificial Intelligence Programming by Peter Norvig.

Often called PAIP. Uses Common Lisp to build classic symbolic AI programs, but has lots of good general advice on building big programs.


Eric Evans: Domain Driven Design

The vocabulary might seem foreign today but the concepts are as crucial as ever in the world of modern microservices.


The Practice of Programming by Kernighan and Pike


... and The Unix Programming Environment also by Kernighan and Pike


It's not a book about programming but every programmer should read Godel-Escher-Bach


Why? Did it change the way you program? I think it is like recommending a book about the philosophy of science to a physicist.


Reading GEB is sort of like getting a comp sci degree- You learn what can and cannot be done with computers. There are a lot of folks who learned coding by doing, but there is deeper knowledge. It's the the difference between going to coding bootcamp and really being able to explain, for instance, The Halting Problem, or why P != NP. So GEB probably won't make you a better programmer but it will give you deeper insight into the fundamentals of computation.


Data and Reality (William Kent, 1978)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: