Learn and Master C Programming For Absolute Beginners!
4.7 (74 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2,954 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn and Master C Programming For Absolute Beginners! to your Wishlist.

Add to Wishlist

Learn and Master C Programming For Absolute Beginners!

4.7 (74 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
2,954 students enrolled
Created by Mohammad El-Haj
Last updated 4/2017
Current price: $10 Original price: $200 Discount: 95% off
5 hours left at this price!
30-Day Money-Back Guarantee
  • 14 hours on-demand video
  • 1 Article
  • 5 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Master C programming including advanced as well as complex parts
  • Master Visual Studio for C/C++ programming
  • View and Use Source Code Examples (Over 50 projects included)
  • Practice Coding in C throughout the entire course
  • Ask questions and receive help and feedback on a first come first serve basis
  • Test knowledge and understanding with end-of-section quizzes
  • Understand pointers, dynamic memory management and become fluent in C
View Curriculum
  • Willingness to learn! (No prior programming knowledge required)
  • A C compiler and code editor (both are available free) - Visual Studio Recommended (FREE)
  • A computer with Windows installed (Windows 7 or higher is preferred). You can also follow along on Mac or Linux


The Complete C Course with over 50 easy to follow projects built using C on Visual Studio 

The easiest and most comprehensive way to learn and master C programming at your own pace. This course will not only teach you to master C language from the ground up, but it will also make you understand why we do things the way we do them in our code and what's the best way to write efficient, simple and elegant code!. 

You will learn everything from programming fundamentals all the way to the most complex parts like pointers, memory management, string manipulation,File IO and much more!

C is one of the most important of all programming languages. It is used to program desktop applications, compilers, tools and utilities and even hardware devices. The C language is fast and efficient – but it can be hard to learn. Unless you use this course. This course begins with a gentle introduction to C but quickly moves on to explain some of its most confusing features: everything from C's 'scoping' rules to the curious connection between arrays and memory addresses. By the end of the course you will have a deep understanding both of the C language itself and also of the underlying 'architecture' of your computer.

In this course, we'll explore the C programming language from the ground up. We'll begin with a brief section on computer basics followed by a Hello world program in C and a walk-through to understand its elements and to dissect it. 

You will be introduced to the main elements of C like data types, operators, arrays, strings, pointers...etc. We will cover ALL C KEYWORDS in this course, when and how to use them with coding examples!

I have dedicated entire sections for pointers, arrays and strings. This course has the most extensive details on how an why we need pointers and how to avid pointer related gotchas. I guarantee you will not find any other course that covers pointers in this depth with easy to understand and follow examples like this course.

There is even a full section on mastering Visual Studio included here for free so you can master using it for C/C++ and even C# as well as Visual Basic.

This course will help you learn and master C language and become a professional programmer on your own pace by watching me as I introduce you to the concepts and fundamentals of programming and writing efficient code in C with easy to follow lectures that are full of hands-on practices and coding!

During this course I will share with you the tips and tricks of the trade that I learned throughout my 20+ years of professional career as a software engineer!

I will teach you C language and programming from the ground up as I assume you have no prior programming experience. I have included sections for people who have never programmed before, but for those who are already programming, they can either watch them to refresh on some fundamentals or simply chose to skip them altogether.

If you want to become a professional software developer then search no more, you have found the right course!

Why learn C?

C has been around for over 30 years and it is not going anywhere. Chances are you're going to run into code already written in C or you may need to interface with code that was written in C whether you're programming in C++, Java, Python, PHP, Ruby, Javascript, C# or VB.NET

C Knowledge is important as it exposes you more to the hardware and you learn how memory works which helps you write more efficient and more optimized code

C makes you a better Java, Python, Ruby or even C# programmer.

C is also good for game development for performance reasons as well as OS level programming

C code is portable, so you can write cross-platform applications once you master it

Even though I chose Visual Studio on Windows to teach you C programming, the concepts and ideas you learn here are portable and can be applied to any other platform, IDE or OS with little or no effort at all.

Why Visual Studio?

I think Visual Studio is one of the best IDEs for programmers and I have dedicated several lectures especially to mastering Visual Studio and I share many tips and tricks that will help you customize it and get comfortable with it in no time!

If you are serious about becoming a professional software engineer or programmer, then this you MUST consider this course!

What you will learn:

  • Over 13 hours of information and knowledge gathered throughout 20+ years of experience
  • C programming for beginners with 50 hands-on projects
  • Computer Basics and Programming Fundamentals
  • Mastering Visual Studio on Windows for C/C++ programming
  • Mastering C Programming by introducing/explaining the concepts followed by hands on coding to see them in action
  • How to become a good problem solver
  • How to write efficient code
  • How to avoid pitfalls of programming with pointers like memory leaks, access violations and many more
  • How to debug and troubleshoot issues with your code
  • How to work with variable arguments in C
  • How to work with files
  • Recursion
  • Arrays, pointers and memory management
  • String manipulation
  • Dynamic memory allocation and much more…

Who should take the course?


This course is structured in a way that ANYONE can simply benefit from it!

  • Do you want to learn how to program but not sure how to start or where to start?
  • Do you want to start a successful career as a computer programmer?
  • Do you want to be able to look at code and quickly understand what it does?
  • Do you want to become a better programmer?
  • Do you want to build Desktop applications, Mobile Apps or Games?
  • Do you want to be able to read and modify C code with confidence?
  • Do you want to become a world-class software engineer?
  • Do you want to earn top dollars?
  • Do you want to take your career to the next level?
  • Do you want to become a better C++, Objective-C, Java, Python, Ruby, Javascript, and PHP, C # or VB.NET developer?

If you answered YES to ANY of these questions then this course is for you!

What are the requirements?

  • A computer with Windows installed (Windows 7 or higher is preferred)
  • Willingness to learn!
  • Visual Studio 2015 Community Edition (Free) or newer (you can use any other compiler and/or editor, but to get the most out of this course, I highly recommend Visual Studio)

What am I going to get from this course?

  • Mastery of C programming including advanced as well as complex parts
  • Mastery of Visual Studio on Windows for C/C++ programmers
  • Source Code Examples
  • Tons of hands on practice
  • Help and support with Q&A
  • Test your understanding with end-of-section quizzes
  • Over 50 projects and solutions in C using Visual Studio

So go ahead and ENROLL IN THIS COURSE!!!



Over 13 hours of information and knowledge gathered throughout 20+ years of experience all at your disposal with a click of a button!


See you inside soon!

Who is the target audience?
  • Absolute beginners - This course has all you need to become a professional programmer in 14 hours
  • Anyone who wants to learn to program in C and master it in short time using Visual Studio 2015 or newer
  • Anyone switching to C/C++ from some other language like Java, C# or Javascript
  • Cross-platform development. C compilers exist on Windows, Linux and even Mac
  • Anyone who wants to learn C++ or Objective-C, must start with C language first
Students Who Viewed This Course Also Viewed
Curriculum For This Course
148 Lectures
4 Lectures 03:55

Welcome to this course and I am hoping this will help you jump start your career as a software engineer if you have never programmed before and I also hope this can be a great resource for everyone to take their skills to the next level.

Congratulations for taking the first step to enroll in this course and I cannot wait to congratulate you on finishing it as soon as your time permits it!

Best of luck!


Preview 00:06

I have been a professional Windows developer using Microsoft stack since 1995. I used to teach C/C++ as well as VB since 1997 as part-time while working full time as a programmer. I obtained experience from large software companies like Microsoft where I spent 9 years as a software engineer and learned from the smartest people in the industry. I worked for other companies including Citrix, LEAD Technologies and many more. I have a passion for learning to program and love to share my experience with other, so I hope you find my approach suitable and engaging for you!

Preview 01:20

This lecture will give you a quick overview of what we will cover throughout this course...

Preview 01:39

Please download the attached zipped file that contains source code for all the projects that we will be building during this course. 

Download The Source Files
Quick Intro To Computer Basics
7 Lectures 26:36

We will cover the goal of this section, topics to be discussed and the target audience.

This section is for absolute beginners, so if you have a background in computer science or you have programmed in another language, you can skip this section.

Preview 00:33

Important message about reviews

We will learn the role of CPU and its components and also learn about the role of GPU and touch base on differences between 32-bit and 64-bit processors as well as Operating Systems

Preview 05:52

In this lecture, we will learn the different types of memory, physical and virtual addressing and also discuss secondary storage (HDD & SSD)

Memory & Storage

In this lecture we will cover different types of software and the role of OS and its impact on our programs.

Software: BIOS, OS and Programs

We will cover the definition of a programming language and the different types of languages that are important and understand difference between compiled versus interpreted languages

The goal of this lecture is for students to understand the meaning of a programming language and learn about the different types of languages and their use and how they look like...etc.

We will also see where C sits in between programming languages

A quick look at Programming Languages

In this lecture we will cover how C language was created and go over the different versions of C standards available and understand differences between them.

You will understand what versions of C are available and what standards mean and which one we will be using in our course.

Preview 03:35

Computer Basics

Quiz 1
6 questions
Installing & Configuring Visual Studio
2 Lectures 08:59

In this lecture, I will show you how to download visual studio 2015 even after the release of Visual Studio 2017. 

NOTE: You can also download the attached bootstrap installer that I downloaded from Microsoft website for you.

Preview 03:14

In this lecture, I will walk you through the installation and configuration of Visual Studio 2015.

Preview 05:45
Writing our First Program - A 'Hello, World!' Program in C
4 Lectures 40:38

We will learn how to write then compile and run our first C program using command-line tools

You will learn how to write your first C program then compile it and run it using Visual C compiler on the command prompt.

Writing Our First Program Using Visual C on the Command-Line

In this lecture, I will show you a slightly easier and different way to quickly build and run a C program from the command line by launching the "Developer Command Prompt for VS2015" and running the compiler (CL.EXE) from the command line.

You will learn an easier and slight faster way to build and compile C programs from the command prompt.

Using Visual Studio Command Prompt to write 'Hello, World' one more time

In this lecture we will learn how to write then compile and run our first C program using Visual Studio IDE

You will learn how to write your first C program then compile it and run it from within Visual Studio IDE

Preview 13:29

In this lecture go over what we learned in this section and to reflect on what we did in the last 3-4 lectures so that we get a better understanding of it and touch base on some key concepts and iterate over some important points..

By the end of this lecture, you should feel more confident to try out a C program from scratch by yourself :)

A Deeper Look At Our First C Program & Compilation Process

Understanding Your First C Program

Quiz 2
6 questions
Walkthrough: Visual Studio IDE
11 Lectures 38:58

Visual Studio Integrated Development Environment (IDE) offers a set of tools that help you write and modify the code for your programs, and also detect and correct errors in your programs.

In this section we will go over:

•A quick tour of the Integrated Development Environment

•Using the menus & graphical elements of Visual Studio IDE

•Working with Projects and Solutions

You will become more familiar and more comfortable with Visual Studio IDE by the end of this section

Section Introduction and Overview

This is a quick overview of the start page to understand what it does and how to use it.

Preview 01:27

In this lecture we will go over the file menu and learn what it does and try out some of its features like loading projects, closing a file and reopening it...etc.

Visual Studio File Menu

In this lecture we look at some of the important items on the edit menu and learn how to use Undo/Redo as well as the clipboard operations

Edit Menu

In this lecture we learn how to show the line numbers in the text editor to help us when we review and look at our code.

Showing Line Numbers In The Text Editor

In this lecture we will go over the differences between tabs versus spaces when using white space and learn why you should be using spaces instead of tabs and also learn how to turn TAB keys into spaces from Tools | Options menu.

This is very important if you want your code to look exactly the same in all text editors.

Tabs versus White Space

In this lecture we will look at the Quick Find feature of Visual Studio which allows you to search text inside your code files and locate the exact match of your search string and learn the many different options it offers.

Quick Find in Visual Studio

In this lecture we will look at the Find & Replace feature of Visual Studio which allows you to search text inside your code files, project or solution and replace exact matches with new strings of your choice. This is very important tool and can save you a lot of time once you start writing a lot of code.

Find & Replace in Visual Studio

In this lecture we will cover the debug menu and some aspects of debugging, but we won't go deep into debugging yet.

You will learn some new concepts about debugging and stepping through code by the end of this lecture

Visual Studio Debug Menu

In this lecture we will go over the build menu and discuss some of its important items and see how to compile, build and clean a solution

You will learn more about building solutions and the output files generated by the end of this lecture.

Build Menu

In this lecture we will discuss the contents of solution files as well as project files and also understand the relationship between them. We will also build a solution containing two projects and learn some new functionality in Visual Studio specific to targeting multiple projects and the concept of startup (active) project.

You will become more familiar with solution files and project files after finishing this lecture

Visual Studio Solutions & Projects

Understanding VS (Visual Studio) IDE

Quiz 3
8 questions
Fundamentals and Basics
10 Lectures 01:18:08

In this lecture we will go over comments and commenting out code and the different styles of comments supported by C language.

Comments in C

In This quick lecture we will look at the C language symbols and keywords to understand what we will be covering in this course

C Symbols & Keyowrds

In this lecture, we will start the discussion on C Data Types and learn the basic types in C including char, int, long, float and double. We will also discuss signed versus unsigned and learn how to figure out the memory footprint for each type using sizeof operator.

This lecture will make you familiar with C Basic types and get us started to dig deeper into C...

Introduction to C Data Types and Basic Types

In this lecture we go over the C basic types again and discuss them in more detail so you become more familiar with them.

Basic C Types Continued

In this lecture we will learn how to display all basic types using prtinf function. We will also discuss the difference between characters and strings in C.

How to use Basic C Types with prtinf format specifiers

In this lecture we will begin to use variables and learn how to declare, initialize and use them. We will also talk about constants and understand their use by doing a new project in C together.

Preview 13:17

In this lecture you will learn how to declare and use 'enum' or enumerated types in C/C++.

'enum' Data Types in C

In this lecture we will learn the two variable scopes in C: global and local scopes. By the end of this lecture, you should become more familiar with declaring variables and understand their life time and visibility rules.

Variable Scope

In this lecture, we will look at an important tip to help you avoid running into compilation issues with some C compilers when declaring and using local variables.

This applies to some older versions of Visual C compiler as well as some other non-Microsoft C compilers.

More on Block Scope in C

In this lecture we will learn how to create our own functions and call them (invoke) them from within main as well as other functions

Understanding & Creating C Functions

Understand Basic Concepts about C and its Syntax

Quiz 4
12 questions
Operators & Expressions
4 Lectures 30:37

In this lecture we will cover arithmetic, relational and logical operators. You will understand these operators and start using them by the end of this lecture.

Operators & Expressions in C

In This lecture we will learn about a new way to combine both arithmetic as well as assignment operators together.

Using Arithmetic Assignment Operators in C

Learn about the cool C/C++ incrementing and decrementing operators!

Increment & Decrement Operators in C/C++

In this lecture we will learn about type casting and how to use the cast operator in C

Cast Operator and Type Casting in C

Understanding Expressions in C

Quiz 5
6 questions
Conditional Statements
5 Lectures 34:08

In this lecture we will look at how to use if...else conditional statements in C and understand how they work. By the end of this lecture, you will be able to write code that checks and evaluates expressions to execute specific statements when the conditioni is met or if it is not met.

Using if...else...conditional statements

In this lecture, I will show you an example that uses several if...else statements and also how to nest if statements using a blood pressure reader function that takes two numbers and gives you back your result as string.

If...else...Code Example: Checking high blood pressure readings

In this quick lecture we will see how we can use the C/C++ ternary operator ?: instead of if...else... clauses for cases where ternary operator is a better fit.

Preview 04:14

In this lecture, we will learn how to use switch statements instead of if...else. Also, we will learn about break keyword that is usually used with switch conditions.

Using switch statement

In this lecture, we will learn how to use 'continue' keyword in C/C++ with loops.

Using 'break' keyword...

Understanding Conditional Statements in C

Quiz 6
4 questions
Loops, Jump keywords & Control Flow
8 Lectures 37:26

Section Overview

Preview 00:19

In this quick lecture, we will look at the for loop syntax and dissect its parts to understand how it executes and become familiar with it.

Understanding For Loops in C/C++

In this lecture, we jump into Visual Studio to write a demo app that uses for loops so we can understand how to use them and practice using them in code.

Using For Loops in C/C++

In this lecture, we will step through and debug our 'for' loop code to see it in action one step at a time. The goal of this lecture is to show you how for loops work so you can understand it more and become familiar with it.

Stepping through and debugging a 'for' Loop

In this lecture, we will introduce you to the 'while' loop in C/C++ and to help you understand it well, we will go over some possible variations of using the while loop by trying out different scenarios together.

Using 'while' loops in C/C++

In this lecture, we will learn about 'do'...'while' loops in C/C++ and how they differ from both 'for' and 'while' loops.

Using 'do...while' Loops in C/C++

Using 'continue' keyword...

In this lecture, we will learn how to use 'goto' keyword in C/C++

Using 'goto'...

Understanding Loops and Jump Statements in C

Quiz 7
5 questions
7 Lectures 39:13

In this lecture, we will look at how to declare and use arrays in C/C++. This is mainly a presentation on how to declare and access both single-dimension as well as 2-dimensional arrays.

Introduction to Arrays

In this lecture, we will see how we can declare and process a single-dimensional array in C/C++.

Preview 03:29

In this lecture, we will continue with the same project from previous lecture and try to build some generic functions out of the same code. You will learn how to pass arrays to functions the proper way and start to see how you can write more modular code in C/C++.

Arrays and Functions

In this lecture we will learn how to use the compiler with the help of 'sizeof' operator to calculate the size (number of elements) inside array without having to hard-code this value!

How To Calculate Array Size in C/C++

In this short lecture, we look at an example of declaring and printing out a 2D array in C/C++

Working with 2D Arrays

In this quick lecture, we look at how to declare and initialize multi-dimensional arrays. We also look under the debugger to see how we can inspect individual cells of the array.

Declaring and Initializing Multidimensional Arrays

In this lecture we will learn the main difference between declaring and using character arrays versus strings in C/C++

Character Arrays versus Strings

Understanding Arrays in C

Quiz 8
5 questions
15 More Sections
About the Instructor
Mohammad El-Haj
4.5 Average rating
402 Reviews
16,691 Students
4 Courses
Senior Software Design Engineer / Freelancer / Consultant

Hi there!

My name is Mohammad and I have a degree in computer sciences and have been working as a professional software engineer since 1995. I wrote my first program in GW-BASIC when I was 14 years old and since then I knew that I wanna grow up to become a programmer as it is the love and passion of my life!

I also started teaching Visual C/C++ and Visual Basic back in 1997 and that is when I learned how much I enjoy teaching and helping others!

I lived in Seattle for 17 years to work for Microsoft so I can learn from the best in the industry!  I spent 9 years at Microsoft as a senior software engineer and then became curious to try out other companies in USA so I can keep on growing and learning...

Over 20 years of my career, I worked with many companies from startups to medium size companies like Citrix and to big companies like Microsoft. During that time, I learned so many languages and technologies from Visual Basic, C/C++, Win32, ATL, COM, Python, Java, Javascript, C# and .NET and many more. I built Windows applications, mobile applications, built some websites and built games using Unity and many other tools. I like to share my experience and help others become professional developers as well.

I mentored, lead and managed many developers in my career and successfully helped ship many products including V 1.0 products like Microsoft Office Communicator ( aka Lync or Skype for Business). When I found out about Udemy, I was immediately hooked as a student, but I also wanted to pursue my passion as an instructor as I know that I enjoy teaching and helping others and I think I can make the learning experience fun and easy :)

As of 2017, I moved to live in CA and decided to be working full-time on creating courses as well as building some cool apps and games in my free time!

Looking forward to getting to e-meet and know everyone on Udemy!