No history yet

Getting Started

The Foundation of Modern Code

Many programming languages exist today, but C is special. Created in the early 1970s by Dennis Ritchie at Bell Labs, C was designed to be a simple, powerful language for building operating systems. In fact, the UNIX operating system, which forms the basis for modern macOS and Linux, was rewritten in C. This close-to-the-hardware capability is why C is still used everywhere: in the tiny microcontrollers in your car, in the software that runs your phone, and in the operating systems that power the internet.

Lesson image

Learning C is like learning the fundamentals of how computers really work. It gives you a strong foundation that makes it easier to understand and learn other languages later. Before you can write code, however, you need a way to translate your instructions into a language the computer's processor can understand. This is the job of a compiler.

Compiler

noun

A special program that processes statements written in a particular programming language and turns them into machine language or 'code' that a computer's processor can use.

Setting Up Your Workshop

To start programming in C, you need two main tools: a text editor to write your code and a compiler to translate it. For the compiler, two of the most popular choices are GCC (GNU Compiler Collection) and Clang. They are free, open-source, and available for all major operating systems.

  • On macOS: Open the Terminal and type xcode-select --install. This installs Apple's Command Line Tools, which includes Clang.
  • On Linux (Debian/Ubuntu): Open the Terminal and run sudo apt-get install build-essential. This installs GCC and other necessary tools.
  • On Windows: The process is a bit different. A popular option is to install MinGW-w64, which provides GCC. You can also use the Windows Subsystem for Linux (WSL) to run a full Linux environment, complete with GCC.

Once installed, you can verify it by opening your terminal or command prompt and typing gcc --version or clang --version.

Next, you need a place to write your code. You can use a simple text editor like Notepad on Windows, TextEdit on Mac, or Gedit on Linux. However, many programmers prefer an Integrated Development Environment (IDE). An IDE bundles a text editor, compiler, and other helpful tools into a single application.

FeatureSimple Text EditorIntegrated Development Environment (IDE)
ComplexityVery simple, easy to learnMore complex, more features
FeaturesJust text editingCode completion, debugging, project management
SetupNone requiredRequires installation and configuration
Best ForQuick scripts, learning the basicsLarge projects, professional development

For beginners, a simple text editor and the command line are great for understanding the fundamental steps. Popular code-focused editors like VS Code, Sublime Text, or Atom are also excellent choices that offer more features than a basic notepad but are less complex than a full IDE like Code::Blocks or Visual Studio.

Your First Program

It's a tradition for a programmer's first program to simply display "Hello, World!" on the screen. Let's write one in C. Open your text editor and type the following code exactly as it appears:

#include <stdio.h>

int main() {
    // This line prints the text to the console
    printf("Hello, World!\n");
    return 0;
}

Let's break this down:

  • #include <stdio.h>: This is a preprocessor directive. It tells the compiler to include the contents of the standard input/output header file. This file contains the declaration for the printf function we use to print text.
  • int main(): This is the main function. Every C program must have one. It's the starting point of your program's execution.
  • printf("Hello, World!\n");: This is a function call. It prints the text inside the double quotes to the console. The \n is a special character that represents a newline, so the cursor moves to the next line after printing.
  • return 0;: This line signals that the program has finished successfully. A return value of 0 conventionally means everything went okay.

From Code to Execution

Now that you've written the code, save the file as hello.c. The .c extension is important as it tells the compiler (and you) that it's a C source file.

Next, open your terminal or command prompt. Navigate to the directory where you saved hello.c. You can do this using the cd command (e.g., cd Documents).

To compile your code, type the following command and press Enter:

gcc hello.c -o hello

This command tells the GCC compiler to take your source file (hello.c) and produce an executable file. The -o hello part is an option that specifies the output file's name. If you omit it, the compiler will create a default file named a.out on Linux/macOS or a.exe on Windows.

If the command runs without any messages, it means your code compiled successfully! You now have a new file named hello (or hello.exe on Windows) in the same directory.

To run your program, type the following:

  • On macOS/Linux: ./hello
  • On Windows: hello

You should see Hello, World! printed in your terminal. Congratulations, you've just written, compiled, and executed your first C program!

This workflow—write, compile, run—is the fundamental cycle of development in C and many other compiled languages.

Ready to test what you've learned?

Quiz Questions 1/6

What was the primary motivation for creating the C language in the early 1970s?

Quiz Questions 2/6

A __________ is a program that translates C source code into an executable file that a computer's processor can understand.

You've taken your first step into the world of C programming. By setting up your tools and running a simple program, you've built a solid foundation for everything to come.