Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)
Bigger doesn't imply better. Bigger often is a sign of obesity, of lost control, of overcomplexity, of cancerous cells

C Open Books and Tutorials

News C language Best C Books Recommended Links University courses Articles and chapters
Language   History Random Findings Humor Etc

See also TutorialSearch Two good books on C were at some point of time available online from (still might be available elsewhere on the web :-)

Do not waste  time browsing the WEB searching for tutorials, but a good discounted book first.  Believe me it would be difficult to find something even close to the quality of a published book on the WEB, unless this is a WEB variant of a published book ;-).  See  C bookshelf. for printed books recommendations.

All reference below are supplementary. You can also try to buy a decent book , actually you can do this for approximately the cost of your monthly WEB access ;-). 

As for sites with similar collections of links also LEARN CC++ TODAY - a list of C/C++ tutorials by Vinit Carpenter (old, last updated in 1996),  and CSS Program Web Library; C programming.

There are not the best overall, but used in tandem can probably substitute any paper book if you have no money to buy it.  

Recommended Links

Google matched content

Softpanorama Recommended

Top articles


Welcome to the Steve Oualline WEB Server

Steve Oualline   C Elements of Style  Free online book

****+ Teach Yourself C in 24 Hours  -->e-text was available from 
Tony Zhang / Paperback / Published 1997
Amazon price: $19.99 ~ You Save: $5.00 (20%)
This is an amazing deal. A very decent introductory book + compiler for just $19.99 ! CD ROM includes C compiler (VC or Borland -- your mileage may vary ;-). Drawback: most of  the lessons are done with math problems, but this is perfect for real beginners, especially for high school students. Here is one review from that I agree with:
Very clear introduction for the beginner
Tony Zhang has done a fine job of introducing the reader to C so that s/he can then jump to a more advanced book such as K&R's The C Programming Language. Each lesson can indeed be completed in under an hour, thus living up to the "24 hour" claim. Amazingly enough, there are many examples and exercises, all of which are explained thoroughly. And the compiler works just fine--don't listen to these uninformed readers who can't bother reading the instructions in the book (I mean, really).
I emphasize that this is a book for beginners. More advanced programmers would do well to skip to a book that treats more advanced topics. Finally, this is a book about the ANSI-C standard, i.e., not Visual C++. Before attempting to master MS's development tools for Windows, one should have knowledge of C and (especially) C++ in their ANSI-standard form. Otherwise, you are not really learning programming fundamentals. (This admonition doesn't apply to Visual Basic, which is a Windows-specific programming language.)
**** Teach Yourself C in 21 Days  -> e-text was available from  
Peter G. Aitken, et al / Paperback / Published 1997 / ISBN: 0672310694
Amazon price: $23.99

Table of content.
Paperback 710 pages
Average Customer Review: **** 
Number of Reviews: 7

This is a decent, but not great introductory C book. This is a really good intermediate book.  Level of chapters after 5 is too high for the introductory book.  Special chapter (ch.8) is devoted to explaining scope.  Chapter 15 explains how to use pointers with lists.  Ch.19 "Exploring the C Function Library" contains a lot of useful material absent in other books. The book contains both exercises and quizzes. Better deal is to buy is with Visual C++ 6.0 introductory edition ( Alessandro A. de Oliveira) New Jersey - Brookdale Community College from NJ, USA , August 12, 1998 ***
Not so good but it introduces the overall of C language
For the first chapters it was exicting. After that it got hard and a bit complicated. But you get to stick to it, because only this way you' ll be able to understand the process about teaching yourself. DISCIPLINE is the word ! When you done with the book , go out and get another C book , you may increase your knowledge by seeing other methods of teaching by book, methods adopted by other C writers ! So take your chances !!!! The book is fare ! NO PAIN NO GAME !

