Free YouTube Transcribe

Video transcript

How I Would Learn Embedded Systems in 2026 | Complete Roadmap

TaisonTech · 2,914 words · 14 min read

Want to search this transcript, jump the video from any line, or download it as TXT, SRT, or VTT?

Open in the transcript tool

Full transcript

Intro

0:12If I had to start learning embedded system from zero in 2026, I would not start by trying to

0:18learn everything at once. I would not start with Linux, drivers, RTOS, IoT, embedded security,

0:26PCB design, FPGA, Yocto and every communication protocol at the same time. And to be honest,

Why beginners get lost

0:33that is exactly how many beginners get lost. Embedded system is a huge field.

0:38You can work with microcontrollers, embedded Linux devices, IoT getaways, automotive systems,

0:46industrial systems, medical devices, security, and many other areas. But in my opinion,

0:53before choosing a specific path, you need to build a strong foundation. Hi, I'm Taison and welcome

1:00to the channel. I'm an embedded software engineer with more than 3 years of experience. I first work

1:05more in embedded security and now I'm working more with IoT systems here in Madrid. On this channel,

1:12I share practical content about embedded systems, IoT, Linux, programming tools, and career tips

1:18from my own experience working in the field. So, if that sounds useful to you, consider subscribing

1:24to the channel. In this video, I'll walk you through the road map I would personally follow

1:29if I had to start learning embedded system from zero today. And the goal is simple.

1:33Build the foundation first, then choose your path. One of the reasons I wanted to create this video

My first embedded project experience

1:38is because of something that happened early in my career. Back in 2021, I had the opportunity to do

1:44an internship at a local company here in Spain as an embedded software engineer. I was assigned to

1:49work on a data acquisition project using an NXP board. The board was used to read the electrical

1:56signal, things like current and voltage, and then process that data. I remember being given

2:02the board, the data sheet, the reference manual and basically having to start understanding how

2:07everything worked. At that time, I did not have much experience with that specific NXP board. But

2:12I had already worked a bit with STM32 boards and that helped me a lot. Not because STM32 and the

2:19NXP are exactly the same, but because I already had some understanding of microcontrollers,

2:25peripherals, registers, datasheets, and how to approach documentation. I still had to read a lot,

2:32test things, debug, implement code, and go through the documentation step by step. But

2:38having that foundation made the transaction much easier, and that is the point of this video.

2:45This road map is not about memorizing one specific board or one specific tool. It is about building

The roadmap overview

2:51skills that transfer from one platform to another. Because in the industry you may work with STM32,

2:58NXP, Nordic, TI, microchip or a custom board. The specific platform can change but

3:05the fundamentals I would allow you to adapt. The road map I would follow has six main pillars. The

3:11first one is the most important core fundamentals then you have board selection and peripherals then

3:18basic electronics then memory then professional tools and finally once the foundation is there

3:26you choose your path that path can be firmware embedded Linux IoT embedded security FPGA or

3:36another specialized area but the main message is this do not start by trying to learn everything.

3:42Start by building the foundation that will make everything else easier later. The first pillar is

Pillar 1: Core fundamentals

3:48core fundamentals. For me, this is the must have pillar. Regardless of the area you choose later,

3:54firmware, embedded Linux, IoT, security, FPGA or anything else, you need this foundation. The first

4:02skill here is C programming. C is still extremely important in embedded systems. A lot of production

4:08level embedded code is written in C, especially when you are working close to the hardware. You

4:14don't need to become a C language expert from day one, but you need to be comfortable with

4:19the parts of C that are used all the time in embedded development. That means functions,

4:25arrays, pointers, structures, enams, hop file, source files and data types like uint8_t,

4:33uint16_t and uint32_t. You also need to understand bit manipulation. In embedded systems,

4:39you will often need to set a bit, clear a bit, toggle a bit, or check if a bit is set. This becomes very

4:46important when you are working with registers. For example, if a peripheral register controls

4:51a GPIO pin, you may need to set one specific bit to configure that pin as an output. So,

