Compare commits

...
Author SHA1 Message Date
Meysam Parvizi 8ec15c8825 Minor changes
Remove the term "Industry Ready"
2023-08-03 16:00:27 +03:30
Meysam Parvizi 11b4c8e638 Update README.md 2023-08-03 15:31:18 +03:30
Meysam Parvizi 6f13c90f7d Update README.md 2023-08-02 14:48:29 +03:30
Meysam Parvizi 6e79f9f1b3 Update README.md 2023-08-02 13:27:54 +03:30
Meysam Parvizi 7783fcb88f Minor changes 2023-08-02 01:56:32 +03:30
Meysam Parvizi 19d2d522e9 Update README.md 2023-08-02 01:24:57 +03:30
Meysam Parvizi 81a1d2d03d Update README.md
Add Security & Cryptography
2023-08-02 01:17:09 +03:30
Meysam Parvizi c77f3fc47c Update README.md 2023-08-02 00:01:11 +03:30
Meysam Parvizi 3d90a4f057 Update README.md 2023-08-01 23:26:58 +03:30
Meysam Parvizi ce4a816095 Update README.md 2023-08-01 21:03:35 +03:30
Meysam Parvizi 765f809d82 Update README.md
Add Digital Signal Processing
2023-08-01 20:54:05 +03:30
Meysam Parvizi e86c2a3d6d Update README.md
Add RT-Thread
2023-08-01 13:14:05 +03:30
Meysam Parvizi a6f015a751 Update README.md
Update Embedded AI
2023-08-01 03:52:26 +03:30
Meysam Parvizi e83d205475 Update README.md 2023-07-31 21:50:53 +03:30
Meysam Parvizi 651d69b0a2 Update README.md
Add FreeRTOS and Zephyr
2023-07-31 21:48:07 +03:30
Meysam Parvizi 7ca183d679 Update README.md
Add Bootloader
2023-07-31 21:38:27 +03:30
Meysam Parvizi 7dd228bf51 Update README.md
Add all roadmap topics
2023-07-31 13:52:25 +03:30
Meysam Parvizi 735f309232 Update README.md 2023-07-31 13:01:56 +03:30
2 changed files with 188 additions and 4 deletions
Binary file not shown.
+188 -4
View File
@@ -2,16 +2,20 @@
This roadmap is designed to assist beginners aspiring to build a career as an Embedded Engineer / Developer. To provide comprehensive guidance, I have carefully selected the topics based on current open job requirements and organized them according to my personal experience.
Becoming an embedded engineer requires a broad understanding of both software and hardware. If you are starting on this journey, you must be highly motivated and passionate to pursue this path. The field of embedded systems demands a solid comprehension of hardware functionality and, as the well-known saying goes, **"Hardware is hard."** Therefore, patience and passion are the essential qualities that will help you overcome the various challenges encountered along this journey.
Becoming an embedded engineer requires a broad understanding of both software and hardware. If you are starting on this journey, you must be highly motivated and passionate to pursue this path. The field of embedded systems demands a solid understanding of hardware functionality. But, as the well-known saying goes, "Hardware is hard!". So, patience and passion are the essential qualities that will help you overcome the various challenges encountered along this journey.
## Roadmap
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/download/Rev.L-2023-07-31/Embedded-Engineering-Roadmap.png)
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest/download/Embedded-Engineering-Roadmap.png)
## Learning Resources
### ⭐️ Featured Material
#### Google
- [Searching is Your Super Power!](https://www.google.com)
#### Courses and Youtube Channels
- [Fastbit Embedded Brain Academy](https://fastbitlab.com/)
@@ -27,7 +31,11 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [Arduino Language Reference](https://www.arduino.cc/reference/en/)
#### Websites
#### STM32
- [Getting Started with STM32 and Nucleo](https://youtube.com/playlist?list=PLEBQazB0HUyRYuzfi4clXsKUSgorErmBv)
#### Educational Websites
- [SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/)
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
@@ -115,6 +123,10 @@ Becoming an embedded engineer requires a broad understanding of both software an
- [Introduction to FPGA](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb)
- [FPGA Fundamentals](https://nandland.com/fpga-101/)
- [FPGA Embedded Design, Part 1 - Verilog](https://www.udemy.com/course/fpga-embedded-design-verilog/)
- [FPGA Embedded Design, Part 2 - Basic FPGA Training](https://www.udemy.com/course/fpga-embedded-design-fpgas/)
- [FPGA Embedded Design, Part 3 - EDA Tools](https://www.udemy.com/course/fpga-embedded-design-eda-tools/)
- [FPGA Embedded Design, Part 4 - Microprocessor Design](https://www.udemy.com/course/fpga-embedded-design-cpu/)
### Programming Fundamentals
@@ -127,6 +139,7 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### Design Patterns
- [Embedded Systems State Machines & Data Structures](https://www.udemy.com/course/embedded-systems-state-machines-data-structures-like-a-pro/)
- [Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/)
#### State Machines / UML
@@ -142,13 +155,16 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### C
- [W3Schools C Tutorial](https://www.w3schools.com/c/index.php)
- [Microcontroller Embedded C Programming: Absolute Beginners](https://www.udemy.com/course/microcontroller-embedded-c-programming/)
- [The C Programming Language - Brian W. Kernighan, Dennis M. Ritchie ](https://www.amazon.com/dp/0131103628?ref_=cm_sw_r_cp_ud_dp_KRZ8M1WTXWVG0HMSRBXA)
- [C How to Program - Paul Deitel, Harvey Deitel ](https://deitel.com/c-how-to-program-9-e/)
- [Effective C - An Introduction to Professional C Programming - Robert C. Seacord](https://nostarch.com/Effective_C)
#### C++
- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y)
- [C++ YouTube Playlist by The Cherno](https://youtube.com/playlist?list=PLlrATfBNZ98dudnM48yfGUldqGD0S4FFb)
- [C++ Concurrency in Action - Anthony Williams ](https://www.manning.com/books/c-plus-plus-concurrency-in-action)
#### Assembly
@@ -195,6 +211,52 @@ Becoming an embedded engineer requires a broad understanding of both software an
### Microcontrollers
- [Mastering STM32](https://leanpub.com/mastering-stm32)
#### GPIO
#### ADC
#### DAC
#### Timers
#### PWM
#### Interrupts
#### Watchdog
#### DMA
#### Power Management
#### Bootloader
- [How to Create a Super Simple Bootloader](https://www.youtube.com/watch?v=OkUQ3iMmiYQ&list=PLnMKNibPkDnEb1sphpdFJ3bR9dNy7S6mO)
- [STM32Fx Microcontroller Custom Bootloader Development](https://www.udemy.com/course/stm32f4-arm-cortex-mx-custom-bootloader-development/)
#### Functional Safety
- [Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/)
### Interfaces & Protocols
#### Common
#### Wireless
#### Industrial
#### High-Speed
#### Automotive
#### Network
#### Cellular
### Operating Systems
#### Operating System Fundamentals
@@ -203,24 +265,146 @@ Becoming an embedded engineer requires a broad understanding of both software an
#### Embedded Linux
- [Introduction to Embedded Linux](https://youtube.com/playlist?list=PLEBQazB0HUyTpoJoZecRK6PpDG31Y7RPB)
##### Linux Kernel
- [The Linux Programming Interface - Michael Kerrisk](https://man7.org/tlpi/)
##### Linux Device Drivers
##### U-Boot
##### BuildRoot
##### Yocto
##### Qt
#### Real-Time OS
##### FreeRTOS
- [FreeRTOS - Market leading RTOS](https://www.freertos.org)
- [Introduction to RTOS](https://www.youtube.com/playlist?list=PLEBQazB0HUyQ4hAPU1cJED6t3DU0h34bz)
##### Zephyr
- [Zephyr® Project](https://www.zephyrproject.org/)
- [ESP32 on Zephyr OS](https://www.youtube.com/playlist?list=PLEQVp_6G_y4iFfemAbFsKw6tsGABarTwp)
##### NuttX
- [NuttX - The Apache Software Foundation!](https://nuttx.apache.org/)
- [Getting Started to NuttX](https://www.youtube.com/playlist?list=PLd73yQk5Fd8JEsVD-lhwYRQKVu6glfDa8)
##### RT-Thread
- [RT-Thread | An Open Source Embedded Real-time Operating System](https://www.rt-thread.io/)
- [RT-Thread Beginners Guide](https://youtube.com/playlist?list=PLXUV89C_M3G5KVw2IerI-pqApdSM_IaZo)
##### QNX
- [BlackBerry QNX: Embedded OS, Support, and Services](https://blackberry.qnx.com/en)
##### VxWorks
- [VxWorks | Industry Leading RTOS for Embedded Systems](https://www.windriver.com/products/vxworks)
### Digital Signal Processing
#### DSP Fundamentals & Filter Design
- [FIR Filter Design and Software Implementation - Phil's Lab #17](https://www.youtube.com/watch?v=uNNNj9AZisM)
- [IIR Filters - Theory and Implementation (STM32) - Phil's Lab #32](https://www.youtube.com/watch?v=QRMe02kzVkA)
- [Digital Signal Processing (ECSE-4530) Lectures, Fall 2014](https://youtube.com/playlist?list=PLuh62Q4Sv7BUSzx5Jr8Wrxxn-U10qG1et)
- [Digital Signal Processing (DSP) From Ground Up in C](https://www.udemy.com/course/digital-signal-processing-dsp-from-ground-uptm-in-c/)
- [Real-Time Digital Signal Processing: Fundamentals, Implementations and Applications - Sen M. Kuo, Bob H. Lee, Wenshun Tian](https://www.wiley.com/en-us/Real+Time+Digital+Signal+Processing%3A+Fundamentals%2C+Implementations+and+Applications%2C+3rd+Edition-p-9781118414323)
- [Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs - Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow](https://www.routledge.com/Real-Time-Digital-Signal-Processing-from-MATLAB-to-C-with-the-TMS320C6x/Welch-Wright-Morrow/p/book/9780367736453)
- [Digital Signal Processing - John G. Proakis, Dimitris K. Manolakis](https://a.co/d/75P5PiE)
- [Schaum's Outline of Signals and Systems - Hwei P. Hsu](https://www.mhprofessional.com/schaum-s-outline-of-signals-and-systems-fourth-edition-9781260454246-usa)
#### Discrete Fourier Transform / FFT
- [Discrete Fourier Transform - Simple Step by Step](https://www.youtube.com/watch?v=mkGsMWi_j4Q)
- [The Fast Fourier Transform (FFT): Most Ingenious Algorithm Ever?](https://youtu.be/h7apO7q16V0)
- [The FFT Algorithm - Simple Step by Step](https://www.youtube.com/watch?v=htCj9exbGo0)
#### Controls Systems / PID Control
- [Understanding Control Systems](https://youtube.com/playlist?list=PLn8PRpmsu08q8CE0pbZ-cSrMm_WYJfVGd)
- [PID Controller Explained](https://www.youtube.com/watch?v=fv6dLTEvl74)
- [Understanding PID Control](https://youtube.com/playlist?list=PLn8PRpmsu08pQBgjxYFXSsODEF3Jqmm-y)
- [PID Controller Implementation in Software - Phil's Lab #6](https://www.youtube.com/watch?v=zOByx3Izf5U)
- [Control Systems Engineering - Norman S. Nise](https://www.wiley.com/en-us/Control+Systems+Engineering%2C+8th+Edition-p-9781119474227)
- [Modern Control Systems - Richard C. Dorf, Robert H. Bishop](https://www.pearson.com/en-us/subject-catalog/p/modern-control-systems/P200000003484/9780137307098)
#### MATLAB / Simulink
- [MATLAB Tutorials: Getting Started with MATLAB](https://youtube.com/playlist?list=PL7CAABC40B2825C8B)
- [Getting Started with Simulink](https://youtube.com/playlist?list=PL484BA2AD3AE4C2D0)
- [MATLAB/SIMULINK Bible|Go From Zero to Hero!](https://www.udemy.com/course/matlabsimulink-biblego-from-zero-to-hero/)
### Debugging
#### JTAG / SWD
#### GDB
#### OpenOCD
### Testing
### Unit Testing
- [Intro to CI/CD](https://youtu.be/1nxGcfIm-TU)
#### Unit Testing
- [Embedded C/C++ Unit Testing with Mocks](https://interrupt.memfault.com/blog/unit-test-mocking)
#### Integration Testing
#### SIL / HIL Testing
- [Embedded CI/CD with HIL Testing](https://youtube.com/playlist?list=PL4cGeWgaBTe1uwiqIAc6fwPzPpvgPZI2J)
### Embedded AI
- [Intro to Edge AI: Machine Learning + IoT – Maker.io Tutorial | Digi-Key Electronics](https://www.youtube.com/watch?v=Ejld8XZmvwE)
#### AI/ML Basics
- [Getting Started with Embedded AI | Edge AI](https://www.udemy.com/course/getting-started-with-embedded-ai-hands-on-experience/)
#### TensorFlow
- [Getting Started with TensorFlow and Keras – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=HCG3hFe1KYY)
- [Intro to TensorFlow Lite Part 1: Wake Word Feature Extraction – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=0fn7pj7Dutc)
- [Intro to TensorFlow Lite Part 2: Speech Recognition Model Training – Maker.io | Digi-Key Electronics](https://www.youtube.com/watch?v=yv_WVwr6OkI)
#### tinyML
- [Intro to TinyML Part 1: Training a Neural Network for Arduino in TensorFlow | Digi-Key Electronics](https://www.youtube.com/watch?v=BzzqYNYOcWc)
- [Intro to TinyML Part 2: Deploying a TensorFlow Lite Model to Arduino | Digi-Key Electronics](https://www.youtube.com/watch?v=dU01M61RW8s)
### Security & Cryptography
#### Cryptographic Algorithms
#### Hash Algorithms
- [Cryptography and Network Security: Principles and Practice - William Stallings](https://www.pearson.com/en-us/subject-catalog/p/cryptography-and-network-security-principles-and-practice/P200000003477/9780135764213)
- [Serious Cryptography: A Practical Introduction to Modern Encryption - Jean-Philippe Aumasson](https://nostarch.com/seriouscrypto)
- [MOOC - Security Part2: Basics of cryptography](https://youtube.com/playlist?list=PLnMKNibPkDnFSFh57UFTZLpy-7lZiwTHh)
- [MOOC - Security Part3 : STM32 security features](https://youtube.com/playlist?list=PLnMKNibPkDnFzux3PHKUEi14ftDn9Cbm7)
#### Secure Boot
#### Secure Firmware Update
- [MOOC - Security Part4 : STM32 security in practice](https://youtube.com/playlist?list=PLnMKNibPkDnF0wt-ZI74SflnsBV4yKzkO)
- [MOOC - Security Part5 : How to define your security needs](https://youtube.com/playlist?list=PLnMKNibPkDnGqh5OmQWw98ztpf9TeczbC)
- [MOOC - Security Part6: STM32 security ecosystem, from theory to practice](https://youtube.com/playlist?list=PLnMKNibPkDnGd7J7fV7tr-4xIBwkNfD--)
## History