Programming Tutorials

Excellent Free Tutorials to Learn C

C is a general-purpose, procedural, portable, high-level programming language that is one of the most popular and influential languages. It was designed to be compiled using a straightforward compiler, to provide low-level access to memory, to provide language constructs that map efficiently to machine instructions, and to require minimal run-time support. Many programming languages owe a considerable debt to C. It has become something of the lingua franca in the programming world.

C is fairly simple to understand. It allows the programmer to organize programs in a clear, easy, logical way. It is a very flexible, practical and compact language combined with an easy to read syntax. Code written in C runs quickly, with easy access to the low level facilities in the computer. Compiler directives make it possible to produce a single version of a program compiled for different architectures.

Here’s our recommended tutorials to learn C. If you’re looking for free C programming books, check here.


1. learn-c.org

learn-c.org is a free interactive C tutorial.

The vision is to teach coding within the browser using short and effective exercises. By running actual code directly from the web browser, students are able to try out coding without installing and executing it locally, which can be hard and redundant for the purpose of learning how to code. This creates a more efficient learning process, because students focus on learning instead of setting up coding environments.

Read the tutorial


2. C Programming Tutorial by Guru99

This online course teaches you basic to advance level concept of C Programming to make you pro in C language. This is an absolute beginner guide to C Programming.

Read the tutorial


3. A Tutorial on pointers and arrays in C by Ted Jensen

This document is intended to introduce pointers to beginning programmers in the C programming language.

Read the tutorial


4. C for Python programmers by Carl Burch

This document is directed at people who have learned programming in Python and who wish to learn about C. C’s “influence on Python is considerable,” in the words of Python’s inventor, Guido van Rossum (“An Introduction to Python for UNIX/C Programmers,” 1993). So learning Python is a good first step toward learning C.

Read the tutorial


5. C Programming Boot Camp by Paul Gribble

This tutorial is licensed under a Creative Commons Attribution 4.0 International License.

Read the tutorial


6. Everything you need to know about pointers in C by Peter Hosey

This document comes with a companion example program. This tutorial is licensed under a Creative Commons Attribution 2.5 License.

Read the tutorial


7. C Programming Tutorials by thenewboston

This is an excellent set of video tutorials.

Watch the videos


8. Pointers and Memory by Nick Parlante

This document explains how pointers and memory work and how to use them—from the basic concepts through all the major programming techniques. For each topic there is a combination of discussion, sample C code, and drawings.

Read the document


9. Aalto C by MOOC

This course will teach you the basics of the C programming language. There are no special prerequisites, but some previous programming experience will be helpful.

Read the course


10. Learn c in Y minutes by Adam Bard

C is the lowest-level language most programmers will ever use, but it more than makes up for it with raw speed. Just be aware of its manual memory management and C will take you as far as you need to go.

Read the guide


All tutorials in this series:

Free Programming Tutorials
JavaGeneral-purpose, concurrent, class-based, object-oriented, high-level language
CGeneral-purpose, procedural, portable, high-level language
PythonGeneral-purpose, structured, powerful language
C++General-purpose, portable, free-form, multi-paradigm language
C#Combines the power and flexibility of C++ with the simplicity of Visual Basic
JavaScriptInterpreted, prototype-based, scripting language
PHPPHP has been at the helm of the web for many years
RubyGeneral purpose, scripting, structured, flexible, fully object-oriented language
AssemblyAs close to writing machine code without writing in pure hexadecimal
SwiftPowerful and intuitive general-purpose programming language
GroovyPowerful, optionally typed and dynamic language
GoCompiled, statically typed programming language
PascalImperative and procedural language designed in the late 1960s
PerlHigh-level, general-purpose, interpreted, scripting, dynamic language
RDe facto standard among statisticians and data analysts
COBOLCommon Business-Oriented Language
ScalaModern, object-functional, multi-paradigm, Java-based language
FortranThe first high-level language, using the first compiler
ScratchVisual programming language designed for 8-16 year-old children
LuaDesigned as an embeddable scripting language
LogoDialect of Lisp that features interactivity, modularity, extensibility
RustIdeal for systems, embedded, and other performance critical code
LispUnique features - excellent to study programming constructs
AdaALGOL-like programming language, extended from Pascal and others
HaskellStandardized, general-purpose, polymorphically, statically typed language
SchemeGeneral-purpose, functional, language descended from Lisp and Algol
PrologGeneral purpose, declarative, logic programming language
ForthImperative stack-based programming language
ClojureDialect of the Lisp programming language
JuliaHigh-level, high-performance language for technical computing
SQLAccess and manipulate data held in a relational database management system
ErlangGeneral-purpose, concurrent, declarative, functional language
VimLPowerful scripting language of the Vim editor
OCamlGeneral-purpose, powerful, high-level language
AwkVersatile language designed for pattern scanning and processing
RacketPlatform for programming language design and implementation
BASICFamily of general-purpose, high-level programming languages
CoffeeScriptA very succinct programming language that transcompiles into JavaScript
LaTeXProfessional document preparation system and document markup language
ElixirRelatively new functional language that runs on the Erlang virtual machine
DartClient-optimized programming language for fast apps
ABAPAdvanced Business Application Programming
F#General purpose, strongly typed, multi-paradigm language. Part of ML
ChapelParallel-programming language in development at Cray Inc.
DylanMulti-paradigm language, supports functional & object-oriented programming
DGeneral-purpose systems programming language with a C-like syntax
SolidityObject-oriented, high-level language for implementing smart contracts
XMLSet of rules for defining semantic tags that describe the structure and meaning
ValaObject-oriented language with a self-hosting compiler that generates C code
ECMAScriptBest known as the language embedded in web browsers
KotlinStatically typed, general-purpose programming language with type inference
TypeScriptStrict syntactical superset of JavaScript, adding optional static typing
MarkdownPlain text formatting syntax designed to be easy-to-read and easy-to-write
PikeInterpreted, general-purpose, high-level, cross-platform, dynamic language
HTMLHyperText Markup Language
FactorDynamic stack-based language
Share this article

Share your Thoughts

This site uses Akismet to reduce spam. Learn how your comment data is processed.