home | tech | misc | code | bookmarks (broken) | contact | README


Technical books I've read - notes and some review

Programming

Some recommendations on technical books. I tried to organize them in categories, but most of them spanned others, so I just added them sorted by the authors name.

Advanced Programming in the Unix Environment. Stevens, Richard; Rago, Stephen. 2nd edition

Website: http://apuebook.com/

APUE is a famous book for everyone that wants to do serious programming on Unix systems. The first edition was done by famous Richard Stevens, in 1992, and aimed popular free and proprietary Unix systems at the time (Linux was not covered). He wrote other very important and famous books about Unix programming, like TCP/IP Illustrated.

It have all important information about Unix system calls and how to deal with them, and also has details on doing with virtually all important stuff under Unix like Interprocess Communication (IPC), threads and so on. Strongly recommended.

P.S.: I have read the 2nd edition, when I read the 3rd one I intend to write a new entry to this page and also do all exercises.

C Programming Language, The. Ritchie, Dennis; Kernighan, Brian W. 1st edition

When learning some C (many years ago) I was looking for a good book about the language. Unfortunately, there is tons of bad material about C, with wrong information like type errors, non-portable code and so on. Somebody finally recommended the famous book by the C creator: Dennis Ritchie and it was the best book I could read about the language. It begins with basics and goes to advanced techniques. Also, it has nice exercises with text processing that are perfect for a Unix environment where you must do with pipes and text coming in and out everywhere. Strongly recommended.

P.S.: It is time to read it again. When I do, I intend to make all exercises and rewrite this review section.

P.P.S: The first edition is freely available on the web! https://archive.org/details/TheCProgrammingLanguageFirstEdition

Erlang Programming. Cesarini, Francesco; Thompson, Simon. 1st edition

I liked this book a lot. I learnt a lot about Erlang (the simplicity of Erlang helps) and how to write real world programs with Erlang. Authors are very experienced people and also wrote about pitfalls when building Erlang applications. It also presents advanced concepts like OTP, behaviours and applications. I got a bit confused with advanced concepts but it was my fault: I should have made the exercises!

Although I've started to read it, besides of learning Erlang, to also learn some functional programming, my knowledge on functional programming (which was initial at the time I started reading it) haven't change too much so, if you are willing to learn functional programming, I recommend another book. changed

Anyway, for building concurrent applications with Erlang, I recommend it.

Scala for the Impatient. Cay S. Horstmann. 1st edition

I was looking for a book about the Scala Programming Language written for those who already knew how to program. I got surprised on how direct this book is and how good it can still be. It is a quick and very good introduction in less than 300 pages (which is really small for such a complex language). Strong recommend if you already know how to program (specially if you already know Java).

Operating Systems

Design and Implementation of FreeBSD Operating System, The. McKusick et all. 2nd edition

This is a very good (and advanced!) book. It is an update of the The Design and Implementation of the FreeBSD Operating System which is an update of The Design and Implementation of the 4.4BSD Operating System.

It is, though, a very advanced book and the reader is required to have previous knowledge of operating systems theory. It doesn't explain most of the concepts of operating systems, but rather tries to explain how things are implemented in FreeBSD. It is a good book for those who want to understand BSD way of resolving operating system problems.

Most chapters lack a detailed explanation and try to show the reader advanced stuff with few text. But could it be different? It has almost 900 pages and intends to cover the whole kernel. Although it doesn't show much code, good diagrams help to understand how FreeBSD works.

I was amazed on how FreeBSD tries to solve important problems in the operating system world. Specially on network stuff, which takes an important part of the book.

Networking and network security

P2P Networking and Applications. Buford, John; Yu, Heather; Lua, Eng. 1st edition

It is a good introductory book about Peer-to-peer networks, though out to date in some aspects. But, as I said: it is introductory and don't dive into with important problems for P2P. For instance: it introduces the bootstrap problem but don't give any tip on how protocols solve this important problem. It also kind of superficial for specific protocol stuff. I think such a simple book could be small (it has almost 400 pages!).

But it is good for introducing the great number of different types of P2P networks.