On Nov 23 Rick Salsa wrote: 21st Century C: C Tips from the New School – O’Reilly Media review
I’ve recently been looking for a new book on C, not wanting to spend the time on read Computer Science type text book. During my search I came across 21st Century C from O’Reilly. Upon first glance at the table of contents, I was intrigued. Full Review >
On Aug 14 Andrew Colin Kissa wrote: Book Review: 21st Century C By Ben Klemens
This intermediate level book provides guidance on new methods of coding in C as well as identifying the common pitfalls and providing workarounds to them.
The book is split into two sections on dealing with the ecosystem around C development and the second the language itself.
This is not a teach you how to write in C book, users are expected to have a grasp of the language prior to starting out with this book. Full Review >
On May 7 Devendra Tewari wrote:
Full Review >
On Apr 10 Daniele Di Donato wrote: 21st Century C
In few words this book is a collection of brief introductions of all the aspects regarding programming in C using methods and tools gained probably from the author experience with open or closed source projects. First, this is not a book about C programming language. It is a book for people who start to program in C and want to learn how to start using it in a proper and efficient way to create something more than programming exercises. The main idea that the author want to tell is that C is not only a system level programming language and can be used for other general purpose applications. The book is splitted in 2 main parts: the former talks about setting a C environment that automates most of the tasks as compiling, documenting, testing, releasing, source control and process flow. The latter is about tips of the C language that can be usefull to speed up the work.
The first part is the more detailed and covers most of the aspects of compiling C programs
- Chapter 1: Set yourself for compilation
- Chapter 2: Debug, test, Document
- Chapter 3: Packaging your project
- Chapter 4: Version Control
- Chapter 5: Playing nice with others
Those chapter titles explain most of the content of this first part of the book. They try to guide the reader to have a functional environment that covers all the
steps of the software development.
The tools briefly descripted in this chapter are:
- compilers for different OSes.
- GDB for debugging
- Valgrind for memory problems checking
- Doxygen and CWEB for automated documentation
- Shell, make and Autotools for automatic and easy compiling
- Git for source control
- Tips for write understandable and clean code
The second part of the book is about bits and pieces of the C language:
- Chapter 6: Your Pal pointer
- Chapter 7: C syntax you can ignore
- Chapter 8: Obstacles and opportunities
- Chapter 9: Text
- Chapter 10: Better structures
- Chapter 11: Object-oriented C
- Chapter 12: Libraries
This chapter contains mostly some tips about pointers, string, sintax and data-structure management. It covers some high-level stuff like databases and network connection but really briefly.
In my opinion the author tries to explaino too many things in one single book. He wants to give to C more visibility to the Application Engineers that typically use high abstraction. At the same time he wants to give guidelines about the environment and give hint on some pieces of the language. Except for the first part that covers enough the argument proposed in the chapter title, the second part seems to be a collection of blog tips glued together chosing within the most strange aspects and missing of C. I think as a programmer but even more as bad DIY mechanic that the tool is the most important part of the job. It's fine to use C if you really need to use the performance and the feature it only has, if you don't need those simply don't use it. Java, C#, Python and so on are more easy to use for some applications and should be used instead. Probably application engineers can benefit from this book to have some idea or have a start with C. Newstarters in C and programming can found it useful but they will need to integrate with other resources all the brief description given for some tools (I suggest to read Pragmatic Programmer) Full Review >
On Feb 25 Hitoshi Uchida wrote: Broad but shallow content
The content includes broad topics of C89, C99, C11, POSIX standerdized API and readers can effectively find something interesting and entry points for further programming skills. However, because a lot of topics are treated, each topic is shallow.
Though the title of this book provides readers an impression they can become modern programmers, beginners for C programming should not start from this book because almost of the topic is intermediate or upper level. Without having basic programming knowledge for C and understanding difficult points with basic C programming, readers can't understand the value of the described technics and why C11 integrated new syntax described here and what matters were resovled by technics the author introduced.
A topic related to macro is interesting for me because it made me reconsider the benefit of macro. For examples, how to bring foreach syntax into C programming and so forth. Full Review >
On Dec 30 Claudio J. Lacayo wrote: Modern day C for the advanced
This book starts out by specifying all the required packages and libraries you're going to need to follow along. The first chapter "Set Yourself Up for Easy Compilation" covers the tools on all platforms (Windows, OSX, Linux) - GCC command line coverage of how to link, set search paths and the why the author chooses various compiler flags. Full Review >
On Dec 24 Mat Powell wrote: 21st Century C
A great concept, however once I read about an acceptable baseline for memory leaks, I had a hard time finishing it. There are some great (and some terrible) tips in this book, so take it for what it is. I picked up a few things here and there, but overall i would not recommend this book. Full Review >
On Dec 21 Kiatikun Luangkesorn wrote:
The book is not really for pure beginners. If you did not already have some background in C, you need to get that somewhere else. I got in trouble with some of the examples, so it helped that I have used many of these tools before (even if not all that effectively). It also is opinionated, presenting one way to do things. (of course, that is very useful to someone starting out, knowing one good way is better than having a dozen options in front of you when you don't know what is what). But it can be very good for someone who needs to go from "I have learned C" to "I know how to effectively use C." Full Review >