Going on with a bit of a "getting things done" attitude (and some sleep deprivation), another book review, this time about networks (and bits of security). One of the most interesting books I've read due to studies (after Tanenbaum's Operating Systems, of course).
Author: James F. Kurose, Keith W. Ross
It is not everyday that while studying you find a book or topic you really enjoy from start to end. I had to read the 6th edition of "The Kurose book" for my computer networks course, and I've read more than I had to for the exams just for the joy of learning more (I passed the course with honors, and I'm sure it was thanks to this book). After having passed the course I decided to finish reading the remaining chapters.
Mentioning it is the sixth edition is important, because its contents are almost up to date (2012, which for study textbooks is "quite recent"). Examples and exercises are in Python, you study how VoIP and video streaming work, bits of Youtube's architecture, CDNs are properly explained, and of course the old 7 layers OSI model has been moved away to a more logical 5 levels model: Physical -> Link -> Network -> Transport -> Application
You will learn in deep all top 4 layers, plus chapters dedicated to Wireless & Mobile, Multimedia, Security and network management. SSL, IPSec, Firewalls, encryption... Many interesting topics are covered, but one of the best things is not that it is clearly explained (which it indeed is, also full of diagrams and drawings) but the best thing are the exercises: From typical problems and bandwith calculations to setting up streaming servers and capturing packets with Wireshark, it was a joy toying with virtual machines to try many of the topics explained and questioned.
This is the typical book any computer science student or professional should read.