Download Beginning C Programming by Richard Grimes in multiple formats from Packt Publishing. The main mission of this book is to make you familiar and comfortable with C. You will finish the book not only being able to write your own code, but more importantly, you will be able to read other projects.
Index
- Assembly Language
- Elixir
- Groovy
- HTML / CSS
- Java
- JavaScript
- Language Agnostic
- LaTeX / TeX
- Prolog
- Python
- Ruby
- Scala
- Swift
Meta-Lists
- atariarchives.org atariarchives.org makes books, information, and software for Atari and other classic computers available on the Web.
- Bookboon: IT & Programming Cookie required. (email address requested, not required)
- Goalkicker - Programming Notes for Professionals books
- Programming - Wikibooks
Graphics Programming
- Blender 3D: Noob to Pro - Wikibooks
- Computer Graphics from scratch - Gabriel Gambetta (
? in process) - DirectX manual (draft)
- Graphics Programming Black Book - Michael Abrash
- Learn OpenGL - Joey de Vries
- Learning Modern 3D Graphics Programming - Jason L. McKesson (draft)
- OpenGL - Concepts and illustrations.
- ShaderX series - Wolfgang Engel
- WebGL Insights - Patrick Cozzi and Contributors
Graphical User Interfaces
- Search User Interfaces - Marti A. Hearst
- The GLib/GTK+ Development Platform - Sébastien Wilmet (PDF)
GraphQL
Language Agnostic
Algorithms & Data Structures
- A Field Guide To Genetic Programming - Riccardo Poli et al.
- Algorithms - Wikibooks
- Algorithms, 4th Edition - Robert Sedgewick and Kevin Wayne
- Algorithms and Automatic Computing Machines (1963) - B. A. Trakhtenbrot
- Algorithms and Complexity - Herbert S. Wilf (PDF)
- Algorithms Course Materials - Jeff Erickson
- Analysis and Design of Algorithms - Sandeep Sen, IIT Delhi
- Animated Algorithm and Data Structure Visualization (Resource)
- Annotated Algorithms in Python: Applications in Physics, Biology, and Finance - Massimo di Pierro
- Binary Trees (PDF)
- Clever Algorithms - Jason Brownlee
- Data Structures - Prof. Subhashis Banerjee, IIT Delhi
- Data Structures (Into Java) - Paul N. Hilfinger (PDF)
- Data Structures and Algorithms: Annotated Reference with Examples - G. Barnett and L. Del Tongo (PDF)
- Data Structures Succinctly Part 1, Syncfusion (PDF, Kindle) (email address requested, not required)
- Data Structures Succinctly Part 2, Syncfusion (PDF, Kindle) (email address requested, not required)
- Elementary Algorithms - Larry LIU Xinyu
- Foundations of Computer Science - Al Aho and Jeff Ullman
- Geometry Algorithms - Dan Sunday
- Lectures Notes on Algorithm Analysis and Computational Complexity (Fourth Edition) - Ian Parberry (use form at bottom of license)
- LEDA: A Platform for Combinatorial and Geometric Computing - K. Mehlhorn et al.
- Linked List Basics (PDF)
- Linked List Problems (PDF)
- Matters Computational: Ideas, Algorithms, Source Code (PDF)
- Open Data Structures: An Introduction - Pat Morin
- Problems on Algorithms (Second Edition) - Ian Parberry (use form at bottom of license)
- Purely Functional Data Structures (1996) - Chris Okasaki (PDF)
- Text Algorithms (PDF)
- The Art of Computer Programming - Donald Knuth (fascicles, mostly volume 4)
- The Design of Approximation Algorithms (PDF)
- The Great Tree List Recursion Problem (PDF)
- Think Complexity (PDF)
Cellular Automata
- A New Kind of Science - Stephen Wolfram
Cloud Computing
- Azure Functions Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- Designing Distributed Systems(account required)
- Learn Azure in a Month of Lunches - Iain Foulds (PDF)
- Monitoring Modern Infrastructure(account required)
- Streamline microservice management with Istio Service Mesh(account required)
Competitive Programming
- Competitive Programmer's Handbook - Antti Laaksonen (PDF)
- Competitive Programming, 1st Edition (PDF)
Compiler Design
- An Introduction to GCC - Brian Gough
- Basics of Compiler Design (Anniversary Edition) - Torben Mogensen
- Compiler Construction (PDF)
- Compiler Design in C (1990) - Allen Holub, Prentice Hall
- Compiler Design: Theory, Tools, and Examples, C/C++ Edition - Seth D. Bergmann
- Compiler Design: Theory, Tools, and Examples, Java Edition - Seth D. Bergmann
- Compiling Scala for the Java Virtual Machine - Michel Schinz (PDF)
- Compiling Techniques (1969) - F.R.A. Hopgood, Macdonald
- Crafting Interpreters (
? ) - Bob Nystrom (HTML) - Implementing Functional Languages: A Tutorial - Simon Peyton Jones, David Lester
- Let's Build a Compiler (PDF)
- Practical and Theoretical Aspects of Compiler Construction (class lectures and slides)
Computer Science
- Computer Science I - Draft - Dr. Chris Bourke (PDF) (
? in process) - Computer Science II - Draft - Dr. Chris Bourke (PDF) (
? in process)
Computer Vision
- Computer Vision - Dana Ballard, Chris Brown
- Computer Vision: Algorithms and Applications - Richard Szeliski
- Computer Vision: Models, Learning, and Inference - Simon J.D. Prince
- Programming Computer Vision with Python - Jan Erik Solem
Database
- Database Explorations (PDF)
- Database Fundamentals (PDF)
- Databases, Types, and The Relational Model: The Third Manifesto (PDF)
- Temporal Database Management - Christian S. Jensen
Datamining
- A Programmer's Guide to Data Mining - Ron Zacharski (Draft)
- Data Jujitsu: The Art of Turning Data into Product (email address requested, not required)
- Data Mining Algorithms In R - Wikibooks
- Internet Advertising: An Interplay among Advertisers, Online Publishers, Ad Exchanges and Web Users (PDF)
- Introduction to Data Science - Jeffrey Stanton
Information Retrieval
- Information Retrieval: A Survey (PDF)
Licensing
- Creative Commons: a user guide - Simone Aliprandi
- Open Source Licensing Software Freedom and Intellectual Property Law - Lawrence Rosen
- The Public Domain: Enclosing the Commons of the Mind - James Boyle
Machine Learning
- A Brief Introduction to Machine Learning for Engineers - Osvaldo Simeone (PDF)
- A Course in Machine Learning (PDF)
- A First Encounter with Machine Learning (PDF)
- An Introduction to Statistical Learning - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
- Deep Learning - Ian Goodfellow, Yoshua Bengio and Aaron Courville
- Introduction to Machine Learning - Amnon Shashua
- Learn Tensorflow - Jupyter Notebooks
- Learning Deep Architectures for AI (PDF)
- Probabilistic Models in the Study of Language (Draft, with R code)
- Reinforcement Learning: An Introduction (Draft) - Richard S. Sutton, Andrew G. Barto (PDF)
- Speech and Language Processing (3rd Edition Draft) - Daniel Jurafsky, James H. Martin (PDF)
- The Elements of Statistical Learning - Trevor Hastie, Robert Tibshirani, and Jerome Friedman
- The LION Way: Machine Learning plus Intelligent Optimization - Roberto Battiti, Mauro Brunato (PDF)
Mathematics
- A First Course in Linear Algebra - Robert A. Beezer
- Advanced Algebra - Anthony W. Knapp (PDF)
- An Introduction to the Theory of Numbers - Leo Moser (PDF)
- Basic Algebra - Anthony W. Knapp (PDF)
- Basics of Algebra, Topology, and Differential Calculus (PDF)
- Bayesian Methods for Hackers - Cameron Davidson-Pilon
- Book of Proof - Richard Hammack (PDF)
- Calculus - Gilbert Strang (PDF)
- Calculus Made Easy - Silvanus P. Thompson (PDF)
- Differential Equations - Paul Dawkins (PDF, use form to download)
- Elementary Differential Equations - William F. Trench (PDF)
- Essentials of Metaheuristics - Sean Luke
- Introduction to Probability - Charles M. Grinstead and J. Laurie Snell
- Introduction to Proofs - Jim Hefferon
- Introduction to Statistical Thought - Michael Lavine
- Knapsack Problems - Algorithms and Computer Implementations - Silvano Martello and Paolo Toth
- Lecture Notes of Linear Algebra - Dr. P. Shunmugaraj, IIT Kanpur (PDF)
- Linear Algebra - Dr. Arbind K Lal, IIT Kanpur (PDF)
- Linear Algebra (PDF)
- Linear Algebra by Jim Hefferon - Jim Hefferon
- Mathematical Logic - an Introduction (PDF)
- Mathematics, MTH101A - P. Shunmugaraj, IIT Kanpur
- Non-Uniform Random Variate Generation - Luc Devroye (PDF)
- Number Theory - Holden Lee MIT
- Ordinary Differential Equations - Wikibooks
- Power Programming with Mathematica - David B. Wagner
- Seven Sketches in Compositionality: An Invitation to Applied Category Theory - Brendan Fong and David I. Spivak (PDF)
- Statistics Done Wrong - Alex Reinhart
- Think Bayes: Bayesian Statistics Made Simple - Allen B. Downey
- Think Stats: Probability and Statistics for Programmers - Allen B. Downey (using Python)
Mathematics For Computer Science
- Discrete Structures for Computer Science: Counting, Recursion, and Probability - Michiel Smid
Misc
- 2016 European Software Development Salary Survey (email address requested, not required)
- 2016 Software Development Salary Survey (email address requested, not required)
- 97 Things Every Programmer Should Know - Extended(Leanpub account or valid email requested)
- A MACHINE MADE THIS BOOK ten sketches of computer science - JOHN WHITINGTON (PDF)
- A Mathematical Theory of Communication - Claude E.Shannon
- Ansible Up & Running (first three chapters)(account required)
- Barcode Overview (PDF)
- Bitcoin and Cryptocurrency Technologies - Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder (PDF)
- Communicating Sequential Processes - Tony Hoare (PDF)
- Computer Musings (lectures by Donald Knuth)
- Confessions of an Unintentional CTO: Lessons in Growing a Web App - Jack Kinsella
- Continuous Delivery and DevOps: A Quickstart guide - Paul Swartout, Packt. (email address requested, not required)
- Culture & Empire: Digital Revolution (PDF)
- Designing for Performance - Lara Hogan
- Designing Interfaces - Jennifer Tidwell
- DevDocs - Documents for Developers in 1 place
- DevOps For Dummies (IBM Edition) (PDF)
- 'DYNAMIC LINKED LIBRARIES': Paradigms of the GPL license in contemporary software - Luis A. Enríquez
- Essential Image Optimization - Addy Osmani
- Foundations of Programming (PDF)
- Game Programming Patterns - Bob Nystrom
- Getting Started with Unity 5 - Dr. Edward Lavieri, Packt. (email address requested, not required)
- Hacknot: Essays on Software Development - Ed Johnson
- High-Performance Scientific Computing (class lectures and slides)
- How Computers Work - R. Young
- How to Become a Programmer (PDF)
- How to Think Like a Computer Scientist - Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers
- Image Processing in C: Analyzing and Enhancing Digital Images - Dwayne Phillips
- Information Technology and the Networked Economy (PDF)
- IRPF90 Fortran code generator - Anthony Scemama
- Learn Programming - Antti Salonen
- Learning 30 Technologies in 30 Days: A Developer Challenge - Shekhar Gulati
- Learning Docker - Pethuru Raj, Jeeva S. Chelladhurai & Vinod Singh, Packt. (email address requested, not required)
- Linked Data Patterns: A pattern catalogue for modelling, publishing, and consuming Linked Data - Leigh Dodds, Ian Davis
- Magic Ink: Information Software and The Graphical Interface - Bret Victor
- Mastering Bitcoin - Unlocking digital currencies - Andreas M. Antonopoulos
- Mobile Developer's Guide to the Galaxy(Leanpub account or valid email requested)
- Mother Tongues of Computer Languages (PNG)
- Object-Oriented Reengineering Patterns - Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz
- Packt Publishing: A free book every day (PDF, ePub, Mobi, Kindle) (account required)
- PDQ: Pretty Darn Quick: An Agile, All-Purpose Methodology - Jeff Franz-Lien (Leanpub account or valid email requested)
- Philosophy of Computer Science (PDF)
- Pointers And Memory (PDF)
- Practical Data Analysis - Hector Cuesta, Packt. (email address requested, not required)
- Practical Responsive Typography - Dario Calonaci, Packt. (email address requested, not required)
- Principles of Computer System Design (PDF)
- Procedural Content Generation in Games - Noor Shaker, Julian Togelius, Mark Nelson
- Real-World Maintainable Software (email address requested, not required)
- Record-Playback Test Automation: Sahi & Selenium IDE: Critical Evaluation of Record-Playback Automation Tools - Shashikant Jagtap (Leanpub account or valid email requested)
- The Quest for Artificial Intelligence: A History of Ideas and Achievements - Nils J. Nilsson (PDF)
- Trends Shaping the London Tech Scene (email address requested, not required)
MOOC
Networking
- 802.11ac: A Survival Guide - Matthew Gast
- An Introduction to Computer Networks (HTML, PDF, Kindle)
- Code Connected vol.1 (PDF) (book on ZeroMQ)
- Computer Networking : Principles, Protocols and Practice (HTML, ePub, PDF, Kindle)
- Computer Networks: A Systems Approach - Larry Peterson and Bruce Davie (HTML, epub, mobi, PDF)
- High-Performance Browser Networking - Ilya Grigorik
- HTTP Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- HTTP2 Explained - Daniel Stenberg
- IPv6 for IPv4 Experts - Yar Tikhiy (PDF)
- Understanding IP Addressing: Everything you ever wanted to know (PDF)
Open Source Ecosystem
- Fintech, Open Source, and Emerging Markets Digital Banking for Everyone (email address requested, not required)
- Free as in Freedom: Richard Stallman and the free software revolution - Sam Williams (PDF)
- Free for All - Peter Wayner
- Getting Started with InnerSource (email address requested, not required)
- Getting started with Open source development (PDF)
- How to get started with open source (ePub & ODT)
- Innovation Happens Elsewhere - Ron Goldman, Richard P. Gabriel
- Open by Design (email address requested, not required)
- Open Source in Brazil (email address requested, not required)
- Producing Open Source Software - Karl Fogel
- The Art of Community - Jono Bacon (PDF)
- The Cathedral and the Bazaar - Eric S. Raymond
- The Future of the Internet - Jonathan Zittrain
- The Wealth of Networks: How Social Production Transforms Markets and Freedom - Yochai Benkler
Operating systems
- A short introduction to operating systems (2001) - Mark Burgess (PDF)
- How to Make a Computer Operating System (
? in process) - How to write a simple operating system in assembly language - Mike Saunders (HTML)
- Operating Systems and Middleware (PDF and LaTeX)
- Operating Systems: Three Easy Pieces (PDF)
- Practical File System Design: The Be File System - Dominic Giampaolo (PDF)
- Project Oberon: The Design of an Operating System, a Compiler, and a Computer - Niklaus Wirth & Jürg Gutknecht (PDF)
- The Art of Unix Programming - Eric S. Raymond
- The Design and Implementation of the Anykernel and Rump Kernels - Antti Kantee
- The little book about OS development - Erik Helin, Adam Renberg
- The Little Book of Semaphores - Allen B. Downey
- Think OS: A Brief Introduction to Operating Systems - Allen B. Downey (PDF)
- UNIX Application and System Programming, lecture notes - Prof. Stewart Weiss (PDF)
- Writing a Simple Operating System from Scratch - Nick Blundell (PDF)
Parallel Programming
- High Performance Computing - Charles Severance & Kevin Dowd (PDF, ePUB)
- High Performance Computing Training (LLNL materials)
- High-Performance Scientific Computing (class lectures and slides)
- Introduction to High-Performance Scientific Computing - Victor Eijkhout
- Introduction to Parallel Computing - Blaise Barney
- Is Parallel Programming Hard, And, If So, What Can You Do About It? - Paul E. McKenney
- Programming on Parallel Machines; GPU, Multicore, Clusters and More - Norm MatloffKerridge (PDF) (email address requested, not required)
- Using Concurrency and Parallelism Effectively – I - Jon Kerridge (PDF) (email address requested, not required)
- Using Concurrency and Parallelism Effectively – II - Jon
Partial Evaluation
- Partial Evaluation and Automatic Program Generation - (PDF) Jones, Gomard and Sestoft
Professional Development
- Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman - David H. Hoover and Adewale Oshineye
- Clean Code Developer: An initiative for more professionalism in software development (
? in process) - Confessions of an IT Manager(RedGate, By Phil Factor)
- Don't Just Roll the Dice (PDF) (RedGate, By Neil Davidson)
- How to Do What You Love & Earn What You’re Worth as a Programmer - Reginald Braithwaite
- Professional Software Development For Students - Mike G. Miller
- What I've Learned From Failure - Reginald Braithwaite
Programming Paradigms
- Introduction to Functional Programming - J. Harrison
Regular Expressions
- Learn Regex The Hard Way - Zed. A. Shaw
- The 30 Minute Regex Tutorial - Jim Hollenhorst
- The Bastards Book of Regular Expressions: Finding Patterns in Everyday Text - Dan Nguyen (Leanpub account or valid email requested)
Reverse Engineering
- BIOS Disassembly Ninjutsu Uncovered 1st Edition - Darmawan Salihun (PDF)
- Hacking the Xbox: An Introduction to Reverse Engineering - Andrew 'bunnie' Huang
- iOS App Reverse Engineering (PDF)
- Reverse Engineering for Beginners - Dennis Yurichev (PDF)
Security
- Intrusion Detection Systems with Snort (PDF)
- OWASP Testing Guide 4.0 (PDF)
Software Architecture
- Agile Planning: From Ideas to Story Cards - Launch School
- Architectural Styles and the Design of Network-based Software Architectures - Roy Thomas Fielding
- Developing Reactive Microservices (email address requested, not required)
- DSL Engineering: Designing, Implementing and Using Domain-Specific Languages - Markus Voelter
- Evolving Architectures of FinTech (email address requested, not required)
- Exploring CQRS and Event Sourcing - (EPUB, PDF)
- Kanban for skeptics - Nick Oostvogels (Leanpub account or valid email requested)
- Microservice Databases: Migrating from Relational Monolith to Distributed Data (email address requested, not required)
- Microservices AntiPatterns and Pitfalls (PDF)
- Microservices in Production (email address requested, not required)
- Microservices vs. Service-Oriented Architecture (PDF)
- Migrating to Cloud-Native Application Architectures (email address requested) (PDF)
- Naked objects - Richard Pawson (PDF)
- Object-Oriented Reengineering Patterns - S. Demeyer, S. Ducasse and O. Nierstrasz
- Practicing Domain-Driven Design - Part 1 - Scott Millett (Leanpub account or valid email requested)
- Reactive Microservices Architecture (email address requested)
- Software Architecture Patterns (email address requested, not required)
- Test Driven Development, Extensive Tutorial - Grzegorz Gałęzowski
- Working with Web APIs - Launch School
- Your API Is Bad - Paddy Foran
Standards
Theoretical Computer Science
- Building Blocks for Theoretical Computer Science - Margaret M. Fleck
- Category Theory for Computing Science (PDF)
- Category Theory for Programmers - Bartosz Milewski (PDF)
- Homotopy Type Theory: Univalent Foundations of Mathematics (PDF)
- Introduction to Computer Science - Prof. Subhashis Banerjee, IIT Delhi
- Introduction to Theory of Computation - Anil Maheshwari and Michiel Smid (PDF)
- Models of Computation - John E. Savage
- Practical Foundations for Programming Languages, Preview - Robert Harper (PDF)
- Principles of Programming Languages - Scott F. Smith
- Programming and Programming Languages - Shriram Krishnamurthi
- Programming in Martin-Löf's Type Theory - Bengt Nordstroem
- Programming Languages: Application and Interpretation (2nd Edition) - Shriram Krishnamurthi
- Programming Languages: Theory and Practice - Robert Harper (PDF)
- Semantics with Applications: A Formal Introduction - Hanne Riis Nielson, Flemming Nielson
- The Black Art of Programming - Mark McIlroy
- Think Complexity - Allen B. Downey
Web Performance
- Book of Speed - Stoyan Stefanov
- High Performance Browser Networking - Ilya Grigorik
- Mature Optimization - Carlos Bueno (PDF)
Ada
- A Guide to Ada for C and C++ Programmers (PDF)
- Ada Distilled (PDF)
- Ada for the C++ or Java Developer - Quentin Ochem (PDF)
- Ada Programming - Wikibooks
- Ada Reference Manual - ISO/IEC 8652:2012(E) Language and Standard Libraries (PDF)
Agda
- Programming Language Foundations in Agda - Philip Wadler and Wen Kokke
Alef
Android
- Agile Android Software Development - Etienne Savard (PDF, epub, mobi)
- Android 5 Programming by Example - Kyle Mew, Packt. (email address requested, not required)
- Android NDK Beginner's Guide - Second Edition - Sylvain Ratabouil, Packt. (email address requested, not required)
- Android NDK Game Development Cookbook - Sergey Kosarevsky & Viktor Latypov, Packt. (email address requested, not required)
- Android Notes (PDF)
- Android Programming Guide for Beginners (PDF - need email confirmation)
- Android Programming Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- RxJava for Android App Development (email address requested, not required)
- The Busy Coder's Guide to Android Development (PDF - older versions)
- Tutorial Point Android Tutorial (PDF)
APL
- Mastering Dyalog APL (PDF)
Arduino
- Arduino Programming Notebook - Brian Evans
- C Programming for Arduino - Julien Bayle, Packt. (email address requested, not required)
- Introduction to Arduino : A piece of cake! - Alan G. Smith
ASP.NET MVC
Assembly Language
- Assembly Language Succinctly (PDF)
- PC Assembly Language - P. A. Carter
- Professional Assembly Language (PDF)
- Programming from the Ground Up (PDF)
- Software optimization resources - A. Fog
- x86-64 Assembly Language Programming with Ubuntu - Ed Jorgensen (PDF)
- x86 Assembly - Wikibooks
Non-X86
- Easy 6502 - Nick Morgan
- Machine Code for Beginners [Z80 and 6502 CPUs] - Lisa Watts and Mike Wharton (PDF) (Scroll to bottom and click on book cover)
- Machine Language for Beginners - Richard Mansfield [6502 CPU]
AutoHotkey
- AutoHotkey Official Documentation (CHM)
Autotools
Awk
- An Awk Primer - Wikibooks
- Awk - Bruce Barnett
Bash
- Advanced Bash-Scripting Guide - M. Cooper (HTML)
- Bash Guide for Beginners (2008) - M. Garrels (HTML)
- Bash Notes (PDF)
- Bash Notes for Professionals - Compiled from StackOverflow documentation (3.x) (PDF)
- BASH Programming (2000) - Mike G. (HTML)
- Bash Reference Manual (HTML)
- Bash tutorial - Anthony Scemama (PDF)
- BashGuide - Maarten Billemont (HTML) (PDF)
- Conquering the Command Line - Mark Bates (HTML)
- Getting Started with BASH (HTML)
- Google Shell Style Guide - Paul Armstrong (HTML)
- Introduction to the Command Line - Launch School (HTML)
- Linux Fundamentals - Paul Cobbaut (PDF)
- Linux Shell Scripting Tutorial - A Beginner's Handbook (2002) - Vivek G. Gite (HTML)
- Linux Shell Scripting Tutorial (LSST) v2.0 - Vivek Gite (HTML)
- Slackbook (2005) - Alan Hicks, Chris Lumens, David Cantrell and Logan Johnson (HTML, DocBook, Postscript, PDF)
- The Bash Academy - Maarten Billemont (HTML)
- The Linux Command Line - William E. Shotts, Jr. (PDF)
- Writing Shell Scripts - William E. Shotts, Jr. (HTML)
Basic
- 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 - Nick Montfort, Patsy Baudoin, John Bell,Ian Bogost, Jeremy Douglass, Mark C. Marino, Michael Mateas, Casey Reas, Mark Sample, Noah Vawter
- A beginner's guide to Gambas - John W. Rittinghouse (PDF)
- Pick/Basic: A Programmer's Guide - Jonathan E. Sisk
BETA
- Object-Oriented Programming in the BETA Programming Language - Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard
C
- 256-Color VGA Programming in C - David Brackeen
- A Tutorial on Pointers and Arrays in C - Ted Jensen (PDF, Zipped HTML)
- An Introduction to C & GUI Programming - Simon Long (PDF)
- Bare-metal programming for ARM - Daniels Umanovskis (PDF)
- Beej's Guide to C Programming - B. Hall
- Beej's Guide to Network Programming - Using Internet Sockets - B. Hall
- C Elements of Style - Steve Oualline
- C Notes (PDF)
- C Programming - Wikibooks
- Essential C (PDF)
- Functional C (1997) - Pieter H. Hartel, Henk Muller (PDF)
- Learn to Code With C - The MagPi Essentials (PDF)
- Modern C (PDF)
- Object-Oriented Programming With ANSI-C (PDF)
- Programming in C - Bharat Kinariwala & Tep Dobry
- The Craft of Text Editing or A Cookbook for an Emacs - Craig A. Finseth
- The Current C Programming Language Standard – ISO/IEC 9899:202x (C2x) - Open Standards Org - www.open-std.org (PDF)
- The GNU C Programming Tutorial (PDF)
- The little book about OS development - Erik Helin, Adam Renberg
- The New C Standard - An Economic and Cultural commentary (2009) - Derek M. Jones (PDF)
C Sharp
- C# Notes (PDF)
- C# Notes for Professionals - Compiled from StackOverflow documentation (3.x)
- C# Programming - Wikibooks
- C# Yellow Book (intro to programming)
- Daily Design Patterns (PDF)
- Data Structures and Algorithms with Object-Oriented Design Patterns in C# - Bruno Preiss
- Dissecting a C# Application - Christian Holm, Bernhard Spuida, Mike Kruger
- Fundamentals of Computer Programming with C# - Svetlin Nakov
- High level asynchronous programming with Reactive Extensions - Emil Petro
- Object Oriented Programming using C# - Simon Kendal, Bookboon. (email address requested, not required)
- Xamarin Cross-Platform Development Cookbook - George Taskos, Packt. (email address requested, not required)
- Xamarin.Forms Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
C++
- C++ Core Guidelines - Editors: Bjarne Stroustrup, Herb Sutter
- C++ Notes (PDF)
- C++ Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- C++ Today (email address requested, not required)
- Financial Numerical Recipes in C++ - Bernt Arne Ødegaard
- How to make an Operating System - Samy Pesse
- How To Think Like a Computer Scientist: C++ Version - Allen B. Downey
- Introduction to Design Patterns in C++ with Qt (PDF)
- Joint Strike Fighter, C++ Coding Standards, by Bjarne Stroustrup (PDF)
- Learn C++. (PDF, Online)
- Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt (PDF)
- Open Data Structures (In C++) (PDF)
- Practical C++ Metaprogramming (email address requested, not required)
- Software Design Using C++ - Br. David Carlson and Br. Isidore Minerd
- The Rook's Guide to C++ (PDF)
- Thinking in C++, Second Edition, Vol. 1. - Bruce Eckel (Vol. 2)
Chapel
Cilk
- Cilk 5.4.6 Reference Manual (PDF)
Clojure
- Clojure - Functional Programming for the JVM - R. Mark Volkmann
- Clojure by Example - Hirokuni Kim
- Clojure in Small Pieces - Rich Hickey (PDF)
- Clojure Programming - Wikibooks
- ClojureScript Unraveled (HTML)
COBOL
- COBOL Programming Fundamental (PDF)
- OpenCOBOL 1.1 - Programmer's Guide (PDF)
CoffeeScript
- CoffeeScript Ristretto - Reginald Braithwaite (Leanpub account or valid email requested)
ColdFusion
- CFML In 100 Minutes - J. Casimir
Component Pascal
- Computing Fundamentals - Stan Warford (PDF)
Cool
- CoolAid: The Cool 2013 Reference Manual (PDF)
Coq
Crystal
CUDA
- CUDA C Best Practices Guide (PDF)
- CUDA C Programming Guide (PDF)
- OpenCL Programming Guide for CUDA Architecture (PDF)
D
Dart
DB2
- Getting started with DB2 Express-C (PDF)
- Getting started with IBM Data Studio for DB2 (PDF)
- Getting started with IBM DB2 development (PDF)
Delphi / Pascal
- Essential Pascal Version 1 and 2 - M. Cantù
DTrace
Elasticsearch
- Elasticsearch: The Definitive Guide (fork it on GH)
Eiffel
- A Functional Pattern System for Object-Oriented Design - Thomas Kuhne (PDF)
Elixir
- 30 Days of Elixir - Tim Morgan (HTML)
- Elixir School (HTML)
- Elixir Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- Études for Elixir (HTML)
- Getting Started Guide (HTML) (PDF, MOBI, EPUB)
- Joy of Elixir - Ryan Bigg (HTML) - Source (
? in process) - Learning Elixir - Joseph Kain Blog (HTML)
- The Ultimate Guide To Elixir For Object-Oriented Programmers - Bruce Park (HTML)
Ecto
- Ecto Getting Started Guide (HTML)
Phoenix
- Phoenix v1.3.0 Guide (HTML)
- Versioned APIs with Phoenix - Elvio Vicosa (PDF) (account required)
Emacs
- GNU Emacs Manual (PDF)
Embedded Systems
- Control and Embedded Systems (HTML)
- Discovering the STM32 Microcontroller (PDF)
- Introduction to Microcontrollers (HTML)
Erlang
- Concurrent Programming in ERLANG (PDF)
- Erlang Handbook (PDF)
- Erlang Programming - Wikibooks (HTML)
- Études for Erlang - J. David Eisenberg
- Getting Started with Erlang User's Guide (HTML)
- Learn You Some Erlang For Great Good - Frederic Trottier-Hebert
- Making reliable distributed systems in the presence of software errors - Joe Armstrong (PDF)
- Stuff Goes Bad: Erlang in Anger - Fred Herbert (PDF)
ESP8266
- Kolban's book on the ESP32 & ESP8266(Leanpub account or valid email requested)
F Sharp
- Analyzing and Visualizing Data with F# (PDF)
- F# for fun and profit (ePub)
- F# Programming - Wikibooks
- F# Succinctly, SyncFusion (PDF, Kindle) (email address requested, not required)
- Functional Programming Textbook - Yusuf M Motara (PDF)
- Programming Language Concepts for Software Developers (PDF)
Firefox OS
- Quick Guide For Firefox OS App Development: Creating HTML5 based apps for Firefox OS - Andre Garzia
Flutter
- Flutter Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
Force.com
- Heroku Postgres (PDF)
Forth
- And so Forth.. (PDF)
- Programming Forth (PDF)
Fortran
- Introduction to fortran 95 and numerical computing: a jump-start for scientists and engineers (PDF)
- Self Study Guide: Programming in Fortran 95 (PDF)
FreeBSD
- Using C on the UNIX System - David A. Curry
Git
- A Visual Git Reference - Mark Lodato
- Git From The Bottom Up - J. Wiegley
- Git internals - Scott Chacon (PDF)
- Git Pocket Guide - Richard E. Silverman
- Git Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- GitHub Cheat Sheet - Tim Green (Markdown)
- Intoduction to Git and Github - Launch School
- Intoduction to Git and Github - Tutorial - Dr. Chris Bourke (PDF)
- Learn Git - Learn Version Control with Git - Tobias Günther
- Pro Git - Scott Chacon
- Pro Git Reedited - Jon Forrest
- Ry's Git Tutorial - Ryan Hodson
Go
- Go 101 - @TapirLiu
- Go Bootcamp - Matt Aimonetti
- Practical Cryptography With Go - Kyle Isom
Groovy
Gradle
- Gradle User Guide - Hans Dockter, Adam Murdoch (PDF)
Grails
- The Grails Framework - Reference Documentation - Graeme Rocher, Peter Ledbrook, Marc Palmer, Jeff Brown, Luke Daley, Burt Beckwith, Lari Hotari (PDF)
Spock Framework
- Spock Framework Reference Documentation - Peter Niederwieser
Hack
Hadoop
- Cloudera Impala - John Russel
- Data-Intensive Text Processing with MapReduce (Jimmy Lin and Chris Dyer) (PDF)
- Hadoop Explained - Aravind Shenoy, Packt. (email address requested, not required)
- Hadoop Illuminated - Mark Kerzner & Sujee Maniyam
- Programming Pig - Alan Gates
Haskell
- Anatomy of Programming Languages - William R. Cook
- Beautiful Code, Compelling Evidence (PDF)
- Exploring Generic Haskell - Andres Löh (PDF)
- Haskell - Wikibooks
- Haskell web Programming (Yesod tutorial)
- Learn You a Haskell for Great Good - Miran Lipovaca
- Parallel and Concurrent Programming in Haskell - Simon Marlow
- Wise Man's Haskell - Andre Popovitch
- Yet Another Haskell Tutorial (PDF)
Haxe
- Haxe and JavaScript - Matthijs Kamstra (wikibook)
- Haxe Manual - Haxe Foundation (PDF, HTML)
- HaxeFlixel Handbook (HTML)
HTML / CSS
- Adaptive Web Design - Aaron Gustafson
- Code Guide: Standards for developing flexible, durable, and sustainable HTML and CSS - Mark Otto
- Dive Into HTML5 - Mark Pilgrim (PDF)
- HTML Canvas Deep Dive - Josh Marinacci
- HTML5 Canvas - Steve Fulton & Jeff Fulton
- HTML5 for Publishers - Sanders Kleinfeld
- HTML5 For Web Designers - Jeremy Keith
- HTML5 Graphing and Data Visualization Cookbook - Ben Fhala, Packt. (email address requested, not required)
- HTML5 Notes for Professionals - Compiled from StackOverflow documentation (3.x)
- HTML5 Shoot 'em Up in an Afternoon - Bryan Bibat
- Learn to Code HTML & CSS - Shay Howe
- Scalable and Modular Architecture for CSS - Jonathan Snook
- Thinking in CSS - Aravind Shenoy, Packt. (email address requested, not required)
- Thinking in HTML - Aravind Shenoy, Packt. (email address requested, not required)
- Understanding Flexbox: Everything you need to know - Ohans Emmanuel
- Web Audio API - Boris Smus
Bootstrap
- Twitter Bootstrap 3 Succinctly (PDF, Kindle) (email address requested, not required)
- Twitter Bootstrap Succinctly (PDF, Kindle) (email address requested, not required)
HTTP
- Introduction to HTTP - Launch School
Idris
- Gentle Introduction to Dependent Types with Idris - Boro Sitnikovski (Leanpub account or valid email requested)
Icon
iOS
- iOS Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- Mastering iOS Game Development - Miguel DeQuadros, Packt (email address requested, not required)
- NSHipster (Resource)
- Start Developing iOS Apps (Swift) (HTML)
- Start Developing iOS Apps Today (Objective-C) - Last updated 22.10.2013 (PDF)
IoT
- IoT in five days- V1.1 (PDF, EPUB)
Isabelle/HOL
- Concrete Semantics - A Proof Assistant Approach by Tobias Nipkow and Gerwin Klein (PDF)
- Isabelle/HOL - A Proof Assistant for Higher-Order Logic by Tobias Nipkow and Lawrence C. Paulson and Markus Wenzel (PDF)
J
- Arithmetic by Kenneth E Iverson (PDF)
- Brief Reference by Chris Burke and Clifford Reiter (PDF)
- Calculus by Kenneth E Iverson (PDF)
- Concrete Math Companion by Kenneth E Iverson (PDF)
- Easy J by Linda Alvord, Norman Thomson (PDF) (Word DOC)
- Exploring Math by Kenneth E Iverson (PDF)
- Math for the Layman by Kenneth E Iverson (zipped html+images)
Java
- 3D Programming in Java - Daniel Selman (PDF)
- Apache Jakarta Commons: Reusable Java Components - Will Iverson (PDF)
- Artificial Intelligence - Foundation of Computational Agents (2010) - David Poole and Alan Mackworth
- Category wise tutorials - J2EE - Yong Mook Kim
- Core Servlets and JavaServer Pages, 2nd Ed. (2003) - Marty Hall and Larry Brown
- Data Structures in Java for the Principled Programmer (2007) - Duane A. Bailey (PDF)
- Introduction to Computer Science 'booksite' - by Robert Sedgewick and Kevin Wayne (HTML)
- Introduction to Computer science using Java - Bradley Kjell
- Introduction to Programming in Java - Robert Sedgewick and Kevin Wayne
- Introduction to Programming Using Java - David J. Eck
- Java Application Development on Linux (2005) - Carl Albing and Michael Schwarz (PDF)
- Java, Java, Java Object-Oriented Problem Solving - R. Morelli and R.Walde
- Java Language and Virtual Machine Specifications - James Gosling, et al
- Java Notes for Professionals - Compiled from StackOverflow documentation (3.x)
- Java Programming for Kids - Yakov Fain
- Java: The Legend - Ben Evans (email address requested, not required)
- Learning Java (4th Edition) - Patrick Niemeyer and Daniel Leuck
- Microservices Best Practices for Java (PDF)
- Microservices for Java Developers - Christian Posta (email address requested, not required)
- Modern Java EE Design Patterns - Markus Eisele (email address requested, not required)
- Neural Network Development with Java - Alan M. F. Souza and Fabio M. Soares (email address requested, not required)
- Object-Oriented Programming in JavaTM Textbook - Rick Halterman (PDF per Chapter)
- Object Oriented Programming using Java - Simon Kendal (PDF) , Bookboon. (email address requested, not required)
- Object-Oriented vs. Functional Programming - Richard Warburton (email address requested, not required)
- OOP - Learn Object Oriented Thinking & Programming - Rudolf Pecinovsky (PDF)
- Open Data Structures (in Java) - Pat Morin (PDF)
- Processing XML with Java (A Guide to SAX, DOM, JDOM, JAXP, and TrAX) (2002) - Elliotte Rusty Harold
- The ABC of PDF with iText: PDF Syntax essentials - Bruno Lowagie (Leanpub account or valid email requested)
- The Java EE6 Tutorial (PDF)
- The Java EE7 Tutorial - Eric Jendrock, et al (PDF)
- Think Java: How to Think Like a Computer Scientist - Allen B. Downey and Chris Mayfield
- Welcome to Java for Python Programmers - Brad Miller
- Welcome to the Java Workshop (2006) - Trevor Miller
Codename One
- Codename One Developer Guide (PDF)
- Create an Uber Clone in 7 Days (first 2 chapters) - Shai Almog (PDF)
JasperReports
- The JasperReports Ultimate Guide, Third Edition (PDF)
Spring
- Spring Framework Reference Documentation - Rod Johnson, Juergen Hoeller, Keith Donald, Colin Sampaleanu, Rob Harrop, Thomas Risberg, Alef Arendsen, Darren Davison, Dmitriy Kopylenko, Mark Pollack, Thierry Templier, Erwin Vervaet, Portia Tung, Ben Hale, Adrian Colyer, John Lewis, Costin Leau, Mark Fisher, Sam Brannen, Ramnivas Laddad, Arjen Poutsma, Chris Beams, Tareq Abedrabbo, Andy Clement, Dave Syer, Oliver Gierke, Rossen Stoyanchev, Phillip Webb, Rob Winch, Brian Clozel, Stephane Nicoll, Sebastien Deleuze (PDF)
Spring Boot
- Spring Boot Reference Guide - Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis (PDF, EPUB)
Spring Security
- Spring Security Reference - Ben Alex, Luke Taylor, Rob Winch
Wicket
JavaScript
- Basic JavaScript for the impatient programmer - Dr. Axel Rauschmayer
- Crockford's JavaScript - Douglas Crockford
- Developing Backbone.js Applications - Addy Osmani
- Eloquent JavaScript 2nd edition - Marijn Haverbeke
- Exploring ES6 - Dr. Axel Rauschmayer
- JavaScript Allongé - Reginald Braithwaite
- JavaScript Bible (PDF)
- JavaScript Enlightenment - Cody Lindley
- JavaScript ES6 and beyond - Alberto Montalesi (PDF, epub)
- JavaScript Garden (Maintained by Tim Ruffles)
- JavaScript Patterns Collection - Shi Chuan
- JavaScript Spessore - Reginald Braithwaite
- Javascript Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- jQuery Fundamentals (starts with JavaScript basics)
- JS Robots (PDF)
- Leaflet Tips and Tricks: Interactive Maps Made Easy - Malcolm Maclean
- Learning JavaScript Design Patterns - Addy Osmani
- Let's Learn ES6 - Ryan Christiani (Superbook format)
- Managing Space and Time with JavaScript - Book 1: The Basics - Noel Rappin
- Marionette Exposé: Learn to write modular Javascript applications using Backbone Marionette and RequireJS/AMD - Jack Killilea (Leanpub account or valid email requested)
- Mastering JavaScript High Performance - Chad R. Adams, Packt. (email address requested, not required)
- Object-Oriented JavaScript - Stoyan Stefanov, Kumar Chetan Sharma (email address requested, not required)
- Oh My JS - Azat Mardanov
- Patterns For Large-Scale JavaScript Application Architecture - Addy Osmani
- Speaking JavaScript - Dr. Axel Rauschmayer
- The JavaScript Way - Baptiste Pesquet
- Thinking in JavaScript - Aravind Shenoy, Packt. (email address requested, not required)
- Understanding ECMAScript 6 - Nicholas C. Zakas
- Understanding JavaScript OOP(Sorella)
Angular.js
- AngularJS Essentials - Rodrigo Branas, Packt (email address requested, not required)
- AngularJS Succinctly (PDF, Kindle) (email address requested, not required)
- Developing with Angular - Denys Vuika (Leanpub account or valid email requested)
- Recipes with Angular.js - Frederik Dietz
Aurelia
- Beginning Aurelia - behzad (Leanpub account or valid email requested)
Backbone.js
- Backbone Tutorials: Beginner, Intermediate and Advanced - Thomas Davis (Leanpub account or valid email requested)
- Building Single Page Web Apps with Backbone.js (
? in process)
Booty5.js
D3.js
- D3 Tips and Tricks - Malcolm Maclean
Dojo
- Dojo: The Definitive Guide - Matthew A. Russell
Elm
- An Introduction to Elm (HTML)
- Beginning Elm - Pawan Poudel (HTML)
- Elm Accelerated - James Porter
- Elm Programming Language (HTML)
- Learn You an Elm (HTML)
Ember.js
Express.js
- Express.js Guide - Azat Mardanov
jQuery
- jQuery Novice to Ninja (PDF)
- jQuery Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
Meteor
Node.js
- An Introduction to libuv - Nikhil Marathe (PDF - ePub)
- Node: Up and Running - Tom Hughes-Croucher
- Node.js Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- What You Need To Know About Node.js - Bruno Joseph Dmello, Packt (email address requested, not required)
Om
React
- React-Bits (vasanthk)
- React Tutorial by Josh Finnie
- React.js Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- The Road to learn React - Build a Hacker News App along the Way - Robin Wieruch (Leanpub account or valid email requested)markdown
React Native
- Programming React Native(Leanpub account or valid email requested)
Redux
- The Complete Redux Book - Boris Dinkevich and Ilya Gelman (Leanpub account or valid email requested)
Jenkins
- Jenkins: The Definitive Guide (PDF)
Julia
- Introducing Julia - Wikibooks
- Julia by Example - Samuel Colvin (GitHub repo)
- Julia language: a concise tutorial - Antonello Lobianco (GitBook)
- Learn Julia in Y minutes - Leah Hanson
- The Julia Express - Bogumił Kamiński (PDF)
Kotlin
- Kotlin Notes for Professionals book - Compiled from StackOverflow documentation
LaTeX / TeX
LaTeX
- LaTeX - Wikibooks
- The Not So Short Introduction to LaTeX (PDF)
TeX
- Notes On Programming in TeX - Christian Feursänger (PDF)
- TeX by Topic, A TeXnician's Reference - Victor Eijkhout
- TeX for the Impatient - Paul Abrahams, Kathryn Hargreaves, and Karl Berry
Limbo
Linux
- Ad Hoc Data Analysis From The Unix Command Line - Wikibooks
- Advanced Linux Programming (PDF)
- Linux 101 Hacks - Ramesh Natarajan (PDF)
- Linux Device Drivers, Third Edition - Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
- Linux Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- OpenVZ Linux virtualization (PDF)
- Secure Programming HOWTO - Creating Secure Software - D. A. Wheeler (HTML, PDF)
- Ten Steps to Linux Survival: Bash for Windows People - Jim Lehmer
- The Linux Command Line (PDF)
- The Linux Development Platform (PDF)
- Ubuntu Server Guide (PDF)
- Understanding the Linux Virtual Memory Manager - Mel Gorman (HTML, PDF)
- UNIX Systems Programming for SVR4 - David A. Curry
- What Every Programmer Should Know About Memory (PDF)
Lisp
- Basic Lisp Techniques - David J. Cooper, Jr. (PDF)
- Common Lisp: A Gentle Introduction to Symbolic Computation - David S. Touretzky (PDF, PS)
- Common Lisp: An Interactive Approach - Stuart C. Shapiro
- Interpreting LISP - Gary D. Knott (PDF)
- Learn Lisp The Hard Way - Colin J.E. Lupton
- Let Over Lambda - 50 Years of Lisp - D. Hoyte
- Lisp Hackers: Interviews with 100x More Productive Programmers - Vsevolod Dyomkin
- Lisp Web Tales - Pavel Penev (Leanpub account or valid email requested)
- On Lisp - P. Graham
- Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp - Peter Norvig (PDF, epub, markdown)
- Practical Common Lisp - P. Seibel
- SOLID Design Principles in Common Lisp - Momozor (PDF)
- Successful Lisp: How to Understand and Use Common Lisp - David Lamkins (PDF)
- The Evolution of Lisp - Guy L. Steele Jr., Richard P. Gabriel (PDF)
Livecode
- LiveCode userguide (PDF)
Lua
- Lua Programming - Wikibooks
Make
- Managing Projects with GNU Make - Robert Mecklenburg
Markdown
- Learn Markdown - Sammy P., Aaron O. (PDF) (EPUB) (MOBI)
Mathematica
MATLAB
- An Interactive Introduction to MATLAB (PDF)
- An Introduction to MATLAB (PDF)
- MATLAB Programming - Wikibooks
- MATLAB Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- Physical Modeling in MATLAB - Alan B. Downey
Maven
Mercurial
- Mercurial: The Definitive Guide 2nd edition (source repository) (
? in process)
Mercury
- The Mercury Users' Guide (PDF)
Modelica
MySQL
- MySQL Tutorial Excerpt (PDF)
Neo4J
- Graph Databases (PDF)
- Graph Databases 2nd edition(account required)
.NET Framework
- Game Creation with XNA - Wikibooks
- .NET Performance Testing and Optimization - The Complete Guide(RedGate, By Paul Glavich and Chris Farrell)
- Under the Hood of .NET Memory Management (PDF) (RedGate, By Chris Farrell and Nick Harrison)
- Visual Studio .NET Tips and Tricks (VS 2003-2005 only)
NoSQL
- Extracting Data from NoSQL Databases: A Step towards Interactive Visual Analysis of NoSQL Data - Petter Nasholm (PDF)
- Instant MongoDB - Amol Nayak, Packt. (email address requested, not required)
- MongoDB Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- NoSQL Databases - Christof Strauch (PDF)
- The Little Redis Book - K. Seguin (PDF, Epub)
Oberon
- Algorithms and fallback-src='https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png'>?project is dead)
PHP
- CakePHP Framework
- CakePHP Cookbook 2.x (PDF)
- CodeIgniter Framework
- Drupal Framework
- Drupal 7
- The Tiny Book of Rules (PDF)
- Drupal 7
- Laravel Framework
- Laravel 3
- Laravel: Code Happy - Dayle Rees
- Laravel 4
- Laravel: Code Bright - Dayle Rees
- Laravel 5
- Laravel 5.x Official Documentation. Synced Daily(Leanpub account or valid email requested)
- Laravel: Code Smart - Dayle Rees
- Laravel Collections Unraveled - Jeffrey Madsen (Leanpub account or valid email requested)
- Laravel 3
- PHP 5 Power Programming (PDF)
- PHP Pandas - Dayle Rees
- PHP Programming - Wikibooks
- PHPUnit Manual - Sebastian Bergmann (PDF)
- Symfony Framework
- Symfony 2.8
- The Symfony Book 2.8.x (PDF)
- Symfony 3.4
- The Symfony Best practices 3.4.x (PDF)
- The Symfony Getting started 3.4.x (PDF)
- Symfony 4.1
- The Symfony Best practices 4.1.x (PDF)
- The Symfony Getting started 4.1.x (PDF)
- Symfony 2.8
- Zend Framework
PicoLisp
PostgreSQL
- Postgres Succinctly (PDF, Kindle) (email address requested, not required)
PowerShell
- Creating HTML Reports in PowerShell (PDF,ePub,HTML)
- DevOps: The Ops Perspective (PDF, ePub, MOBI)
- Ditch Excel: Making Historical & Trend Reports in PowerShell (PDF, ePub, MOBI)
- Introduction to PowerShell for Unix People (PDF, ePub, HTML)
- Layman’s Guide to PowerShell 2.0 remoting (PDF)
- PowerShell 2.0 – One CMDLET At A Time (PDF)
- PowerShell Notes for Professionals - Compiled from StackOverflow documentation (3.x)
- PowerShell Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- Secrets of PowerShell Remoting (PDF, ePub, MOBI)
- The Big Book of PowerShell Error Handling (PDF, ePub, MOBI)
- The Big Book of PowerShell Gotchas (PDF, ePub, MOBI)
- The DSC Book (PDF, ePub, HTML)
- The Monad Manifesto - Annotated (PDF, ePub, MOBI)
- Why PowerShell? (PDF, ePub, MOBI)
- Windows PowerShell Networking Guide (PDF, ePub, MOBI)
Processing
Prolog
- Applications of Prolog - Attila Csenki, Bookboon. (email address requested, not required)
- Coding Guidelines for Prolog - Michael A. Covington, Roberto Bagnara, Richard A. O'Keefe, Jan Wielemaker, Simon Price
- GNU Prolog Manual (PDF)
- Introduction to Prolog for Mathematicians - J. Ireson-Ireson-Paine
- Natural Language Processing Techniques in Prolog - P. Blackburn, K. Striegnitz
- Prolog and Natural - Language Analysis - Fernando C. N. Pereira, Stuart M. Shieber
- Prolog Problems - Werner Hett
- Prolog Techniques - Attila Csenki, Bookboon. (email address requested, not required)
- The Art of Prolog, Second Edition - Leon S. Sterling, Ehud Y. Shapiro (Open Access)
- The First 10 Prolog Programming Contests - Bart Demoen, Phuong-Lan Nguyen, Tom Schrijvers, Remko Tronçon
- Warren's Abstract Machine: A Tutorial Reconstruction - Hassan A¨it-Kaci
Constraint Logic Programming (extended Prolog)
PureScript
- PureScript By Example - Phil Freeman
Python
- 20 Python Libraries You Aren't Using (But Should) (email address requested, not required)
- A Beginner's Python Tutorial - Wikibooks
- A Byte of Python (3.x) (HTML, PDF, EPUB, Mobi)
- A Guide to Python's Magic Methods - Rafe Kettler
- A Whirlwind Tour of Python - Jake VanderPlas (PDF) (EPUB, MOBI)
- Automate the Boring Stuff - Al Sweigart
- Biopython (PDF)
- Build applications in Python the antitextbook (3.x) (HTML, PDF, EPUB, Mobi)
- Building Machine Learning Systems with Python - Willi Richert & Luis Pedro Coelho, Packt. (email address requested, not required)
- Building Skills in Object-Oriented Design (Python) (PDF) (2.1.1)
- Building Skills in Python (PDF) (2.6)
- Composing Programs (3.x)
- Data Structures and Algorithms in Python - B. R. Preiss (PDF)
- Dive into Python 3 - Mark Pilgrim (3.0)
- Dive into Python - Mark Pilgrim (2.3)
- Functional Programming in Python (email address requested, not required)
- Fundamentals of Python Programming - Richard L. Halterman (PDF) (3.2)
- Google's Python Class (2.4 - 2.x)
- Hacking Secret Cyphers with Python - Al Sweigart (3.3)
- Hadoop with Python (email address requested, not required)
- Hitchhiker's Guide to Python! (2.6)
- How to Make Mistakes in Python - Mike Pirnat (PDF) (1st edition)
- How to Think Like a Computer Scientist: Learning with Python, Interactive Edition (3.2)
- How to Think Like a Computer Scientist: Learning with Python - Allen B. Downey, Jeff Elkner and Chris Meyers (2.4)
- Think Python - Allen B. Downey (2.x & 3.0)
- Intermediate Python - Muhammad Yasoob Ullah Khalid (1st edition)
- Introduction to Programming with Python (3.3)
- Introduction to Programming Using Python - Cody Jackson (1st edition) (2.3)
- Introduction to Python - Kracekumar (2.7.3)
- Invent Your Own Computer Games With Python - Al Sweigart (3.1)
- Learn to Program Using Python - Cody Jackson (PDF)
- Learning Python - Fabrizio Romano, Packt. (email address requested, not required)
- Lectures on scientific computing with python - J.R. Johansson (2.7)
- Making Games with Python & Pygame - Al Sweigart (2.7)
- Modeling Creativity: Case Studies in Python - Tom D. De Smedt (PDF)
- Natural Language Processing with Python (3.x)
- Non-Programmer's Tutorial for Python 3 - Wikibooks (3.3)
- Non-Programmer's Tutorial for Python 2.6 - Wikibooks (2.6)
- Picking a Python Version: A Manifesto (email address requested, not required)
- Porting to Python 3: An In-Depth Guide (2.6 - 2.x & 3.1 - 3.x)
- Practical Programming in Python - Jeffrey Elkner (PDF)
- Problem Solving with Algorithms and Data Structures using Python - Bradley N. Miller and David L. Ranum
- Program Arcade Games With Python And Pygame (3.3)
- Programming Computer Vision with Python (PDF)
- Python 2 Official Documentation (PDF, HTML, TEXT) (2.x)
- Python 2.7 quick reference - New Mexico Tech (2.7)
- Python 3 Official Documentation (PDF, EPUB, HTML, TEXT) (3.x)
- Python Data Science Handbook - Jake VanderPlas (HTML, Jupyter Notebooks)
- Python for Everybody Exploring Data Using Python 3 - Charles Severance (PDF, EPUB, HTML)
- Python for Informatics: Exploring Information (2.7.5)
- Python for you and me (2.7.3)
- Python for you and me (3.x)
- Python Idioms (PDF)
- Python in Education (email address requested, not required)
- Python in Hydrology - Sat Kumar Tomer
- Python Koans (2.7 or 3.x)
- Python Module of the Week (3.x)
- Python Module of the Week (2.x)
- Python Notes for Professionals - Compiled from StackOverflow documentation (3.x)
- Python Practice Book (2.7.1)
- Python Programming - Wikibooks (2.7)
- Python Programming - Wikibooks (PDF) (2.6)
- SICP in Python (3.2)
- Suporting Python 3: An In-Depth Guide (2.6 - 2.x & 3.1 - 3.x)
- Test-Driven Web Development with Python - Harry Percival (3.3 - 3.x)
- Text Processing in Python - David Mertz (2.3 - 2.x)
- The Coder's Apprentice: Learning Programming with Python 3 - Pieter Spronck (PDF) (3.x)
- The Definitive Guide to Jython, Python for the Java Platform - Josh Juneau, Jim Baker, Victor Ng, Leo Soto, Frank Wierzbicki (2.5)
- The Little Book of Python Anti-Patterns (Source)
- The Programming Historian - William J. Turkel, Adam Crymble and Alan MacEachern
- The Standard Python Library - Fredrik Lundh
- Think Complexity - Allen B. Downey (2nd Edition) (PDF, HTML)
- Tiny Python 3.6 Notebook - Matt Harrison (3.6)
- Web2py: Complete Reference Manual, 6th Edition (pre-release) (2.5 - 2.x)
Django
- Django Girls Tutorial (1.11)
- Django Official Documentation (PDF) (1.5)
- Django Official Documentation (PDF) (1.7)
- Django Official Documentation (PDF) (1.9)
- Django Official Documentation (PDF) (1.10)
- Django Official Documentation (PDF) (2.2)
- Effective Django (1.5)
- How to Tango With Django (1.7)
Flask
- Explore Flask - Robert Picard
- The Flask Mega-Tutorial - Miguel Grinberg (0.9)
Kivy
Pandas
- Learn Pandas - Hernan Rojas (0.18.1)
Pyramid
Tornado
QML
- Qt5 Cadaques - Juergen Bocklage-Ryannel and Johan Thelin (HTML, PDF, ePub) (
? in process)
R
- Advanced R Programming - Hadley Wickham
- An Introduction to Statistical Learning with Applications in R - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani (PDF)
- Cookbook for R - Winston Chang
- Introduction to Probability and Statistics Using R - G. Jay Kerns (PDF)
- Learning Statistics with R - Daniel Navarro
- Machine Learning with R - Brett Lantz, Packt. (email address requested, not required)
- ModernDive - Chester Ismay and Albert Y. Kim
- Practical Regression and Anova using R - Julian J. Faraway (PDF)
- R for Data Science - Garrett Grolemund and Hadley Wickham
- R for Spatial Analysis (PDF)
- R Language for Programmers - John D. Cook
- R Packages - Hadley Wickham
- R Practicals (PDF)
- R Programming - Wikibooks
- R Programming for Data Science - Roger D. Peng (Leanpub account or valid email requested)
- R Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
- The caret Package - Max Kuhn
- The R Inferno - Patrick Burns (PDF)
- Tidy Text Mining with R - Julia Silge and David Robinson
Racket
Raspberry Pi
- Raspberry Pi Cookbook for Python Programmers - Tim Cox, Packt. (PDF) (email address requested, not required)
- Raspberry Pi: Measure, Record, Explore - Malcolm Maclean (HTML)
- Raspberry Pi Users Guide - (2012) - Eben Upton (PDF)
- The Official Raspberry Pi Project Book (PDF)
REBOL
- Learn REBOL - Nick Antonaccio
Ruby
- Developing Games With Ruby - Tomas Varaneckas
- Introduction to Programming with Ruby - Launch School
- Learn Ruby First - Frederick John
- Learn Ruby the Hard Way - Zed Shaw
- Learn to Program - Chris Pine
- Object Oriented Programming with Ruby - Launch School
- Ruby Web Dev: The Other Way - Yevhen Kuzminov
- The Definitive Ruby Tutorial For Complete Beginners - Jesus Castello
- The Unofficial Ruby Usage Guide (at Google) - Ian Macdonald
RSpec
Ruby on Rails
- Kestrels, Quirky Birds, and Hopeless Egocentricity - Reg Braithwaite
- Ruby on Rails Tutorial (Rails 5): Learn Web Development with Rails - Michael Hartl
Sinatra
Rust
- Why Rust? (PDF)
Sage
- Sage for Power Users - William Stein (PDF)
Scala
- A Scala Tutorial for Java programmers (PDF)
- Advanced Scala with Cats - Noel Welsh and Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
- Creative Scala - Noel Welsh and Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
- EAI Patterns with Actor Model - Vaughn Vernon
- Essential Scala - Noel Welsh and Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
- Functional Programming for Mortals - Sam Halliday
- Functional Programming, Simplified (Scala edition) - Alvin Alexander (free preview (400 pages from 595), PDF)
- Hello, Scala - Alvin Alexander (free preview (120 pages from 257), PDF)
- Programming in Scala, First Edition - by M. Odersky, L. Spoon, B. Venners
- PythonToScala - Rob Story
- S-99: Ninety-Nine Scala Problems - Phil! Gold
- Scala & Design Patterns: Exploring Language Expressivity - Fredrik Skeel Løkke (PDF)
- Scala By Example - M. Odersky (PDF)
- Scala Cookbook: Bonus Chapters - Alvin Alexander (PDF)
- Scala for Perl 5 Programmers - Breno G. de Oliveira
- Scala for the Impatient (A1 Scala Level chapters) - Cay S. Horstmann
- Scala Tutorial (PDF)
- The Neophyte's Guide to Scala - Daniel Westheide
- The Type Astronaut's Guide to Shapeless - Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
Lift
- Exploring Lift (published earlier as 'The Definitive Guide to Lift', PDF)
- Lift Cookbook - Richard Dallaway
- Simply Lift - David Pollak (PDF)
Play Scala
- Essential Play - Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
- Play Framework Recipes - Alvin Alexander
Scheme
- Concrete Abstractions: An Introduction to Computer Science Using Scheme - M. Hailperin, B. Kaiser, K. Knight
- Simply Scheme: Introducing Computer Science - B. Harvey, M. Wright
- The Scheme Programming Language: Edition 3 - The Scheme Programming Language: Edition 4
- Write Yourself a Scheme in 48 Hours - Wikibooks
Scilab
Scratch
Sed
Self
Smalltalk
- Dynamic Web Development with Seaside - S. Ducasse, L. Renggli, C. D. Shaffer, R. Zaccone
- Pharo by Example (Smalltalk Implementation and IDE)
- Squeak By Example (Smalltalk Implementation and IDE)
- Stef's Free Online Smalltalk Books (meta-list)
Spark
SQL (implementation agnostic)
SQL Server
- Best of SQLServerCentral.com Vol 7 *(RedGate, By SQLServerCentral Authors)
- Brad's Sure Guide to SQL Server Maintenance Plans(RedGate, By Brad McGehee)
- Defensive Database Programming (PDF) (RedGate, By Alex Kuznetsov)
- How to Become an Exceptional DBA(RedGate, By Brad McGehee)
- Inside the SQL Server Query Optimizer(RedGate, By Benjamin Nevarez)
- Mastering SQL Server Profiler(RedGate, By Brad McGehee)
- Microsoft SQL Server Notes for Professionals (Compiled from StackOverflow documentation)
- Performance Tuning with SQL Server Dynamic Management Views(RedGate, By Tim Ford and Louis Davidson)
- Protecting SQL Server Data(RedGate, By John Magnabosco)
- SQL Server Backup and Restore(RedGate, By Shawn McGehee)
- SQL Server Concurrency: Locking, Blocking and Row Versioning(RedGate, By Kalen Delaney)
- SQL Server Execution Plans (PDF) (RedGate, By Grant Fritchey)
- SQL Server Execution Plans, Second Edition (PDF) (RedGate, By Grant Fritchey)
- SQL Server Hardware(RedGate, By Glenn Berry)
- SQL Server Internals: In-Memory OLTP(RedGate, By Kalen Delaney)
- SQL Server Statistics(RedGate, By Holger Schmeling)
- SQL Server Stumpers Vol.5(RedGate, By SQLServerCentral Authors)
- SQL Server Tacklebox(RedGate, By Rodney Landrum)
- SQL Server Transaction Log Management(RedGate, By Tony Davis and Gail Shaw)
- The Art of SQL Server FILESTREAM(RedGate, By Jacob Sebastian and Sven Aelterman)
- Troubleshooting SQL Server: A Guide for the Accidental DBA(RedGate, By Jonathan Kehayias and Ted Krueger)
Standard ML
C Programming Language Pdf Download
- Introduction to Standard ML - Atsushi Ohori (PDF)
- Programming in Standard ML '97 - Stephen Gilmore, University of Edinburgh
- Programming in Standard ML, DRAFT - Robert Harper (PDF)
- SML# Document - Atsushi Ohori, Katsuhiro Ueno
- The Definition of Standard ML (Revised) - SMLFamily GitHub project (PDF)
Subversion
- Subversion Version Control (PDF)
Swift
- Swift Essentials - Second Edition - Dr. Alex Blewitt, Packt (email address requested, not required)
- Swift Pocket Reference (email address requested, not required)
- Test-driven iOS Development with Swift - Dr. Dominik Hauser, Packt. (email address requested, not required)
- The Swift Programming Language (HTML) (iBook)
- Using Swift with Cocoa and Objective-C (HTML) (iBook)
Vapor
- Vapor 3 Tutorial For Beginners - Tibor Bödecs
Tcl
- Tcl Programming - Richard.Suchenwirth, et. al.
- TclWise - Salvatore Sanfilippo
TEI
- What is the Text Encoding Initiative? - Lou Bernard
Teradata
Tizen
- Tizen for Dummies - Jon Lansdell, Cheng Luo, Michelle Somersville (PDF)
C Programming Pdf Free Download
TLA
- Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers - Leslie Lamport (Postscript or PDF)
TypeScript
- Making games with TypeScript - Øyvind (HTML) (
? in process) - TypeScript Accelerated - James Porter
- TypeScript Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
Unix
- Commentary on the Sixth Edition UNIX Operating System - J. Lions
- Unix as IDE - Tom Ryder (epub, mobi)
- UNIX Commands and Concepts - Robert I. Pitts
- Unix for Poets - Kenneth Ward Church (PDF)
- Unix Toolbox - Colin Barschel
Verilog
- Verilog Quick Reference Guide - Sutherland HDL (PDF)
VHDL
- Free Range VHDL - Bryan Mealy, Fabrizio Tappero (TeX and PDF)
Vim
- Use Vim Like A Pro - Tim Ottinger (Leanpub account or valid email requested)
- Vi Improved -- Vim - Steve Oualline (PDF)
- Vim Recipes (PDF)
Visual Basic
Visual Prolog
Web Services
- RESTful Web Services (PDF)
Windows 8
Windows Phone
- Windows Phone 8 Development Succinctly - Matteo Pagani (PDF)
Workflow
xBase (dBase / Clipper / Harbour)
- Application Development with Harbour - Wikibooks
- Clipper Tutorial: a Guide to Open Source Clipper(s) - Wikibooks
Active9 days ago
This question attempts to collect a community-maintained list of quality books on the c programming language, targeted at various skill levels.
C is a complex programming language that is difficult to pick up on-the-go by reading online tutorials. A comprehensive book is often the best way to learn the language, and finding a good book is the first step. It is important to avoid badly-written books, and even more importantly, books that contain serious technical errors.
Please suggest edits to the accepted answer to add quality books, with an approximate skill level and a short blurb/description about each book. (Note that the question is locked, so no new answers will be accepted. A single answer is being maintained with the list)
Feel free to debate book choices, quality, headings, summaries, skill levels, and anything else you see that is wrong. Books that are deemed satisfactory by the C community here will stick around on the list; the rest will be regularly removed.
For books that have reviews by the Association of C and C++ Users (ACCU), a link to those reviews should be added along with the book.
See also:
- Other C-related resources in the ctag wiki
- A similar list for c++: The Definitive C++ Book Guide and List
This question was discussed on Meta as part of the Deleted Questions Audit 2018.
The consensus was to keep it undeleted and actively maintained.
The consensus was to keep it undeleted and actively maintained.
locked by George Stocker♦Aug 1 '13 at 17:25
This question’s answers are a collaborative effort. If you see something that can be improved, just edit the answer to improve it! No additional answers can be added here.
Read more about locked posts here.
1 Answer
Warning
This is a list of random books of diverse quality. In the view of some people (with some justification), it is no longer a list of recommended books. Some of the listed books contain blatantly incorrect statements or teach wrong/harmful practices. People who are aware of such books can edit this answer to help improve it.See The C book list has gone haywire. What to do with it?, and also Deleted question audit 2018.
- 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.
- C: A Reference Manual (5th Edition) - Samuel P. Harbison and Guy R. Steele (2002). An excellent reference book on C, up to and including C99. It is not a tutorial, and probably unfit for beginners. It's great if you need to write a compiler for C, as the authors had to do when they started.
- C Pocket Reference (O'Reilly) - Peter Prinz and Ulla Kirch-Prinz (2002).
- The comp.lang.c FAQ - Steve Summit. Web site with answers to many questions about C.
- Various versions of the C language standards can be found here. There is an online version of the draft C11 standard.
- The new C standard - an annotated reference (Free PDF) - Derek M. Jones (2009). The 'new standard' referred to is the old C99 standard rather than C11.
- Rationale for C99 Standard.
- Programming in C (4th Edition) - Stephen Kochan (2014). A good general introduction and tutorial.
- C Primer Plus (5th Edition) - Stephen Prata (2004)
- C Programming: A Modern Approach (2nd Edition) - K. N. King (2008). A good book for learning C.
- A Book on C - Al Kelley/Ira Pohl (1998).
- The C Book (Free Online) - Mike Banahan, Declan Brady, and Mark Doran (1991).
- 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).
- Head First C - David Griffiths and Dawn Griffiths (2012).
- 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.
- Applications Programming in ANSI C - Richard Johnsonbaugh and Martin Kalin (1996).
- Object-oriented Programming with ANSI-C (Free PDF) - Axel-Tobias Schreiner (1993).The code gets a bit convoluted. If you want C++, use C++.
- 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. Basically, Hanson took all the code he'd written as part of building Icon and lcc and pulled out the best bits in a form that other people could reuse for their own projects. 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 C Puzzle Book - Alan R. Feuer (1998)
- 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.
- 21st Century C: C Tips from the New School - Ben Klemens (2012). 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.
- Pointers on C - Kenneth Reek (1997).
- Pointers in C - Naveen Toppo and Hrishikesh Dewan (2013).
- Problem Solving and Program Design in C (6th Edition) - Jeri R. Hanly and Elliot B. Koffman (2009).
- Data Structures - An Advanced Approach Using C - Jeffrey Esakov and Tom Weiss (1989).
- 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.
- Expert C Programming: Deep C Secrets - Peter van der Linden (1994). Lots of interesting information and war stories from the Sun compiler team, but a little dated in places.
- Advanced C Programming by Example - John W. Perry (1998).
- Advanced Programming in the UNIX Environment - Richard W. Stevens and Stephen A. Rago (2013). Comprehensive description of how to use the Unix APIs from C code, but not so much about the mechanics of C coding.
- Cannot download anything from internet. 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 Programming FAQs: Frequently Asked Questions - Steve Summit (1995). This is the book of the web site listed earlier. It doesn't cover C99 or the later standards.
- 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.
- 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.
- C Traps and Pitfalls by A. Koenig (1989). Very good, but the C style pre-dates standard C, which makes it less recommendable these days.Some have argued for the removal of 'Traps and Pitfalls' from this list because it has trapped some people into making mistakes; others continue to argue for its inclusion. Perhaps it should be regarded as an 'expert' book because it requires a moderately extensive knowledge of C to understand what's changed since it was published.
- Build Your Own Lisp — Daniel Holden (2014). An enjoyable way to learn C.
- MISRA-C - industry standard published and maintained by the Motor Industry Software Reliability Association. Covers C89 and C99.Although this isn't a book as such, many programmers recommend reading and implementing as much of it as possible. MISRA-C was originally intended as guidelines for safety-critical applications in particular, but it applies to any area of application where stable, bug-free C code is desired (who doesn't want fewer bugs?). MISRA-C is becoming the de facto standard in the whole embedded industry and is getting increasingly popular even in other programming branches. There are (at least) three publications of the standard (1998, 2004, and the current version from 2012). There is also a MISRA Compliance Guidelines document from 2016, and MISRA C:2012 Amendment 1 — Additional Security Guidelines for MISRA C:2012 (published in April 2016).
Note that some of the strictures in the MISRA rules are not appropriate to every context. For example, directive 4.12 states 'Dynamic memory allocation shall not be used'. This is appropriate in the embedded systems for which the MISRA rules are designed; it is not appropriate everywhere. (Compilers, for instance, generally use dynamic memory allocation for things like symbol tables, and to do without dynamic memory allocation would be difficult, if not preposterous.) - Archived lists of ACCU-reviewed books on Beginner's C (116 titles) from 2007 and Advanced C (76 titles) from 2008. Most of these don't look to be on the main site anymore, and you can't browse that by subject anyway.
Be wary of books written by Herbert Schildt. In particular, you should stay away from C: The Complete Reference (4th Edition, 2000), known in some circles as C: The Complete Nonsense.
Also do not use the book Let Us C (16th Edition, 2017) by Yashwant Kanetkar. Many people view it as an outdated book that teaches Turbo C and has lots of obsolete, misleading and incorrect material. For example, page 137 discusses the expected output from
printf('%d %d %dn', a, ++a, a++)
and does not categorize it as undefined behaviour as it should.Learn C The Hard Way (2015) by Zed Shaw. A book with mixed reviews. A critique of this book by Tim Hentenaar:
To summarize my views, which are laid out below, the author presents the material in a greatly oversimplified and misleading way, the whole corpus is a bundled mess, and some of the opinions and analyses he offers are just plain wrong. I've tried to view this book through the eyes of a novice, but unfortunately I am biased by years of experience writing code in C. It's obvious to me that either the author has a flawed understanding of C, or he's deliberately oversimplifying to the point where he's actually misleading the reader (intentionally or otherwise.)
'Learn C The Hard Way' is not a book that I could recommend to someone who is both learning to program and learning C. If you're already a competent programmer in some other related language, then it represents an interesting and unusual exposition on C, though I have reservations about parts of the book. Jonathan Leffler
- Practical C Programming (3rd Edition) - Steve Oualline (1997)(Beginner)
Other contributors, not necessarily credited in the revision history, include:
Alex Lockwood,Ben Jackson,Bubbles,claws,coledot,Dana Robinson,Daniel Holden,Dervin Thunk,dwc,Erci Hou,Garen,haziz,Johan Bezem,Jonathan Leffler,Joshua Partogi,Lucas,Lundin,Matt K.,mossplix,Matthieu M.,midor,Nietzche-jou,Norman Ramsey,r3st0r3,ridthyself,Robert S. Barnes,Steve Summit,Tim Ring,Tony Bai,VMAtm
Alex Lockwood,Ben Jackson,Bubbles,claws,coledot,Dana Robinson,Daniel Holden,Dervin Thunk,dwc,Erci Hou,Garen,haziz,Johan Bezem,Jonathan Leffler,Joshua Partogi,Lucas,Lundin,Matt K.,mossplix,Matthieu M.,midor,Nietzche-jou,Norman Ramsey,r3st0r3,ridthyself,Robert S. Barnes,Steve Summit,Tim Ring,Tony Bai,VMAtm