4:57bitwise operations are not just academic, they are practical. Then there are keywords like volatile,

5:04extern, const and static. You don't need to understand every detail immediately,

5:09but you should know why they exist and where they are used. For example, volatile is very important

5:15when a value can change outside the normal flow of the program like a hardware register or a variable

5:21changed inside an interrupt. The second part of this pillar is the CPU mental model. You don't

5:27need to master assembly at the beginning, but you should understand at a high level how a CPU works.

5:34The CPU fetches instructions from memory, decodes them, executes them, and interacts with register,

5:41RAM, flash, and peripherals. This mental model helps you understand why embedded programming is

5:47different from normal application programming. The third part is debugging. You need to learn

5:52how to debug even simple programs like set break points, step through the code, inspect variables,

6:00check memory, look at register, and use serial logs. At the beginning, this may feel slow,

6:07but it is one of the most valuable skills you can build. In real work, debugging is a huge part of

6:13embedded development. Sometimes the code compiles, but the board does not behave as expected.

6:19Sometimes the bug is a wrong pointer. Sometimes it is a wrong data type. Sometimes it is a stack

6:26problem, timing issue or memory corruption. You don't need to go extremely deep from day one, but

6:32you need to start building that debugging mindset. And the last part of this pillar is documentation.

6:38Learn how to read data sheets, reference manuals, user manuals, schematics, application notes,

6:44and the data. This is one of the biggest differences between just following tutorials

6:49and preparing for real work. In the industry, someone may give you a board and documentation

6:54and you need to figure things out. You need to understand how to translate a register description

6:59from a reference manual into C code. This is where everything connects C pointers, bit operations,

7:05memory addresses, and hardware documentation. For me, this is the real foundation. The second pillar

Pillar 2: Board selection and peripherals

7:12is board selection and peripherals. At some point you need a real development board. You can choose

7:17different platforms like STDM32, Nordic, NXP, Microchip, TI, and many others. But if I had

7:25to recommend one starting point, I would choose an STM32 Nucleo or Discovery board. And I want

7:31to be clear here, there is nothing wrong with Arduino. Arduino is great for hobby projects,

7:36prototypes, and learning the very first concept of electronics and programming. But if your goal

7:41is to get closer to a professional embedded workflow, I would personally choose something

7:46like STM32. The reason is that with STM32, you get exposed to datasheets, reference manuals,

7:54board schematics, peripherals configuration, clock configuration, and debugging workflows that are

8:00closer to what you may see in companies. With Arduino, there is nothing wrong with it, but a

8:06lot of things are already abstracted for you. You can build things quickly, which is great, but you

8:11don't always see what is happening underneath. With an STM32 type board, you are closer to the

8:17hardware. You start seeing how the peripherals are configured, how registers are used, how the

8:22clock system affects your application, and how the microcontroller actually interacts with the

8:27external world. You can start with STM32CubeIDE. It helps you select the board, configure pins,

8:34configure peripherals, generate code, build the project and debug. At the beginning, using this

8:40type of tool is not a problem. The goal is not to do everything from scratch on day one. The goal is

8:45to start building project and slowly understand what's happening underneath. Then once you are

8:51comfortable, you can go deeper and try more manual approach if you want. The peripherals I

8:56would focus on first are GPIO, UART, timers, ADC, I2C, SPI or "spy", CAN, Watchdog, and later

9:06DMA. A very simple but useful path is this. First blink an LED. Then read a button. Then send logs

9:14over UART. Then read an analog value with ADC. Then communicate with a sensor using I2C or SPI.

9:22Then use timer interrupts. Then add watchdog. Then later experiment with DMA. This may sound basic,

9:28but this is how you build real understanding. One peripheral at a time, one small project at a time.

9:34Also do not ignore clock configuration. At some point you need to understand how the system clock

9:40works. How peripherals clocks are enabled and how clock configuration affect timers UART baud rate ADC

9:48and other peripherals. This is why the reference manual becomes important. You are not just writing

