4.53 out of 5
4.53
4085 reviews on Udemy

Advanced C Programming Course

Become a True Master of the C Programming Language - Confidently Apply for Real Time or Embedded C Jobs or contracts!
Instructor:
Tim Buchalka's Learn Programming Academy
32,601 students enrolled
English More
Understand and be able to apply advanced concepts of the C programming language to create advanced C applications.
Understand Function and Double Pointers, Recursion, Bit Manipulation, Macros, Signals and loads more (check curriculam on this page for full list).
Learn all about threads and networking with Sockets.
Master the art of problem solving in programming using efficient, proven methods.
Be able to apply advanced C concepts to other programming languages.
How to write high quality C code, to make yourself more marketable for higher level programming positions and be apply for real-time/embedded programming positions.

What you will learn in this course?

The C programming language in 2020 is still one of the most popular and widely used languages. Having C programming skills gives you great career options, but learning the C language, particularly some of the trickier advanced stuff can be really difficult.

This course is designed to take your basic C skills to the next level and help you obtain mastery of the language by helping you understand advanced concepts of the C programming language, enabling you to master the art of problem-solving in programming using efficient, proven methods.

You’ll learn how to write high-quality C code and to make yourself more marketable for higher-level programming positions.

Just some of the topics in this huge 28-hour course include Threads, Function Pointers, Double Pointers, Recursion, Networking using Sockets, Bit manipulation, Macros, Signals, Storage Classes and loads more.  Check the curriculum on this page for full details of what is included in this very comprehensive course.

By the end of this course, with your new-found skills, you will be able to apply for real-time/embedded C programming positions or any job that requires mastery of the C programming language and be able to apply your new skills developing your own Advanced C programs.

What’s different about this course?

Jason Fedin is your instructor in this course and this course takes the skills you learned in that course to the next level.

This course focuses on the details and a thorough understanding of all advanced C programming concepts. This is not just a how-to course, it is a “why?” course.

You will learn how to implement specific advanced C concepts such as multi-threading and double pointers, in addition to learning why they are the best approach and how they make you a high-quality C programmer.

Many, many examples, challenges and quizzes are provided to test your understanding of every concept that you have learned.

This course is unique to other courses here at Udemy in that the details and the why are explained. We do not just go through projects and provide a how-to.

Who is the course aimed at?

This is not a beginner’s course.  It’s assumed you have some knowledge of the C programming language, preferably having completed our Beginner course (here on Udemy) or similar training and/or commercial programming experience in C or a similar language.

Getting started

If you are ready to get started, click on the enroll or Add to Cart button on this page and start taking your C Language skills to the next level.

Introduction

1
Welcome to Class!
2
Class Organization
3
The C99 Standard
4
The C11 Standard

Installing Required Software

1
Overview
2
Installing the C Compiler (Windows)
3
Installing CodeLite On Windows
4
Configuring CodeLite on Windows
5
Installing the C Compiler (Mac)
6
Installing CodeLite on Mac
7
Configuring CodeLite on Mac
8
Installing CodeLite on Ubuntu Linux
9
Configuring CodeLite on Ubuntu Linux
10
Creating a Default CodeLite Project Template (All Versions)
11
Using the Command Line Interface
12
Using the Command Line Interface on Windows
13
Using the Command Line Interface on Mac
14
Using the Command Line Interface on Linux
15
Using a Web-based C compiler

Starting to Write Code

1
Exploring the CodeLite Environment
2
Creating our first C program
3
Building/Compiling our first program

Working with Larger Programs

1
Overview
2
Compiling multiple source files from the command line
3
Makefiles
4
Communication between files
5
Using Header files effectively
6
Heap and Stack Memory Allocation

Storage Classes

1
Automatic Variables
2
External
3
Static
4
Register
5
(Quiz)
6
(Challenge)

Advanced Data Types

1
The #define statement (constants)
2
Using typedef
3
Variable Length Arrays
4
(Challenge) Variable Length Arrays
5
Flexible Array Members
6
(Challenge) Flexible Array Members
7
Complex number types
8
(Challenge) Complex number types
9
Designated Initializers
10
(Quiz)
11
(Demonstration) Challenge solutions

Type Qualifiers

1
const
2
volatile
3
restrict
4
(Quiz)

Bit Manipulation

1
Binary numbers and bits
2
(Challenge) Binary numbers and Bits
3
(Demonstration) Binary numbers and Bits
4
Bitwise Operators (Logical)
5
Bitwise Operators (Shifting)
6
(Challenge) Bitwise Operators
7
(Demonstration) Bitwise Operators
8
Bitmasks
9
Using Bit Operators to pack data
10
(Challenge) Setting and Reading bits
11
(Demonstration) Setting and Reading bits
12
Using Bit Fields to pack data
13
(Challenge) Using Bit Fields to pack data
14
(Demonstration) Using Bit Fields to pack data
15
(Quiz)

Advanced Control Flow

1
The goto statement
2
(Challenge) The goto statement
3
The null statement
4
The comma operator
5
setjmp and longjmp functions
6
(Challenge) setjmp and longjmp functions
7
(Demonstration) Advanced Control Flow
8
(Quiz)

Input and Output

1
char functions (input)
2
char functions (output)
3
(Challenge) char functions
4
(Demonstration) char functions
5
string functions
6
(Challenge) string functions
7
(Demonstration) string functions
8
Formatting functions
9
(Challenge) Formatting functions
10
(Demonstration) Formatting functions
11
(Quiz)

Advanced Function Concepts

1
Variadic Functions
2
va_copy
3
(Challenge) Variadic Functions
4
(Demonstration) Variadic Functions
5
Recursion
6
(Challenge) Recursion
You can view and review the lecture materials indefinitely, like an on-demand channel.
Definitely! If you have an internet connection, courses on Udemy are available on any device at any time. If you don't have an internet connection, some instructors also let their students download course lectures. That's up to the instructor though, so make sure you get on their good side!
4.5
4.5 out of 5
4085 Ratings

Detailed Rating

Stars 5
2160
Stars 4
1396
Stars 3
377
Stars 2
81
Stars 1
61
23f6c541513e834ef8d3c6355e0ccbcf
30-Day Money-Back Guarantee

Includes

29 hours on-demand video
1 article
Full lifetime access
Access on mobile and TV
Certificate of Completion