HACKER Q&A
📣 StefanBatory

Classic programming books to read over the summer?


Hey, I'm curious in your thoughts on what classic programming / software science to read over the summer. I've been thinking on approaching Knuth volume I as the main text, but I'd like to hear your recommendations. I'm at 3 year of software engineering, but I didn't land internship, so I have a lot of free time...


  👤 octo-andrero Accepted Answer ✓
The Knuth is great, for sure, and I encourage any efforts to build strong basement of fundamental knowledge. Still I would suggest you to change the focus. As a software engineer most of the time you won't implement complex generic algorithms. You will use them from libraries. These books will help you learn more about other important problems that software engineers face everyday:

- Design patterns: Elements of Reusable Object Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

- Test Driven Development by Kent Beck

- Code Complete (2) by Steve McConnell


👤 sandreas
Maybe you'd find

  Modern Operating Systems by Tanenbaum 
interesting. It's not about Software Engineering in general, but will bring you many insights how everything works together and not necessarily is a book where you need to practise things a lot.

👤 Dutchie987
Knuth can be a bit of an acquired taste. In my opinion it isn't very useful to read if you don't fully commit to do the exercises. That will take time and a lot of it! I suggest you postpone this one. You have enough to study already.

👤 andrei_says_
If working with object oriented languages, I recommend https://www.poodr.com/

Practical Object-Oriented Design, An Agile Primer Using Ruby (POODR)


👤 brudgers
For context, Knuth is my first generic recommendation for programming books. My advice is to get them all and read a bit here and there depending on your mood. The older editions are going to be more than enough...and honestly, MIX is probably better than MMIX for getting started.

To be clear, I've spent time reading Knuth because I enjoy reading and Knuth is a great book as a book. I only understand a small fraction, but that small fraction grows over the years.

I recommend having all of them because you won't get all the way through Volume One any time soon and there are interesting bits in each of them. Volume 2 is the driest but randomness and numerical methods are intellectually interesting for a few hours every now and then. The mathematics of sorting and searching hasn't changed so an older edition of Volume 3 is going to be fine. 4a covers exponential space and is different in that it doesn't contain code.

But that's me, not you. Good luck.