Uploaded January 2026 | Updated September 2026, 2 weeks ago
Patreon ➤ patreon.com/jacobsorber
Courses ➤ jacobsorber.thinkific.com
Website ➤ jacobsorber.com
---
UTF-8: The Internet's current favorite text encoding scheme // UTF-8 is used everywhere, but it's also not well understood by new programmers. This video explains how the UTF-8 encoding works, its advantages, and how to decode UTF8 sequences in a program.
Related Videos:
Unicode: youtu.be/Xrj6MrPYnZA
Wide characters: youtu.be/SKgkP15za_M
Bit masks: youtu.be/Ew2QnDeTCCE
Accessing bits: youtu.be/F9742wnBWRc
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
Patreon ➤ patreon.com/jacobsorber
Courses ➤ jacobsorber.thinkific.com
Website ➤ jacobsorber.com
---
UTF-8: The Internet's current favorite text encoding scheme // UTF-8 is used everywhere, but it's also not well understood by new programmers. This video explains how the UTF-8 encoding works, its advantages, and how to decode UTF8 sequences in a program.
Related Videos:
Unicode: youtu.be/Xrj6MrPYnZA
Wide characters: youtu.be/SKgkP15za_M
Bit masks: youtu.be/Ew2QnDeTCCE
Accessing bits: youtu.be/F9742wnBWRc
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: I'm a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon --- [patreon.com/jacobsorber]
Source code is also available to Patreon supporters. --- [jsorber-youtube-source.herokuapp.com/]
![What is computer architecture?
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Architecture is a word the confuses a lot of new programmers. Its often thrown around as a generic term that can mean almost anything. This video tries to clear the waters a bit about what this term typically refers to.
GiveInternet.org: consider giving the gift of Internet access and tech literacy. All donations made through the following link will be matched up to $30k USD.
https://giveinternet.org/JacobSorber
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] What is computer architecture?](https://i.ytimg.com/vi/_f1hE7LZx08/mqdefault.jpg)
![Making variables atomic in C
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Making variables atomic in C // were talking about threads, thread safety, and atomicity, and specifically this video talks about the atomic keyword, added in C11 that allows you to make variables atomic without using locks.
Related Videos:
Thread safety: https://youtu.be/9axu8CUvOKY
pthreads: https://youtu.be/uA8X5zNOGw8
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Making variables atomic in C](https://i.ytimg.com/vi/_xX25ThomIo/mqdefault.jpg)
![A warning about the char type
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
A warning about the char type // the char type is probably Cs most basic data type. It can also be super annoying, and even dangerous, especially if you are writing code that needs to be portable.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] A warning about the char type](https://i.ytimg.com/vi/a0MfSwavE9g/mqdefault.jpg)
![What the FizzBuzz? (A toy problem worth caring about?)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
What the FizzBuzz? (A toy problem worth caring about?) // This weeks video deals with a toy problem (FizzBuzz) thats become rather popular in the last decade as a quick way to evaluate basic programming skills. In this video, we discuss how to solve it a few different ways and why its interesting.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] What the FizzBuzz? (A toy problem worth caring about?)](https://i.ytimg.com/vi/aAAtROsWskc/mqdefault.jpg)
![Bit Fields in C. What are they, and how do I use them?
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Bit Fields in C. What are they, and how do I use them? // Bit fields are a common programming tool that a lot of beginners dont know about. This video explains how they work, and shows you how to use them in three different scenarios, to pass options into functions, to make reduced-size integers, and to treat integers as arrays of bits.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
+ rep the channel with nerdy merch [https://teespring.com/stores/jacob-sorbers-store]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Bit Fields in C. What are they, and how do I use them?](https://i.ytimg.com/vi/aMAM5vL7wTs/mqdefault.jpg)
![How do I make multiple concurrent progress bars in the terminal? (tutorial in C)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
How do I make multiple concurrent progress bars in the terminal? (tutorial in C) // More progress bars—this time using ANSI escape sequences to turn one progress bar into multiple bars each updated by a concurrently running thread (pthreads).
Previous progress bar video: https://youtu.be/t_vM_8TLjFE
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] How do I make multiple concurrent progress bars in the terminal? (tutorial in C)](https://i.ytimg.com/vi/ayfCxgVStdQ/mqdefault.jpg)
![When do I use a union in C or C++, instead of a struct?
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
When do I use a union in C or C++, instead of a struct? // Unions are useful, but often overlooked in beginner classes, because we dont use them all that much, and because we can often get by without them. This video talks about unions, how they differ from structs, and when you might want to use a union in your C or C++ programs.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] When do I use a union in C or C++, instead of a struct?](https://i.ytimg.com/vi/b9_0bqrm2G8/mqdefault.jpg)
![How to set a socket timeout (setsockopt) in C
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
How to set a socket timeout (setsockopt) in C // Because sometimes we dont want our calls to recv or recvfrom to wait forever. In this video, I show you how to use setsockopt to set a receive timeout for one of your sockets.
Related Videos:
Send/Recv UDP packets: https://youtu.be/5PPfy-nUWIM
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] How to set a socket timeout (setsockopt) in C](https://i.ytimg.com/vi/bA1VMjShQUk/mqdefault.jpg)
![Does it matter how I write my infinite loops? (for vs. while?)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
Does it matter how I write my infinite loops? (for vs. while?) // Programmers new and old fuss too much about how best to write their infinite loops. Should I use while loop syntax or should I use the for loop syntax? This video addresses this question and hopefully puts it to rest forever. We have bigger issues to sort out.
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
+ rep the channel with nerdy merch [https://teespring.com/stores/jacob-sorbers-store]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Does it matter how I write my infinite loops? (for vs. while?)](https://i.ytimg.com/vi/bC2dfBJwtMY/mqdefault.jpg)
![Should you avoid linked lists? (linked list vs arrays)
Patreon ➤ https://www.patreon.com/jacobsorber
Courses ➤ https://jacobsorber.thinkific.com
Website ➤ https://www.jacobsorber.com
#StayHome #HappyCoding
Lets pit the linked list against the array. We all learn how to create linked lists and other linked data structures. We may have also heard about their asymptotically-fast insert and delete operations. But, linked lists flexibility comes at a cost. This video takes you through some of the downsides, including additional memory usage, poor memory locality, and slower traversal speeds. I also include some example code (in C) to demonstrate these differences in contrast to arrays. (uses getrusage and make)
It also shows you how to define a preprocessor define from the command-line (-D).
Related Videos:
Linked Lists: https://www.youtube.com/watch?v=VOpjAHCee7c
Linked Lists2: https://www.youtube.com/watch?v=KFbm6lkMhgw
Measuring Memory Usage: https://www.youtube.com/watch?v=Os5cK0H8EOA
Makefiles: https://www.youtube.com/watch?v=a8mPKBxQ9No
Automatic Variables in Make: https://www.youtube.com/watch?v=G5dNorAoeCM
***
Welcome! I post videos that help you learn to program and become a more confident software developer. I cover beginner-to-advanced systems topics ranging from network programming, threads, processes, operating systems, embedded systems and others. My goal is to help you get under-the-hood and better understand how computers work and how you can use them to become stronger students and more capable professional developers.
About me: Im a computer scientist, electrical engineer, researcher, and teacher. I specialize in embedded systems, mobile computing, sensor networks, and the Internet of Things. I teach systems and networking courses at Clemson University, where I also lead the PERSIST research lab.
More about me and what I do:
https://www.jacobsorber.com
https://people.cs.clemson.edu/~jsorber/
http://persist.cs.clemson.edu/
To Support the Channel:
+ like, subscribe, spread the word
+ contribute via Patreon [https://www.patreon.com/jacobsorber]
+ rep the channel with nerdy merch [https://teespring.com/stores/jacob-sorbers-store]
Source code is also available to Patreon supporters. [https://jsorber-youtube-source.herokuapp.com/] Should you avoid linked lists? (linked list vs arrays)](https://i.ytimg.com/vi/bXsKnUGndEU/mqdefault.jpg)
