Books
From C
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
- List of free books
- Online, book-like, resources
Learning C
- The C Programming Language, 2nd edition, by Kernighan and Ritchie, aka K&R or K&R2, ISBN: 0131103628, web site and errata (local mirror)
- Effective C An Introduction to Professional C Programming, by Robert C. Seacord, August 2020, 272 pp., ISBN-13: 9781718501041, errata
- 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 Programming FAQs by Summit, ISBN: 0201845199
- C: A Reference Manual, by Harbison and Steele, ISBN: 013089592X
- GCC: Reference Documentation (SURPRISINGLY GOOD!) http://www.gnu.org/software/gcc/onlinedocs
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
-
The C Puzzle Book, by Feuer, ISBN: 0201604612
- Secure Coding in C and C++, by Robert C. Seacord, ISBN: 9780132981972
- Mastering Algorithms with C, by Loudon, ISBN: 1565924533
- Modern C, by Jens Gustedt, ISBN: 9781617295812
- 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
- Linux Kernel Internals, ISBN: 0201877414
W. Richard Stevens
- Advanced Programming in the UNIX(R) Environment, aka APUE, ISBN: 0201563177, web site
- TCP/IP Illustrated, Volume 1: The Protocols, ISBN 0201633469, web site
- TCP/IP Illustrated, Volume 2: The Implementation, ISBN 020163354X, web site
- 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
- Matters Computational (PDF), by Jörg Arndt, ISBN: 364214764X