CSE247 on YouTube

BEST BOOKS for C Programming

The C Programming Language (2nd Edition) - Brian W. Kernighan and Dennis M. Ritchie (1988).
  • Still a good, short but complete introduction to C (C90, not C99 or later versions), written by the inventor of C.
  • However, the language has changed and good C style has developed in the last 25 years, and there are parts of the book that show its age.
The Practice of Programming - Brian W. Kernighan and Rob Pike (1999).
  • A very good book to accompany K&R. It uses C++ and Java too.
Programming in C (4th Edition) - Stephen Kochan (2014).
  • A good general introduction and tutorial.
  • A good book for learning C.
C: How to Program (8th Edition) - Paul Deitel and Harvey M. Deitel (2015).
  • Lots of good tips and best practices for beginners.
  • The index is very good and serves as a decent reference (just not fully comprehensive, and very shallow).
Beginning C (5th Edition) - Ivor Horton (2013).
  • Very good explanation of pointers
  • Using lots of small but complete programs.
Sams Teach Yourself C in 21 Days - Bradley L. Jones and Peter Aitken (2002).
  • Very good introductory stuff.
C Interfaces and Implementations - David R. Hanson (1997).
  • Provides information on how to define a boundary between an interface and implementation in C in a generic and reusable fashion.
  • It also demonstrates this principle by applying it to the implementation of common mechanisms and data structures in C, such as lists, sets, exceptions, string manipulation, memory allocators, and more.
  • It's a model of good C programming using modern design techniques (including Liskov's data abstraction), showing how to organize a big C project as a bunch of useful libraries.
The Standard C Library - P.J. Plauger (1992).
  • It contains the complete source code to an implementation of the C89 standard library, along with extensive discussion about the design and why the code is designed as shown.
  • In addition to the C language, the book explains gdb, valgrind, autotools, and git.
  • The comments on style are found in the last part (Chapter 6 and beyond).
Algorithms in C - Robert Sedgewick (1997).
  • Gives you a real grasp of implementing algorithms in C.
  • Very lucid and clear; will probably make you want to throw away all of your other algorithms books and keep this one.
C Unleashed - Richard Heathfield, Lawrence Kirby, et al. (2000).
  • Not ideal, but it is worth intermediate programmers practicing problems written in this book.
  • This is a good cookbook-like approach suggested by comp.lang.c contributors.
Modern C — Jens Gustedt (2017).
  • Covers C in 5 levels (encounter, acquaintance, cognition, experience, ambition) from beginning C to advanced C.
  • It covers C11 threads and atomic access, which few other books do and not all compilers recognize in all environments.
Essential C (Free PDF) - Nick Parlante (2003).
  • Note that this describes the C90 language at several points (e.g., in discussing // comments and placement of variable declarations at arbitrary points in the code), so it should be treated with some caution.
C in a Nutshell - Peter Prinz and Tony Crawford (2005).
  • Excellent book if you need a reference for C99.
Functional C - Pieter Hartel and Henk Muller (1997).
  • Teaches modern practices that are invaluable for low-level programming, with concurrency and modularity in mind.
C Traps and Pitfalls by A. Koenig (1989).
  • Very good, but the C style predates standard C, which makes it less recommendable these days.
Build Your Own Lisp — Daniel Holden (2014).
  • An enjoyable way to learn C.

No comments:

Powered by Blogger.