The C Language

the language, the tools and the programming techniques

This course dives into the practical applications of the C language, emphasizing hands-on learning to solidify key concepts. Delivered in an engaging and unconventional style, the lessons go beyond theory, equipping you with the skills to apply C programming in real-world scenarios.

By the end of the course, you’ll feel confident in your mastery of the C language, adept at using it alongside the tools and utilities professional C programmers rely on daily.

Bestseller Beginner Intermediate | Delivered by Piyush Itankar

(4.83) (6 ratings) 423 students

Last updated: 3 April 2025 | English | 365 days Access.

Course Includes

~ 20 hr  on-demand Video.
61  Recorded lessons.
12  downloadable resources.
29  Quiz questions to reinforce learning.
Certificate  on completion of course.
Cheat sheets and/or quick reference guides.
Case studies based on open-source code.
Coding exercises and challenges.
Code reviewing based learning.
End-to-end project implementations.
New content regularly added!

A Message from the instructor

What you Learn

Mental models to use when coding in C.
What is machine code.
Instruction Set Architecture and Assembly coding.
GNU toolchain utilities/programs (gcc, as, ld wtc).
GNU Debugger (GDB).
Automation using Makefiles.
How text is converted to 0s and 1s.
Syntax and Structure of C Programs.
Data types, variables, declaration/definition.
Arrays, Strings and Pointers.
Structs and Union.
arithmetic, logical, relational operators in C.
Functions and Modules/Libraries in C.
Pointers and how to use them in Design.
Types of pointers.
Bit fields and Bit manipulation.
Const and volatile type qualifiers
Controlling placement of code and data in memory.
Loops - for, while, do while.
Branching - if, if-else, switch, goto.
Mixing Assembly and C and the need for it.
Booting RISC-V CPU from scratch.
Cross compiling and what it means.
memory management - Stack vs. Heap.
Dynamic memory allocation (malloc, calloc, realloc, free).
Compiler optimizations (-O1, -O2, -O3, -Os, -Ofast).

16 preview lectures

Here are 16 lectures from the course as a YouTube Playlist. You can experience the flow of the course and the teaching style first hand before starting with the full course.

Full course will be available on the learning portal and include all the other lectures, attachments, project files and more.

Details of Course contents

The list below is a complete list of lectures, quizzes, code reviews, projects, notes etc available on the learning portal at the moment. This list is constantly update with new content every few days...

How this is different from Others

FeatureUs!Others
Basic C Syntax.
Data types, strings, pointers, operators and other basics.
Code development without IDE, like how the professionals do it.
Decomposition of C code into Assembly and conversion to machine code.
Mental models to aid thinking and reasoning.
A Bottom-Up Approach with the tinge of answering the `Whys`.
Mixing C with Assembly
Real and applicable Case study and programming projects
Project-Based Learning - Develop and learn with a simple yet effective project like C shell, memory allocator, etc.
Teach with insights at the CPU level.
Cover Assembly Language and Machine code.
Cover the toolchain utilities like compiler, assembler, linker and debug tools like GDB?

Certificate

The journey through the course is a challenging one! The course is packed with insights and will take time to sink in. Will be awarded with a Certificate of Mastery if you complete 95% of the course work.

What you see above is a sample certificate (`Test Roy` is a sample student name). The design of this certificate will be modified from time to time to make it more shiny and reflect the rightly earned pride!

There will always be a dedicated certificate identification and a URL to verify it at. This should enable anyone to check the authenticity of the certificate.

The Design and Deliberation

The internet is flooded with coding courses—yet none rival this. For over a decade, C has been my daily driver at work. Unlike kernel developers leaning on abstractions, I’ve wielded C in its purest, most raw form—programming CPUs from scratch, without the crutch of standard libraries. This course hands you that same unfiltered power. By the end, you won’t just know C—you’ll command it like a seasoned pro, bending it to your will in ways most developers never dream of.

Here’s the truth: C’s mastery runs deeper than most realize. The general public and students rarely glimpse its full scope from the sidelines. I’ve lived it, and now I’m pulling back the curtain for you.

Why I Created This Course