Anthony Michael Tregre ( from Austin, Texas, United States of America , July 18, 1998 *****
An easy to follow, comprensive tool for learning C.
An excellent example of Sam's Teach Yourself series, TYC in 21 Days is perfect for those who want to get into the field of computer programming. This book offers a chance to learn the basics of C (which is an extremely useful language in and of itself, as well as a gateway to learning other popular languages such as C++ and Java) in an easy-to-understand format. Everything you learn here will prove invaluable in a career of programming. If I had to recommend a first book to buy for the aspiring coder, this one would be it.

The C Programming Language Answers To Exercises


These notes are part of the UW Experimental College course on Introductory C Programming. They are based on notes prepared (beginning in Spring, 1995) to supplement the book The C Programming Language, by Brian Kernighan and Dennis Ritchie, or K&R as the book and its authors are affectionately known. (The second edition was published in 1988 by Prentice-Hall, ISBN 0-13-110362-8.) These notes are now (as of Winter, 1995-6) intended to be stand-alone, although the sections are still cross-referenced to those of K&R, for the reader who wants to pursue a more in-depth exposition.

Learn C Programming --  a learning CD with an audio track

Notes on Writing Portable Programs in C

University Courses

Articles and Chapters

Random Findings


howstuffworks : C tutorial Complete, thoroughly-illustrated C Programming Language tutorial with many examples to assist in becoming a C programmer.
C library reference guide Complete reference to the ANSI C language.
tutorial: Pointers and Arrays A tutorial on pointers and arrays in the C programming language by Ted Jensen.
c course a very good online course
c programming notes c programming notes
c in 5 hours c in 5 hours
Programming in C: A Tutorial Programming in C: A Tutorial
C Tutorial For Beginners Intends to teach C to someone with no previous experience.
C for C++ Programmers Highlights the differences with C++ including comments, input/output, memory allocation, variable declarations, constants, structures, booleans, libraries and suggested reading.
C For C++ Programmers Introduction to the subset of C++ and differences between the languages including scope, data structures, function behavior, library functions, input/output and compiling.
Outputting text outputting text in C
Use of variables in C The use of Variables in 'C'. - Variable types -Global, local, static. Where to Declare Variables. Strings can't be declared as a string.
Intro to C covers a little about C, printf, and newline esc.
C variables a little about variables in C
Ground cero guide to C Attempts to introduce absolute beginners to C.
The basics of singly linked lists The basics of singly linked lists
Crash proof C/C++ code Christopher McGee explains the different causes of crashes and how to make them a thing of the past by following a few simple rules as you write code.
C elements of style This book covers only the C language and is a bit out dated. However it still contains a lot of good advice. HTML and pdf versions available
Intro to pointers An article showing the use of pointers in C and C++
First C program Hello world in C
Constants and variables Constants and variables in C
Data types All about C's data types
type modifiers type modifiers
Arithmetic operators Arithmetic operators
Input And Output Input And Output in C
Printf and Scanf Displaying output and recieving input
Comparison and Logical Operators Comparison and Logical Operators
Conditional Branching 1 and 2 Conditional Branching 1 and 2
Looping looping in C
Bitwise operators 1 Bitwise operators part 1
Bitwise operators 2 Bitwise operators part 2
Bitwise operators 3 Bitwise operators part 3
Functions All about functions
Arrays 1 Arrays in C part 1
Arrays 2 Arrays in C part 2
Passing arrays to functions passing arrays to functions
Pointers 1 Pointers tutorial part 1
Pointers 2 Pointers tutorial part 2
Pointers 3 Pointers tutorial part 3
Strings 1 About strings in C part 1
Strings 2 About strings in C part 2
String / Number conversion Converting between strings and numbers in C
String functions Functions to manipulate strings in C
Enum and Typedef About enum and typedef in C
Structures 1 Structures part 1
Structures 2 Structures in C part 2
Structures 3 About structures and C part 3
Unions Unions and C
Memory allocation Memory management in your programs
Simply C An intro to C
Advanced Linked Lists This tutorial will cover the rest of the more advanced features and uses of linked lists
Bit manipulation This tutorial will introduce you to the binary and hexadecimal number systems, and teach you how to manipulate individual bits
loading a wav file A tutorial with code, that shows how to load a .wav file in C
loops in C a short tutorial about loops in C
pointers in C This is a small primer on pointers in C. A must for a beginner.
Pointers and arrays in C A well-written and comprehensive tutorial, about pointers and arrays in C.
C windows programming Large tutorial on Windows Programming with C. Explains how to deal with menus, dialogs, windows, files and more...
Bug free C code Online book by Jerry Jongerius advocates a style of programming based upon classes, data abstraction, run-time type checking, and fault tolerant functions which results in bug-free C code.
ansi c reference This is a guide to all ANSI-C functions that exists.
gametutorials C tutorials A nice collection of downloadable code examples . Well documented .
Coronado C course (commercial) The C tutorial teaches you the entire C language. It covers the ANSI-C standard and gives a few illustrations of the original K&R C language. It is composed of 13 chapters which should be studied in order since topics are introduced in a logical sequence and build upon topics introduced in previous chapters.
Pointers to functions in C This article explains Pointers to Functions in C. There may be thousands of programmers who know how to use pointers to functions, but I know that there are many, many more who have no idea what it is and how to use it. This article is for those who know C programming very well, but are not yet familiar with this wonderful concept of using pointers to functions.
Variables Variables in C
Operators Operators in C
Constructs constructs for program flow
Arrays Arrays in C
Functions Functions in C
Pointers and strings Pointers and strings in C
Memory Memory allocation in C
Structures Structures in C
Linked lists Linked lists in C
File handling File handling in C
Command line arguments Command line arguments in C
bitwise operators Bitwise operators in C
Debugging Debugging and testing in C
First program your first ever program - Hello World
declaring, variables, keywords, case sensitivness declaring, variables, keywords, case sensitivness
declaring, constants, directives declaring, constants, directives
I/O input, output, conversion characters, gets, puts, scanf, printf - I/O
if.. else and else if - selection statements if.. else and else if - selection statements
logical operators logical operators - short summary
the switch() case statement the switch() case statement
iteration statements while loop, do..while loop, for loop - iteration statements
one dimensional arrays, string literals one dimensional arrays, string literals
strings strings, strcpy(),
introduction to pointers introduction to pointers
functions, function protytypes functions, function protytypes
Introduction to C/C++ Compilers Introduction to C/C++ Compilers
Input, Output and Libraries Input, Output and Libraries
Using Different Data Types Using Different Data Types
Initializing Variables and Arithmetic Operators Initializing Variables and Arithmetic Operators
Declaring Constants and Preprocessor Directives Declaring Constants and Preprocessor Directives
Comments, Errors, clrscr(), writing good readable programs Comments, Errors, clrscr(), writing good readable programs
One Dimensional Arrays and Strings One Dimensional Arrays and Strings
Relational Operators Relational Operators, the switch statement and use of indentation
for loops for loops
while and do ...while Loops while and do ...while Loops
Functions, Local and Global Variables Functions, Local and Global Variables
using atoi(), atof(), strcpy(), toupper(), stdlib.h, ctype.h, string.h header files using atoi(), atof(), strcpy(), toupper(), stdlib.h, ctype.h, string.h header files
Keywords C Keywords
libraries libraries in C
c guide programmers guide to C
ctutorde C language tutorial, style, and quiz program
Lesson 1: Hello World Lesson 1: Hello World
Lesson 2: Variables Lesson 2: Variables
Lesson 3: Constants Lesson 3: Constants
Lesson 4: Input and Output Lesson 4: Input and Output
Lesson 6: Conditional Processing, Part 2 Lesson 6: Conditional Processing, Part 2
Lesson 7: Looping Lesson 7: Looping
Lesson 8: Introduction to Pointers Lesson 8: Introduction to Pointers
Lesson 10: Strings Lesson 10: Strings
Lesson 11: Structures Lesson 11: Structures
Lesson 12: Memory Allocation Lesson 12: Memory Allocation
Lesson 13: File I/0 and Command Line Arguments Lesson 13: File I/0 and Command Line Arguments
Lesson 14: Functions Lesson 14: Functions
Lesson 15: Scope and Program Structure Lesson 15: Scope and Program Structure
VGA Basics Setting the video mode, plotting a pixel, and mode 0x13 memory.
Primitive Shapes & Lines Drawing lines, polygons, rectangles, and circles. Also, Bresenham's algorithm, fixed-point math and pre-computing tables.
Bitmaps & Palette Manipulation The BMP file format, drawing bitmaps, and palette manipulation.
Mouse Support & Animation Mouse status, motion, and buttons. Also, animation.
Double Buffering, Page Flipping, & Unchained Mode Double buffering, page flipping, structure of unchained mode, and 256-color modes other than 320x200.
Pointers Pointers
Pointers And Arrays Pointers And Arrays
Brief Intro on Recursion Brief Intro on Recursion
Codevision C turorial A simple tutorial in PDF format to get up and running with codevision C compiler for AVR microcontrollers




Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy


War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes


Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law


Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Haterís Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least Technology is dominated by two types of people: those who understand what they do not manage and those who manage what they do not understand ~Archibald Putt. Ph.D

Copyright © 1996-2018 by Dr. Nikolai Bezroukov. was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case is down you can use the at


The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: September 12, 2017