||New Reviews| |Software Methodologies| |Popular Science| |AI/Machine Learning| |Programming| |Java| |Linux/Open Source| |XML| |Software Tools| |Other| |Web| |Tutorials| |All By Date| |All By Title| |Resources| |About||
Keywords: GNU, Linux, Unix, C, C++
Title: Linux Programming By Example: The Fundamentals
Author: Arnold Robbins
Publisher: Prentice Hall - PTR
Level: Beginner, Intermediate
Verdict: A superb book. Highly recommended
This is a book that is surely set to become a programmer's classic. It has all the elements of a classic title: excellent technical content, clear exposition and an authorial voice that inspires confidence in the reader. If you're just looking for the headline then you can skip the rest of the review right now - this is one book that we can recommend wholeheartedly.
The book starts from the premise that one of the best way of learning to program is to look at good programs. To this end Robbins uses solid GNU/Linux code, from a wide range of utilities and system tools, to introduce the reader to the core aspects of Linux programming. The code is there to illustrate good (and bad) practice, to show how things have evolved across the Unix world and also to point out common idioms and good coding ideas.
The range of topics is suitably diverse for a book that is looking at the 'fundamentals': files and users, processes and interprocess communication and a final section on debugging code. The stated aim is to look at the fundamentals, future volumes will look at things like GUI development separately. It's not just the range of material that is impressive, it's also the depth. Topics are handled well and there is never a feeling that difficult issues are being glossed over.
While the author assumes some knowledge of C programming and some knowledge of Linux, there is no assumption of any knowledge of C programming of Linux. Certainly it should present no problems for a C developer on Windows wanting to get a way into Unix/Linux, in fact the book would be ideal for anyone wanting to make that switch. The book starts with the absolute basics (the file system) and moves on from there, with each step following naturally from the last.
In addition to the focus on the mechanics of writing solid code, there's also a subtext. One of the aims of the book is to show the reader what makes GNU/Linux code different, not just in style but also in philosophy. The open source philosophy shines through the code very clearly. It's about code that is designed to be read, code designed to be shared and to be as portable as possible across Unix platforms. There's no big selling job going on here, it's just that the GNU philosophy is displayed through the code.
Aside from the solid technical content, it's the writing that makes the book stand out. Robbins has mastered the art of speaking to the reader directly in a tone that is friendly, encouraging and very winning. It feels like years of experience are being shared unselfishly. It's a formula that makes this a great book rather than a mere good book.
Without doubt this is a title that is very highly recommended. It deserves to be on every hackers shelf.