Create your free BvLogic ID to continue this course and save your progress.
C Programming 5 lessons
  1. 1 Where memory stops being invisible
  2. 2 Types, pointers and memory sign in to open
  3. 3 Managing memory yourself sign in to open
  4. 4 Structuring a C program sign in to open
  5. 5 Where C takes you sign in to open
Course overview
Data: video · change

This lesson: 122KB

C Programming · Lesson 1 of 5

Where memory stops being invisible

Understand why this language is still taught.

C is small, old and still everywhere: operating systems, embedded devices, databases, network equipment, and the runtime underneath languages like Python.

Why learn it when you will probably write Python or JavaScript. Because it makes explicit what other languages hide. Memory allocation, the difference between a value and an address, what a string actually is, what happens when a program crashes. Somebody who has written C understands what their high level language is doing for them, and that understanding is what separates a developer who can diagnose a strange problem from one who can only report it.

It is also the basis of almost every computer science syllabus here, so it arrives whether or not you chose it.

What makes it hard. Nothing is done for you. There is no garbage collector, no bounds checking, no string type, and no helpful error when you do something wrong. A program that reads past the end of an array does not crash politely; it reads whatever was next in memory and carries on with a wrong value.

What that means practically. C errors are frequently silent, and the crash happens somewhere unrelated to the mistake. This is the single most important thing to understand before starting.

Set up properly: a compiler, and the habit of compiling with all warnings enabled and treating them as errors. Almost every beginner bug produces a warning that was switched off.

Lab — try it yourself

Compile one program with all warnings enabled and treat them as errors. Fix everything it reports before running anything.

Check what you learned

Create your free BvLogic ID to take the quiz and record your score.

Create your BvLogic ID
Continue to lesson 2 Up next 2. Types, pointers and memory