9:53code. You are learning how the microcontroller works. The third pillar is basic electronics. You

Pillar 3: Basic electronics

9:58don't need to become a hardware engineer to work in embedded software. But you need to understand

10:03the basics of electronics. Embedded software interacts with real circuits. So you should

10:09understand voltage, current, resistance, ohms law, resistors, capacitors, diodes, transistor,

10:17LEDs, buttons, sensors, voltage, regulators, and logical levels. You should also understand pull-

10:23up and pull-down resistors. This is one of those topics that looks simple, but in real debugging,

10:29it matters a lot. If an input pin is floating, your software may behave strangely and the problem

10:35may not be your code. It may be the circuit. You should also learn how to read a schematic. In a

10:40company, a hardware engineer may give you the schematic of a board and you need to understand

10:45how the microcontroller connects to the rest of the circuit. Like where is the MCU? Which

10:50pins are connected to sensors? Where is the power section? Where is the reset circuit? Which pins

10:55are used for UART, SPI, I2C, CAN or GPIO? Where are the pull-up resistors? Where are the

11:01connectors? This is very practical knowledge. And then you need measurement tools. At minimum, learn

11:07how to use a multimeter. Then if possible get a cheap logic analyzer. A logic analyzer is very useful

11:14for digital protocols like UART, SPI and I2C. Later learn the basic of an oscilloscope. An

11:21oscilloscope helps you see the real shape of the signal voltage levels noise clock signals and

11:28timing. In embedded systems the bug is not always in the code. Sometimes the problem is wiring,

11:34signal quality, voltage levels, timing or hardware configuration. That's why basic electronics is

11:41part of the road map. The fourth pillar is memory. Memory is one of the most important

Pillar 4: Memory

11:46topics in embedded systems. You need to understand where your code lives, where your variables live,

11:52and how the MCU memory is organized. At a basic level, you should understand flash memory, RAM,

11:59EROM, stack, heap, resistors, memory-mapped I/O, and DMA. Flash is usually where your program code

12:06is stored. RAM is where your variables live during runtime. The stack is used for function calls,

12:12local variables, and return addresses. The heap is used for dynamic memory allocation,

12:18although in many embedded system you may avoid dynamic allocation or use it very carefully.

12:23Then you have registers. Peripheral registers are often mapped to memory addresses. That means your

12:30C code can access a memory address and by writing to that address you can configure or control

12:36hardware. This is a very important concept. When you understand memory-mapped I/O embedded

12:41programming starts to make much more sense. Then there is DMA, which stands for Direct Memory Access.

12:47DMA allows data to move between memory and peripherals without the CPU handling every

12:53single transfer. This is useful for things like ADC, UART, SPI, and other data-heavy operations. At the

13:01beginning, you don't need to master DMA, linker scripts or startup code deeply. But you should

13:07slowly build the mental model like where is the code? Where are global variables? Where is the

13:12stack? Why can stack overflow happen? Why is memory limits important? Why do data types matter? This

13:19pillar connects directly with C programming, debugging and performance. The fifth pillar is

Pillar 5: Professional tools

13:25professional tools. This is the part that many beginners ignore, but it makes a big difference

13:30when you want to work professionally. The first tool is Git. You should learn how to create commits,

13:36create branches, push code, pull code, merge changes, and work with a remote repository. You

13:42don't need to become a Git expert immediately, but you should be comfortable enough to manage

13:47your projects and collaborate with others. Then use GitHub, GitLab, or Bitbucket to host your

13:53projects. For beginners, GitHub is a great place to document your learning. A simple project with

13:58a good README can already say a lot about you. Then learn build tools. In the beginning, you

14:04may compile a C file manually from the terminal. That's okay. But professional project usually

14:10use build systems. So learn the basic of Make, CMake, and Ninja. Understand what a make file does.

14:16Understand what a CMakeLists.txt file does. Understand include directories, source files,

14:23libraries, and build folders. Then learn GDB basics. Learn how to set break points, inspect

14:28variables, step through code, and check memory. This tool help you move from I followed a tutorial

