8:35
Tips for Student Programmers (#1)
Jacob Sorber
8:28
Copying Memory in C (memcpy, memset)
7:46
Problems with pointer arithmetic (C)
1:13
Better Portability with Standard Integers
4:08
Understanding and Using Function Pointers in C
1:32
Learn GDB in 60 seconds
1:47
How to examine memory in GDB
2:07
Automate repetitive debugging tasks using scripts in gdb
2:55
Allocating memory with malloc, calloc, realloc, and free
2:49
Experiment with your code, people!
2:58
Finding memory errors with Valgrind
2:08
Learn make in 60 seconds.
2:46
More make: automatic variables for smaller and easier to maintain makefiles
4:50
Produce better code faster through testing.
5:23
Find bugs faster using assertions.
4:28
Smelly code and Magic Numbers
2:51
Code Smells: Duplicate Code (DRY)
5:50
Smelly code and bad names
13:34
What languages should you learn?
4:10
Code Smell #4: Comments
2:57
Smelly code and long functions
4:12
How to write C functions with variable argument lists.
4:16
Tame binary headaches with a Hex Editor
Keeping strcpy and memcpy straight when copying memory.
3:52
HalloWorld (Happy Halloween 2017)
How to track down a seg fault in C
A common pitfall when using sizeof() with pointers in C.
4:32
Making Peace with Double Pointers
3:17
Understanding the Extern Keyword in C
4:55
The Static Keyword in C
6:21
Creating new processes with fork()!
3:46
Understanding Zombie Processes!
4:15
More C string parsing with strtok_r, strsep (and strdup)
3:10
They're Just Bits! Types and Structuring Memory in C.
6:09
Compiling C programs with Multiple Files
4:21
Spying on Running Programs (strace, ltrace, system calls vs function calls)
6:50
How processes get more memory. (mmap, brk)
5:52
Sending and Handling Signals in C (kill, signal, sigaction)
7:07
Reading and Writing Files in C, two ways (fopen vs. open)
How to get a file's size in C? (stat, fstat, fileno)
2:29
Simpler Paths in C with realpath()!
4:47
How to Map Files into Memory in C (mmap, memory mapped file io)
6:11
How to Time Your Code (time, clock, times, clock_gettime)
3:20
Should you ever use a goto?
Struct packing: No, you're not going crazy.
2:17
Simple Shared Memory in C (mmap)
6:36
Handling Errors in C/Unix (perror, strerror, errno)
12:10
Program your own web server in C. (sockets)
2:37
Socket servers can get client addresses. (accept, inet_ntop)
6:00
How to create and join threads in C (pthreads).
4:13
How to pass arguments to and get results from threads. (pthread_create, pthread_join)
5:30
Debugging with Multiple Threads (gdb, pthreads)
5:27
A Tour of C's Many Operators
6:14
Dealing with Endianness Issues in your Programs
5:07
What if my open file gets deleted?
9:57
How to write your own code libraries in C.
4:49
What are Environment Variables, and how do I use them? (get,set)
5:05
How to Load Libraries at Runtime
3:15
Checking your Return Values
8:32
Header Issues: Guards, Name Mangling, and extern "C"
16:21
Reviewing your Code: Refactoring
9:16
Debugging with Core Dumps
7:23
Can I Debug Release Code?
Debugging with Macros (-g3,-ggdb)
8:50
Strings in C
13:15
Reversing Strings (in C) and Divergent Thinking
4:02
Getting Command-Line Arguments in C
9:04
Strings can get you hacked! (buffer overflows, strcpy, and gets)
18:15
Understanding and implementing a Linked List in C and Java
19:59
We moved to Africa! (and some thoughts about learning to program in C)
3:49
How arguments are passed to functions in C (and most other languages).
6:07
Doubly Linked List (in C)
14:30
How to write a multithreaded server in C (threads, sockets)
8:27
Multithreaded Server Part 2: Thread Pools
7:31
How to write a multithreaded webserver using condition variables (Part 3)
6:48
How to use the volatile keyword in C?
13:16
Code Review #2: Generalizing and D.R.Y.ing things up.
16:37
How to Blink an LED in C (avr, msp430)
5:25
Is the modulus operator (%) useful?
24:54
Understanding and implementing a Hash Table (in C)
14:32
How to Blink LEDs with Timers and Interrupts in C (MSP430, Arduino)
12:01
How one thread listens to many sockets with select in C.
13:26
Bit Fields in C. What are they, and how do I use them?
3:04
What are Bit Masks, and how do I use them? (examples in C)
25:47
How to write your own COVID-19 simulator (C++).
13:08
How to measure memory usage inside my program? (getrusage)
17:04
Should you avoid linked lists? (linked list vs arrays)
7:53
How to wire-up and program a button. (digital inputs, microcontrollers)
8:41
Why do programmers use hexadecimal numbers?
11:21
How to profile your own function calls in C? (instrument your code!)
15:38
How to Implement a Stack in C (+ encapsulation)
How to Implement a Queue in C
12:49
How to Set up Shared Memory in Your Linux and MacOS Programs. (shmget, shmat, shmdt, shmctl, ftok)
7:14
Why that "Perfect" Makefile Doesn't Work.
5:28
Using the Smallest C Program to Better Understand Your System (with pmap, vmmap, and strace).
16:18
The Inline Keyword in C.
13:27
What is a semaphore? How do they work? (Example in C)
9:47
ASCII Art, Curses, and my New 25K Play Button
9:18
How to Automatically Remove Dead Code?
14:56
How to use an ADC (embedded example in C)
5:47
Does it matter how I write my infinite loops? (for vs. while?)
14:12
How to Check Your Pointers at Runtime
Easy Networking in C (libcurl)
20:24
Fixed and Variable Length Arrays in C and C++
12:56
The Call Stack and Stack Overflows (example in C)
4:34
Debug faster with gdb layouts (TUI)
14:39
How to Implement a Tree in C
9:26
Why I don't recommend C++ for beginners.
13:20
Understand and Implement a Binary Search Tree in C
12:33
Setup Tips for Your Next Programming Project
10:44
How to Return Two Things from a C or C++ Function
Understanding the Pipe System Call (popen3 example in C)
11:13
Can I Handle Exceptions with Try Catch in C? (setjmp, longjmp)
36:39
How to Program Matrix Style Dripping Text (terminal, C, curses example)
11:23
Implementing a Circular Queue in C
10:43
More Tips for Setting up a Programming Project: Subdirectories and Structure
13:41
Make your Data Type more Abstract with Opaque Types in C
17:00
Project Setup: Automated Testing with Make (using queue example)
7:59
Defining Constants. Should I use CONST or #DEFINE?
20:28
How to get and unget input from streams in C (getstring, fgetc, ungetc).
10:37
How Look Up Tables (LUTs) make your code Smaller, Faster, and Better (example in C)
21:07
The Trie Data Structure (Prefix Tree)
16:46
The Trie Data Structure, Part 2 (search, delete)
35:44
Why are Progress Bars Always Wrong? Progress Bar Example in C.
12:24
How to Develop Code on Another Machine
7:17
What's the best programming font? Code font recommendations for 2021.
14:42
Make your own 50k YouTube Play Button (C / curses tutorial)
11:18
When do I use a union in C or C++, instead of a struct?
20:16
How do I make multiple concurrent progress bars in the terminal? (tutorial in C)
11:05
What Actually is Embedded C/C++? Is it different from C/C++?
12:30
Highlighting a Student Programming Project (Code Review)
The Ternary Operator (examples in C and C++)
13:59
How to Write Function-Like Preprocessor Macros (C example)
13:51
Debugging Embedded Systems With GDB?
How to Automatically Run a Function When My Program Exits. (atexit)
23:40
Working with a Matrix/2D Array in Your C and C++ programs.
8:55
What is a Graph Data Structure? When to use it? How to easily visualize it?
10:25
How different are C and C++? Can I still say C/C++?
4:26
This might be the worst thing about programming on a Mac.
20:04
How To Implement a Graph in C. (adjacency matrix version)
9:17
How Memory Usage Slows Down Your Programs
5:43
When to use the Arrow Operator in C and C++
8:58
Are Vectors Slower than Arrays?
6:51
Your Computer is Lying To You (Virtual Memory)
29:04
The Multiple Paths through Embedded Systems
9:48
Memory Allocator Errors and XMalloc
10:23
One reason to Modify your Memory Allocator (C/C++)
5:32
Issues with the pre- and postincrement operator in C, C++, etc.
10:26
The Most Useless Keyword in C?
6:47
An Interesting Redirection Bug. How Redirection Can Change Program Behavior.
7:05
What are Language Standards? Do they matter?
4:37
Do you see the bug?
Testing matters. Watch those corner cases.
8:02
How Does LibC Detect Redirection? Interesting Bug Follow Up.
How to Safely and Simply Create Temporary Files (in C or C++)
17:40
Embedded Crypto: AES Example on a Microcontroller (in C)
10:57
How to Contribute to Open Source Projects on Github (pull requests)
15:14
You've probably never accessed a file like this before. (Async IO example)
21:36
Generating Unique Identifiers in Your Programs (GUIDs/UUIDs) - broken
Generating Unique Identifiers in Your Programs (GUIDs/UUIDs)
8:33
Having Fun with XOR (exclusive-or)
16:05
How to customize printf in C
13:44
What's the Best Way to Copy a Struct in C and C++?
10:39
Another reason C++ is so BAD...for beginners.
13:06
Detect Corruption with a Checksum
21:38
Pulling Back the Curtain on the Heap
6:45
How to Indent Code the Right Way
14:08
Is memcpy dangerous?
13:12
The What, How, and Why of Void Pointers in C and C++?
5:44
What about Pointer Arithmetic with Void Pointers?
A const int is not a constant.
13:14
Clarifying about literals, macros, and const (still not constant?)
18:37
Understanding the For Loop (examples in C)
17:16
What the FizzBuzz? (A toy problem worth caring about?)
6:59
Can I write to NULL (0x0000000000) without seg faulting?
6:02
How to Debug a Program when the Output Looks Right
10:34
How to Read Just One Character from the Terminal (stdin)?
11:24
The Good and Bad of Automatic Make Rules
8:06
Why Printf is Magically Breaking Your Program.
12:16
How to Resize an Array in C/C++? Is there a best way?
7:30
How Big Is A Character?
5:55
The world's simplest malware? (Example in C)
15:07
Scanf Basics: the good, the bad, and why so many pointers?
9:33
Scanf scansets, and reading a CSV file in C (fixed)
10:38
Your Variables are Not Real.
12:45
Sockets and Pipes Look Like Files (Unix/fdopen)
10:46
How to keep your child from becoming a zombie process (C example)?
41:20
A better hash table (in C)
10:04
Fixing our "better" hash table's memory leaks (in c)
11:14
Does it matter what hash function I use? (hash table example in c)
9:44
find memory errors quickly. (-fsanitize, addresssanitizer)
17:48
Binary data exercise: how to tell if a file is a jpeg?
11:12
Making variables atomic in C
4:38
What is a function prototype in C
4:29
The right way to define a C function with no arguments
Another way to check pointers at runtime in C
12:57
How to make memory read-only in your C programs.
11:07
How do I access a single bit?
How does fork work with open files?
How do I Set, Clear, and Toggle a Single Bit?