One of my students asked me for recommendations of textbooks to read as background for their Computer Science degree. I remembered that I put a list on that very subject together some years ago which, with a little refresh and addtions might be a useful post on this subject.
Firstly, lets talk about the classics in the field. I’m not suggesting that you should buy any of these as they are fantastically expensive but if you can borrow them from a library or convince your employer that it would be a worthwhile purchase then they are all worth a read.
In no particular order, the titles are:
- “Structured Computer Organisation”, Tanenbaum & Austin
- “Modern Operating Systems”, Tanenbaum & Bos
- “Software Engineering”, Sommerville
- “Computer Networks: A Systems Approach”, Petersen & Davie
- “Compilers: Principles, Techniques and Tools”, Aho, Lam & Sethi
- “Computer Architecture: A Quantative Approach”, Patterson
- “Computer Organization and Design”, Patterson and Hennessey
I have used most of these books “in anger”, either as a student, or inflicted on my own students so can vouch for the quality and usefulness. Anyone investing some considerable time to work through all 5,000+ pages here can certainly consider themselves a well-read Computer Scientist, and hopefully a better person!
If I had to pick a single favourite it would undoubtedly be “Computer Organisation and Design”. Not only is it informative but it tells a really good story and is a genuinly enjoyable read. It is was written by people who had a clear task and shows the thought processes around the compromises inherent in any kind of true engineering endeavour. Well worth reading even if you not a comp-sci student but just want to get a feel for how real-world digital engineering actually works.
I’ve also added to this list “Computer Science – An Overview” by Glenn Brookshear, which I haven’t read but it looks very interesting so I would like to try it one day.
You will find the list here – https://www.amazon.co.uk/registry/wishlist/388BNDIVCTIZZ
Inexpensive Manuals and Guides
I think that by far the cheapest (if somewhat “hit and miss”) source of manuals and guides for languages, tools and techniques is humblebundle.com – they regularly put together bundles of 20 or so e-books on a related topic, Python programming say, and let you name your own price, with a typical floor of around 20 US dollars if you want to buy them all. There will almost always be one or two books that you might well have bought anyway for a single purchase of even more than $20, and often there will be more, making the bundle fantastic value. All bundles are time limited so you do need to keep an eye out for the email notifications.
Of course, if you really want to impress folks with a centrepiece for your library shelf then nothing looks quite as impressive as the multi-volume + appendices series “The Art of Computer Programming” by Donald Knuth, but be prepared to fork out three figures to get it!
I’m also working on a similar post on books covering the history of computing, so watch this space…