14:35to I can structure, build, debug and maintain a project. The last pillar is choosing your path.

Pillar 6: Choose your path

14:41Once you have the foundation, you can go deeper into a specific area and this is where embedded

14:46system become very broad. One path is firmware. This is the path closest to microcontrollers and

14:52bare metal development. If you choose firmware, you need strong C, peripherals, interrupt,

14:57timers, communication protocols, watchdogs, DMA, low power modes, debugging, datasheets,

15:04and reference manual. Later, you can add FreeRTOS , bootloader, firmware updates, unit testing,

15:10and driver development. Good project here could be a sensor data logger, a motor controller,

15:15a CAN bus node, a FreeRTOS based sensor system, or a bootloader and firmware update demo. Another

15:22path is embedded Linux. This is very common in more complex devices and getaways. If you choose

15:28embedded Linux, learn the Linux command line, file permission, processes, systemd, networking,

15:34SSH, shell scripting, cross compilation, C or C++ on Linux, device tree basics, kernel module,

15:42and later Yocto or buildroot. A good project here could be a Raspberry Pi or BeagleBone getaway, a custom

15:48Yocto image, a systemd service that reads sensor data, or a device tree overlay project. Another

15:54path is IoT. This is especially relevant for connected devices and getaways. For IoT you should

16:00understand MQTT, HTTP, networking, JSON, telemetry, device provisioning, logging, reconnect logic,

16:08cloud basics and TLS basics. Later you can go deeper into Azure IoT hub over the updates,

16:14certificate management, fleet management and edge getaways. Good project here could be an MQTT

16:21sensor getaway, an Azure IoT telemetry project, a device provisioning demo or a secure IoT device

16:27using certificates. Another path is embedded security. This is focused on protecting device,

16:32firmware, updates, and communication. For embedded security you need C, memory, cryptography basics,

16:40secure boot concepts, firmware signing, hashing, certificates, TLS, thread modeling, secure updates

16:47and hardware security basics. Later you can go deeper into secure elements, TPMS, key storage,

16:54anti-rollback, vulnerability research, fuzzing, static analysis and secure coding. And then there

17:01are other paths like FPGA and digital design. The important point is this. You don't need to

17:07choose everything at once. Choose one main path. Build two or three solid project around it and

17:13document them properly. Once your foundation is strong, moving between areas become much easier.

17:18For example, someone who starts with firmware can later move into IoT. Someone who works with

17:24embedded Linux can later move into security. Someone working with IoT getaways may need Linux

17:30networking, cloud, security, and firmware knowledge. These areas are connected but

17:36You need a base first. So if I had to start learning embedded systems from zero in 2026,

Final advice

17:42This is the roadmap I would follow. First, build the core fundamentals. C programming, CPU mental

17:47model, debugging, datasheets, register, and bit manipulation. Then choose a real board and

17:53learn peripherals. Then learn basic electronics because your code interacts with real hardware.

17:58Then understand memory, RAM, flash, stack, heap, registers, memory-map I/O and DMA. Then add

18:05professional tools like Git, GitHub, Make, Cmake, Ninja and GDB. And finally, choose your path,

18:12firmware, embedded Linux, IoT, embedded security, FPGA, or another specialization. But remember,

18:19the goal is not to learn everything at once. The goal is to build the foundation first. Then build

18:24two or three solid projects in your shoes and path and document them on GitHub. That's what can help

18:29you transition more smoothly into the industry. And that is the roadmap I wish more beginners

18:34had before entering their first embedded role. If you are learning embedded system right now,

18:40let me know in the comments which stage you are in. Are you learning C? Are you starting

18:44with STM32? Are you interested in firmware, embedded Linux, IoT or security? And if you

18:50want more practical embedded system content from the perspective of someone working in the field,

18:54subscribe to the channel. Thanks for watching and I'll see you in the next video.

This transcript was generated from the captions YouTube publishes for this video. Get the transcript of any YouTube video atfreeyoutubetranscribe.com: free, unlimited, no sign-up.