
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.
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.
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.
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.
Learn to debug C code by distinguishing errors from warnings, reading GCC messages, and interpreting line numbers and misplaced semicolons around printf.
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.
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.
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.
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.
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.
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.
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.
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.
Explore how the switch statement replaces if-else chains by selecting code based on a single input value, using cases, breaks, and a default.
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.
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.
Engage with the advanced part of this course and transition from the beginner course, inviting you to enjoy the material.
Explore dynamic memory allocation using malloc to allocate memory via a pointer, read input with scanf, and remember to free memory; avoid ampersand with pointers and contrast static memory.
Explore timed read line in C for Linux using select to read from standard input with a timeout, returning input or zero on timeout. The example uses a static buffer.
Explore xor encryption by encrypting the letter A with a single-character key, then decrypting it by xor-ing again with the same key, using C for demonstration.
Learn to build richer text interfaces for Linux consoles with ncurses, using windows, initialize screen, printw, refresh, getch, clear, and endwin to manage input and display.
Learn to place text precisely on the screen with ncurses by using getyx to read the cursor, move to specific x,y coordinates, and printw, then refresh the display.
Learn to move a character with the ncurses library using arrow keys. Set up keypad and noecho, handle left and right keys, constrain x to 0-30, and exit on Q.
Explore advanced C function pointers by declaring a function pointer, selecting add, subtract, divide, or multiply at runtime, and calling via the pointer with required arguments.
Learn how to implement a linked list in C on Linux by using structs with a next pointer, dynamically allocating nodes with malloc, and adding, listing, searching, and removing books.
Learn to use the ampersand to pass the address of a variable to a function, work with pointers, and modify values through a target parameter in C.
Build a simple TCP client using sockets to connect to an HTTP server on port 80, send a HEAD request, and read the response.
Build a simple tcp server in Linux by initializing a socket, binding to a port, listening for connections, accepting a client, sending a predefined message, and closing the connection.
Explore how the fork function splits a Linux C program into two processes, enabling parallel execution and handling multiple connections in a simple web server example.
Build a modular http server in c for linux using fork to handle multiple connections, implement a root-based routing, and lay the groundwork for serving web pages.
Build and extend a Linux C web server by handling client connections with fork, reading and parsing HTTP requests, extracting method, URL, and HTTP version, and testing with real-world templates.
Learn to build a simple Linux C HTTP server by parsing requests, routing URLs, and sending HTTP headers and responses (200 and 404) with content type text/html.
Develop a Linux C web server by implementing read file and send file, handling http get for html and images with content types.
Finish building a custom webserver in C for Linux by debugging file serving, fixing the read/write logic, and ensuring correct binary content delivery with proper http headers and security checks.
Design a dynamic stack list in C with push and pop operations, supporting strings and future generalization. Explore a struct-based approach, including a constructor and penultimate logic for safe pop.
-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.