Over years of working with C, I’ve noticed a troubling pattern: most engineers learn and use C the wrong way. This course exists to fix that. It’s not just about coding—it’s about teaching you to see the world through C’s lens, to wield it with precision and purpose. My goal is to show you the right way to master this language.

I’ve been fortunate to mentor dozens of interns, guide recent college graduates, coach early-career professionals, and interview nearly 100 industry practitioners for system-level roles on my team. One truth stood out: while many use C daily, few truly understand how to reason about their code at the systems level. That gap inspired this course—a chance to bridge it with real-world insight and hands-on expertise.

Instructors

Piyush Itankar
Embedded Engineer (L5), Google
Electrical Engineer holding a Master’s degree in Embedded Systems, with a proven track record at industry giants. At Intel, contributed expertise to Navigation Firmware, Bluetooth Driver development, and RF validation software. Currently thriving as an Embedded Software Engineer at Google, drove innovation in Firmware development for the Power Management Sub-system on Tensor SoCs (Pixel Phones) and presently advancing system software for the Pixel Watch.

Early praise from YouTube Subscribers

(4.83) course rating. 6 ratings

Because the course is brand new, we released some lectures on YouTube to get early feedback, and it has been a banger! You will not regret taking this course…

@n.5s4584
11/Feb/2025
I just wanted to take a moment to appreciate the amazing content you create! Your videos are not only engaging but also incredibly valuable. I’ve learned so much from your channel, and I always look forward to your uploads. Thank you for sharing your knowledge and insights—keep up the great work! Wishing you all the success you deserve.
@its_me_to-i4e
11/Feb/2025
Your content is amazing! Last time, I bought the advanced C pointer course, and it was so helpful for embedded systems. Please consider making the course fees more affordable so that students like me can easily access them. Keep up the great work
@sharifyy
(5)
10/Feb/2025
your content is amazing, I give it 5 stars
@techpartel9858
2/Feb/2025
The flow of this course is Amazing. It covers a whole system overview of how your C code runs and how it's dumped in your hardware. Everything is excellent. Thank you, @piyush.
@EEShyama
2/Feb/2025
Loving these lectures!! Please keep them coming.
@Simi-bc8sb
1/Feb/2025
Great content. I really appreciate. Thank you
@ElizabethGreene
(5)
31/Jan/2025
Was there any reason why you preferred the RISCV32i chip over an x86 chip in QEMU? I appreciate the lesson in cross compiling too, but was curious why. Thanks for making these. 10/10
@RavindraBhandari-nf8vs
(4)
31/Jan/2025
I like your teaching method 🫡
@soumyadipkar9451
(5)
31/Jan/2025
Enjoyed the session a lot sir! GDB Dashboard is truly amazing! 🔥
@vimalathithand917
31/Jan/2025
Just what I was looking for ! I'm sure that this series is going to be a blast ! Please don't stop the series in the middle and thanks a lot !
@aadishm4793
30/Jan/2025
Great content!!
@Ujjaval___
30/Jan/2025
AMAZING VIDEOS
@aadishm4793
30/Jan/2025
Awesome as all the videos 👍👍🔥
@Padmalayarawal
(5)
30/Jan/2025
Really loved your new content, can't ask for more crazy stuff.
@shabeehabbas4737
29/Jan/2025
Hello bro just saw the this video and I cant wait to start the course, the roadmap is unconventional which is why I think its the most awesome one, please dont stop uploading such great content ❤❤❤
@ankitrajbhar6045
(5)
31/Jan/2025
This is what I actually needed in life today.. thanks a tons..

Requirements

GitHub account to do the hands-on coding in Codespaces.
Interest in the lower level working of the system.
Some exposure to Digital systems is good (but not strictly required).
Basic understanding of number systems, logic gates, bits and bytes is good to have (but not strictly required).

Who this course is for

Students in Academia with C as a subject in the course.
Early Career Professionals using C as development language.
Embedded Systems Engineers.
System Software Engineers.
Electrical/Electronics Engineers working on hardware programming.
Systems Engineer seeking gain system level insights.
Those curious to learn the underlying details of Systems and how to program it using C.
Those seeking a job change and preparing for interviews.

FAQs