Books

From C

Jump to: navigation, search

Contents

Books not listed here

Before buying any book that is not listed here we recommend that you read the ACCU review of the book in question.

Stuff that should be avoided

[summarized from the main page; full list with reasons here]

  • Books written by Herb Schildt.
  • Books by Yashwant Kanetkar.
  • Learn C The Hard Way by Zed A. Shaw.

Free books

Learning C

  • C How to Program, 3rd edition, by Deitel and Deitel, ISBN: 0130895725
  • C Programming: A Modern Approach, by King, ISBN: 0393969452
  • A Book on C: Programming in C (4th Edition), by Al Kelley and Ira Pohl, ISBN: 0201183994
  • The Standard C Library, by P. J. Plauger, ISBN: 0131315099
  • Learning to Program in C, 2nd edition, by Thomas Plum, ISBN: 0911537082
  • Programming in ANSI C, by Stephen Kochan, ISBN: 0672484080

References

  • The C Standard: Incorporating Technical Corrigendum 1, by British Standards Institute, ISBN: 0470845732
  • C: A Reference Manual, by Harbison and Steele, ISBN: 013089592X

Extending your knowledge

  • Algorithms in C, by Robert Sedgewick, ISBN 0201756080
  • Expert C Programming: Deep C Secrets, by van der Linden, ISBN: 0131774298
  • C Traps and Pitfalls, by Koenig, ISBN: 0201179288
  • C Interfaces and Implementations : Techniques for Creating Reusable Software, by Hanson, ISBN: 0201498413
  • C Unleashed, by Heathfield, Kirby, Lee, Watson, Pfaff, Corbit, Seebach, Fishburne, Fluhrer, Woods, Hobbs, Kelly, Wright, Dixon, Wilms, Klein, ISBN: 0672318962, web site and errata
  • Secure Coding in C and C++, by Robert C. Seacord, ISBN: 9780132981972
  • Mastering Algorithms with C, by Loudon, ISBN: 1565924533
  • Programming Pearls, by Bentley, ISBN: 0201657880. Teaches problem-solving, and how to get past mental blocks and the seemingly impossible.

Specialized Environments

BSD/Linux/POSIX/UNIX

  • The UNIX Programming Environment, by Kernighan and Pike, ISBN: 013937681X
  • Advanced UNIX Programming, 2nd edition, by Rochkind, ISBN: 0131411543
  • C Programming in the Berkeley UNIX Environment, by Horspool, ISBN: 0131097601
  • Programming with POSIX(R) Threads, by Butenhof, ISBN: 0201633922
  • Practical Unix Programming, by Robbins and Robbins, ISBN: 0134437063
  • Unix Systems Programming, by Robbins and Robbins, ISBN: 0130424110
  • Linux Application Development, by Troan/Johnson, ISBN: 0201308215

W. Richard Stevens

  • TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols, ISBN 0201634953, web site
  • UNIX Network Programming, Volume 1, 2nd edition: Networking APIs: Sockets and XTI, aka UNP1 or UNP, ISBN: 013490012X, web site
  • UNIX Network Programming, Volume 2, 2nd edition: Interprocess Communications, aka UNP2, ISBN: 0130810819, web site
  • UNIX Network Programming, Volume 1, 3rd edition: The Sockets Networking API, ISBN: 0131411551, web site

Microsoft Windows

  • Programming Windows, 5th edition, by Charles Petzold ISBN: 157231995X
  • Windows via C/C++, by Jeffrey Richter, ISBN: 0735624240
  • Programming Applications for Microsoft Windows, by Jeffrey Richter. ISBN: 1572319968. Note: This is the previous edition of Windows via C/C++, but it contains several useful chapters that were omitted in the newer edition. Both books are recommended if possible to attain.
  • Programming Server-Side Applications for Microsoft Windows 2000, ISBN: 0735607532
  • Network Programming for Microsoft Windows, Second Edition. ISBN: 0735615799
  • Microsoft Windows Internals, by Mark E. Russinovich, David A. Solomon, ISBN: 0735619174
  • Advanced Windows Debugging, by Mario Hewardt, Daniel Pravat, ISBN: 0321374460 - see the errata as well.
  • Windows NT/2000 Native API Reference, by Gary Nebbett, ISBN: 1578701996
  • Writing Secure Code, Second Edition, by Michael Howard, David C. LeBlanc, ISBN: 0735617228

Windows has a Win32/64 subsystem and a basic POSIX subsystem. A greatly improved POSIX subsystem is packaged as a separate free download. See also Windows Data Types.

Techniques

Parsing

  • Lex & Yacc (O'Reilly) Levinc, Mason & Brown, ISBN: 1565920007 Brandon Niemczyk has found this book very useful, lex and yacc are tools for writing complex parsers (although there are a few "gotchas" with yacc because it is context-free)
  • Compilers Principles, Techniques, and Tools Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman ISBN: 0201100886 aka "The Dragon Book", this is a must for anybody seriously into compilers. A decent understanding of Computer Science is recommended first though.

General

  • The Art of Computer Programming, by Knuth, aka TAOCP, ISBN: 0201485419, also the web site which contains errata, updates and future volumes.
  • The Practice of Programming, by Kernighan and Pike, ISBN: 020161586X
  • Introduction to Algorithms, by Cormen, Leiserson, Rivest, Stein, aka CLRS, ISBN: 0262032937
  • Structure and Interpretation of Computer Programs, by Abelson, Sussman, and Sussman, aka Wizard Book, ISBN: 0262011530, also the MIT web site which contains companion materials and full text
  • Introduction to Computing and Algorithms, by Shackelford, ISBN: 0201314517
  • The Pragmatic Programmer, by Hunt and Thomas, ISBN: 020161622X
Personal tools