Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
The Beginner's guide to Advanced C programming for Linux
Rating: 4.5 out of 5(114 ratings)
6,078 students

The Beginner's guide to Advanced C programming for Linux

Learn C, improve your CV & stand out from the crowd when applying for developer positions. Become a better Linux admin.
Last updated 2/2025
English

What you'll learn

  • Learn the basics of the Linux operating system
  • Move on to the advanced features of Linux
  • Learn the basics of programming in C
  • Learn how to write advanced C code for the Linux operating system
  • Learn how to create advanced internet services, like writing your own web server
  • Learn how to write secure code

Course content

3 sections37 lectures11h 58m total length
  • Writing output to the screen12:26

    Learn to write a hello world program in linux using nano, include stdio, define int main, print with printf, compile with gcc, and run the executable.

  • Reading input from the keyboard8:39

    Learn to read a user's name from the keyboard by defining a char variable and using scanf with %s and an ampersand, then greet with printf.

  • Integer numbers5:22

    Declare and read integers in C using int variables and scanf with %d, then sum two inputs into a third variable and print the result with printf.

  • Decimal (float) numbers8:14

    Explore float numbers in C by reading the circle radius with scanf using %f, compute the area as r*r*pi with pi set to 3.14, and print the result.

  • Troubleshooting your code6:00

    Learn to debug C code by distinguishing errors from warnings, reading GCC messages, and interpreting line numbers and misplaced semicolons around printf.

  • While loops7:58

    The lecture demonstrates the while loop in C, showing how to loop until a user enters a nonzero value using a scanned int x and a quit prompt.

  • If statements9:00

    Learn the if statement in C by checking speed with conditions like more than 100, equal to 100, and not equal, using else if and else blocks to print messages.

  • Functions11:49

    Create and use a function to compute triangle area from base and height. Read base and height from the user, call the area triangle function, and print the area result.

  • Random numbers19:11

    Explore pseudo random values in C by implementing a custom random function using rand and srand, seeded with getpid, and produce numbers 1 to max via modulo.

  • Sleep3:32

    Learn how to use the sleep function in C to pause a program for a few seconds, include unistd.h, and resolve implicit declaration warnings.

  • Countdown12:03

    Create a countdown in C with a while loop, printing numbers, sleeping one second, and decrementing with number minus one, number -= 1, or number--, while using break and continue.

  • ASSIGNMENT: dice game0:07
  • SOLUTION: dice game22:06

    Develop a simple dice game in C for Linux with a starting balance, user bets and guesses, a random dice roll, and a loop that ends on quit or bankruptcy.

  • Structures9:59

    Define and use structures in C to create a blueprint for composite variables, instantiate a person record, fill fields with string copy, and print the data.

  • Switch7:54

    Explore how the switch statement replaces if-else chains by selecting code based on a single input value, using cases, breaks, and a default.

  • Pointers6:57

    Explore pointers in C for Linux: create and manipulate pointers, pointer arithmetic, and dereferencing to access strings, using the string copy function, and printing with printf.

  • For loops13:35

    Learn how to implement for loops in C to generate a multiplication table, validate input with assert, and understand macros and the role of for versus while loops.

Requirements

  • All you need is a general interest in computers.

Description

-Why should you learn how to code C?


It makes you a better programmer - in all languages.C is the mother of all languages, almost all other programming languages are based on C. By learning the "basement", you improve the ceiling and the entire structure.


It looks really good on your resumé or CV. Most programmers (and their bosses) know that people who code C, are mostly better coders in any language. It makes your job application or freelance bid stand out from the crowd in a positive way.


It makes you a better sysadmin. You can be a good sysadmin without knowing how to code but if you aim to be great at Linux, then you must know how to code C. Most Linux software (and most of Linux itself) is written in C. If you want to understand the system in depth, then learning C is your best option.


It improves your general knowledge of computers. In order to write advanced C code you must understand the hardware. C is very connected to the hardware. There are no classes or objects or any other filtered layers between you and your hardware. You manipulate the RAM directly with your pointers and you execute kernel system calls in direct contact with the operating system. By learning advanced C, you learn to understand the OS and your computer's hardware.


-Why learn C from dr Jonas Birch and not from the other ten Udemy instructors?


Experience in the C language. When dr Birch was 18 years old and had been coding C for five years, he was traveling all over Europe, invited to different coding and security conferences, giving lectures about C and security. Since then he has coded C almost every day - for an additional 20 years!


Experience in teaching. Dr Birch has been teaching the C language (live) almost full time the last six years, helping hundreds and hundreds of students learn the mother of all languages - in Linux.


Very soothening voice and amazing sound quality. Dr Birch has a very dark, relaxing voice which is very easy to listen to (a really underestimated feature). He is recording in a professional recording studio with enterprise level microphone and equipment, which makes for a very good listening experience.


Enroll Now or try out the free sample lectures.

Who this course is for:

  • People interested in learning a core programming language so well, that one can easily migrate to other languages later on.
  • Students who want to improve their CV's, stand out in job applications and be better coders and sysadmins.