C Pointers
Secrets every Embedded Engineer must know!
- 5.5 Hours of Video Content.
- 8 Modules
- 35 Lectures
- 24 Assignments
- Certificate on Completing 95% of the course!
Rated: ★★★★✮ (4.66/5)
Reviews
The Course Creators have Worked at, Interviewed at, or have had Offers from ...
We know what it takes to get in. On repeat!
The course!
The screenshots show how you will explore all of the pointer-related concepts.
Contents
SECTION 1: Mental Models, Motivation, and Reasoning about Pointers
(7 lectures | 26 mins)
(7 lectures | 26 mins)
What to Imagine? (8:40) [PREVIEW]
Assignment - 1
IMPORTANT: Checking results of the assignments (Resources (2) | 2:11)
What is a pointer? (7:00)
Assignment - 2
Why pointers? (8:25)
Assignment - 3
SECTION 2: Pointers: Syntax and Code
(7 lectures | 25 mins)
(7 lectures | 25 mins)
Environment Setup (5:47)
Declaring/Defining a Pointer (9:51) [PREVIEW]
Assignment - 4
Pointer Variable and Address (1:32)
* and & in relation to pointer variable (4:17)
Declaration and Definition (4:02)
Assignment - 5
SECTION 3: Multi-level Pointers
(12 lectures | 1 hr 23 mins)
(12 lectures | 1 hr 23 mins)
Use of * and & (Resources (1) | 23:38)
Assignment - 6
Array and Pointers - Similarity and Differences (Resources (1) | 20:42)
Assignment - 7
Many *s and Many &s (Resources (1) | 4:39)
Assignment - 8
pointer to pointer (Resources (1) | 13:05)
Assignment - 9
Array of pointers (Resources (1) | 13:05)
Assignment - 10
Different types of Pointers (7:51)
Assignment - 11
SECTION 4: Pointer to Data
(7 lectures | 40 mins)
(7 lectures | 40 mins)
Pointing to data with a Datatype (Resources (1) | 7:08)
Assignment - 12
Pointer to a struct, *, . and -> (Resources (1) | 12:28)
Assignment - 13
Pointer Arithmetic (Resources (1) | 16:37)
Memory model and pointer to data (4:27)
Assignment - 14
SECTION 5: Pointer to code - Function pointers or Callback
(7 lectures | 39 mins)
(7 lectures | 39 mins)
What is a function pointer? (11:57)
function pointers syntax (Resources (1) | 10:46)
Assignment - 15
typedef and function pointers (Resources (1) | 9:44)
Assignment - 16
Example - function pointer array (Resources (1) | 6:44)
Assignment - 17
SECTION 6: Void Pointer
(5 lectures | 39 mins)
(5 lectures | 39 mins)
What is a void pointer? (Resources (1) | 9:51)
Assignment - 18
What is NULL and NULL pointer? (Resources (1) | 14:34)
Assignment - 19
void pointers in - Linux source code (14:44) [PREVIEW]
SECTION 7: Pointers, Dynamic allocation, and problems (11 lectures | 52 mins)
heap: malloc() and free() (Resources (1) | 13:19)
Allocation failure (Resources (1) | 13:44)
Assignment - 20
Memory Leak (1:21)
Assignment - 21
Dangling Pointer (6:00)
Assignment - 22
Double free() (10:09)
Assignment - 23
pointer manipulation and unowned memory (7:29)
Assignment - 24
MODULE 8: Open Source code and Pointers (3 lectures | 17 mins)
Baremetal Code 9:04
FreeRTOS 5:42
Linux 2:54
Certificate
Course Creators...
The inPyjama Crew!!
Piyush works as a Embedded Software Engineer (L5) at Google. He works on lower-level drivers, systems software, and firmware components and has been working on Embedded Systems for about a decade.
Previously, he worked at Intel as part of the Bluetooth team and has worked on - UEFI Bluetooth Drivers for Keyboard and Mouse, Designed a GUI-based debug tool in Python to monitor the over-the-wire Bluetooth commands, and worked on controlling the RF instrumentation cluster.
Over his career, he has mentored more than 25 college graduates at work and saw them climb up the ladder (in most cases in record time!). He knows how to unlock the best out of his team by guiding them on the precise technical details they should focus on to attack the problem, own, and self-navigate all the way through.
He has a bachelor's degree in Electrical Engineering and a master's in Embedded Systems. He has also interviewed around 200 candidates in his career.
This course is Piyush's attempt to mentor at scale! Learn more about Piyush here.
Rajat works at Google as an Embedded Software Engineer (L4) and, works on software layers close to the hardware. Previously, he worked at Texas Instruments, Microchip, and Atmel.
He is very passionate about hardware-software co-design. More about him, here.
Dev is a Software engineer turned Embedded Systems Engineer (L4) at Google. He has worked on Linux and moved to work on the lower-level drivers and firmware because he enjoys the lower-level details of how things work.
He has previously worked at Samsung. more about him, here.
Mahmad works as an Embedded Software Engineer (L4) at Google and works on Android. He is a Software Engineer with a master's in Embedded Systems. He enjoys reverse engineering and fiddling with lower-level details of the CPUs. He previously worked at Intel. More about him, here.
Wasim works as an Embedded Software Engineer (L4) at Google. He works on lower-level drivers for high-speed peripherals. Previously, he worked at Cisco, Bosch and Qualcomm. He is interested in the general software stack from Applications to hardware. More about him, here.
FAQ
Do I need a high performing machine to follow the course?
No. All the examples are executed on GitHub codespaces. This is like having a machine in the cloud. All the tools are already installed and you do not have to do any local setup.
Why course access is limited to 90 days?
The content is only 5 hours and 30 minutes. We believe once you have completed watching the video once and doing the assignments once, you will never need to refer to this material again. With that, we feel 90 days is more than enough.
Another reason is that we need to manage and host the backend on our own. This means we pay for the servers, software, and the bandwidth. 90 days, per our math, is the right duration for which we can keep the load on the server well-balanced.
Will I get a certificate?
Yes!
As stated above, completing 95% of the coursework before access expiry will fetch you the certificate.
Where is the certificate?
The Certificate will be delivered as PDF on your email address.
Who should take this course?
This course is ideal for programmers with a basic understanding of C who want to learn about pointers and unlock their potential for more powerful programming.
How long will I have access to the course?
You will have 90 days of unlimited access to the course materials upon enrollment.
Will the course include practical exercises?
Yes. The assignments will provide opportunities to tryout examples. You can also follow the examples stated in the lectures.
What level of C programming experience is required?
Basic understanding of the C syntax is expected. Because the course focuses heavily on pointers, some familiarity with pointers will enable you to get most out of the course.
What format is the course delivered in?
The course is delivered in recorded video format with resources and assignments for the student to check their understanding.
Can I access the course on mobile devices?
Yes.
You can access the course from mobile, tablet and desktop. We recommend using Desktop to access the course for best experience.
Does the course offer any support if I get stuck?
Yes.
You can submit the question you have on the messages/chat space or submit it in the Q/A section and the team will attend to it.
Will I get a refund if I buy the course?
Nope.
While we would want to support that at the moment, the backend infra makes it a circus to achieve the refund :(