
Learn C with easy, fun, hands-on lessons to build a solid foundation in concepts, debunking the notion that C is difficult, and gain super powers to build anything in C.
Begin this course with no prior programming experience or complex math required. Understand basic arithmetic, and focus on patient learning as your prerequisite.
Take a tour map of delightful C course, outlining C's history, uses, features, and setup, then a hands-on path from basics to advanced programs with debugging tips and career directions.
Discover how Dennis Ritchie designed C in the late 1960s and early 1970s as a general purpose language for Unix, with strongly typed data and compilers like GCC, Clang, MSVC.
Explore how C powers Linux and BSD kernels, Postgres databases, Apache and Nginx web servers, and game engines like Quake and Doom.
Explore how to use online c ide tools without installation, including onlinegdb, geeks for geeks, codechef, and ideone, to write, compile, and run c programs in your browser.
Configure your C programming environment by setting up a VirtualBox virtual machine, Ubuntu Linux, and the gcc compiler or Visual Studio for Windows users.
Disable wayland via gdm3 custom.conf to fix the screen flicker. Install atom editor from a .deb package, launch it, and create a sample c file to see syntax highlighting.
Install Visual Studio Community 2017, download and install desktop development with C++. Create an empty C++ project named myfirst, add a source file, build successfully, then run the program.
The main function serves as the entry point for C applications and can call other functions. There are two versions: one without arguments and one with program flags.
Write a classic hello world program in C using stdio.h and printf. Compile with gcc or cl and run the executable to print 'Classic hello world'.
Explore the delightful-c repository on GitHub, clone or download, unzip, and complete the 003-03 sizeof ints and floats template by filling steps and compiling with gcc.
Discover inline assembly by mixing C with ARM assembly, using asm volatile, and seeing how the compiler embeds assembly in C and the register keyword reveals low-level concepts.
Explore how memory locations and addresses function in C programming, using bytes, hexadecimal notation (0x...), and the CPU's role in reading and writing values.
Discover how a simple integer variable holds a value and its memory address. Print the address with printf %p and & and compile the program with gcc to observe it.
Explore the core C datatypes, including integers (signed and unsigned), real numbers (floats and doubles), chars and strings, plus pointers and enums.
Learn to define integers in C with int, declare variables for 25 violin students and 13 French students, and print the total with printf, showing 38.
Explore how the sizeof operator reveals datatype sizes in memory. See how char, int, long int, float, and double occupy bytes and relate these counts to malloc.
Explore how signed and unsigned integers work in C, including signed long long int and unsigned long long int, their min and max values, and printing with %lld and %llu.
Demonstrate integer wrap around in C by contrasting signed and unsigned types, showing maximum values wrap to zero for unsigned, with a before/after print routine and a clock analogy.
Explore type casting in C by comparing narrowing conversions, overflow risk, and lossy conversions, then see explicit casting of double to int with examples using %d and %f.
Explore how a variable acts as a human readable alias to a memory location, enabling read and write operations through a name like f, with hexadecimal notation for addresses.
Explore the assignment operator and addition in C with hands-on examples, including integer and float math, incrementing with x +=, and printf outputs.
Demonstrate the C multiplication and division operators with integers and floats, including x = x * 4, x *= 4, and x /= 4, plus practical examples.
Learn how C represents infinity with INF and not a number with NAN. See how the modulo operator computes remainders and checks divisibility.
Examine post-decrement and pre-decrement operators in c, noting how j and k update with k-- and --k. See how their evaluation order yields different results in code.
Demystify operator associativity in C, showing how operators determine the grouping of expressions and influence evaluation.
Discover the C math library (libmath) and math.h, using pow, sqrt, exp, and log under IEEE-754 rules. Learn to read man math, pass arguments, and obtain return values.
Explore relational operators to compare values and drive if statements, and outline bit operators—or, and, xor, not, left shift, and right shift—plus basic datatype arithmetic and assignments.
Learn how to write and use functions in C, understand their return values and side effects, and assemble small functions into programs with examples like 4 and 6 producing 10.
Explore defining and calling functions in C, covering return types, void, function naming, arguments, braces, and function calls, illustrated by add_two_integers and DRY principles.
Learn how void functions in C return no value, declare the void return type, and print results with printf, while calling with char arguments and exploring function definition styles.
Learn how in C programming, a function signature defines return and argument types, and how a function declaration (prototype) resolves calls before definition, including the role of header files.
Organize a C program into compilation units by building from main.c and addition.c. Declare a prototype for add_two_int, define it in addition.c, and link the object files into an executable.
Explore how the return keyword exits a function, may return values or nothing, supports multiple return points, and how local variables on the stack cannot have their addresses returned.
Learn to use the C libmath functions pow, sqrt, exp, and log by exploring their signatures from math.h, reviewing manual pages, and implementing a sample program that prints results.
Delve into function level static variables in C, showing how a static variable inside a function retains state across calls, unlike local stack variables.
Explore code blocks in C within functions, learn how braces create local variables with block scope, including nested blocks, and see a demonstration of block-specific variables and prints.
Explore conditional statements in C, detecting changing conditions and taking appropriate actions. Learn how programs respond to internal and external changes, using real-world analogies like traffic lights and data streams.
Demonstrates conditional statements in C by detailing the if statement, its parts, and how to act when a condition is met, including returning infinity for a zero denominator.
Learn to use if, else if, and else to test multiple conditions in C, handling animals like dog, cat, duck, bird, and unknown cases with corresponding prints.
Learn how equality and inequality operators work in C, using if-else blocks to compare x to values like 5 and 6 and print true or false outcomes.
Explore greater than and lesser than relational operators through value comparisons in if statements and loops, using a function to test positive, negative, and range checks.
Explore how greater than or equal to and less than or equal to operators compare values, control if conditions, and determine which code blocks execute in practice.
Explore the ternary operator as a shorthand for if statements in C, using a condition, a question mark, and a colon to return 1 or 0 in divisibility by five.
Demonstrates typedef in C to create aliases for data types, preserving underlying properties while allowing readable names for integers, floats, long long, and enums, with example printing and switch usage.
Explore how relational operators combine with logical and, or, and not to form complex condition checks in C. Implement a range check using min and max.
Explore how the C preprocessor serves as the first stage of compiling, converting source into a form the compiler understands and showing how header content is included.
Explain how a header guard prevents multiple inclusion and compiler errors by defining a guard flag at the top and ending with end-if.
Learn how ifdefined and predefined macros in C automatically expand to enable debugging, printing the function name, file name, line number, and build time for debugging output.
Become the C programmer who not only knows the language syntax but also understands the underlying principles and inner workings of the language.
This course is created in the most comprehensive, yet easy to understand way as it is explained with real world analogies.
This course has 150+ lectures, 21 hours of video in high quality HD resolution,115+ coding sessions, 65+ programming assignments (bonus assignments which will be updated continuously throughout the course).
Whether you have never programmed before, already know some basics, find pointers to be challenging, or want to understand the language in great depth and how it works under the hood in easy to understand and fun way, then this course is for you.
This course will teach you C in a practical manner. Each C concept is taught with a full coding screencast and a set of hands-on assignments (solutions included).
You can write C programs, regardless of your operating system, whether its Linux, Mac or Windows. All installation steps are clearly explained.
Here is exactly what we cover in this course:
# All the C and programming fundamentals: things like data types, functions, loops, conditionals, arrays, strings, pointers, structs, unions and more.
# Everything you need to know in order to gain a deep understanding of how C works behind the scenes: inline assembly, C to assembly, writing to memory, manipulating memory with pointers
# Learn how to structure code using header files, extern keyword and usage of flags
# Learn how to debug code using debuggers
# Learn how to build and write make files
You will get lifetime access to over 150 plus HD quality lectures and related coding assignments.Learn at your own pace, whenever you want.
Downloadable starter code and final code for each programming assignment.
Free helpful support in the course Q&A when you have questions.
This course comes with a 30 day money back guarantee! If you are not satisfied in any way, you’ll get your money back. Plus you can have access to all the coding assignments and bonus assignments as a thank you for trying the course.
So what are you waiting for?
Learn C language that will broaden your knowledge, feed your curiosity, open new career options all in a fun and practical way!
Join me in the only C programming course that you will need!