Compare commits

...
Author SHA1 Message Date
Meysam Parvizi 6313c63883 Update Roadmap
Add 'Embedded AI' 
Add 'UML' 
Add 'VxWorks' 
Add 'Qt'
2023-07-31 02:48:38 +03:30
Meysam Parvizi cf21153c09 Update README.md 2023-07-31 01:47:04 +03:30
Meysam Parvizi f41e5d3738 Update README.md
Add Programming Languages
2023-07-31 01:25:19 +03:30
Meysam Parvizi a016955502 Update README.md
Add Algorithms & Data Structures
2023-07-30 23:31:09 +03:30
Meysam Parvizi bf22f434ef Update README.md 2023-07-30 22:33:49 +03:30
Meysam Parvizi 42d3f0e325 Update README.md 2023-07-30 21:54:17 +03:30
Meysam Parvizi 65da788e53 Add resources for EMI / SI in PCB design 2023-07-30 13:58:44 +03:30
Meysam Parvizi a7bd324f45 Update README.md 2023-07-30 13:10:07 +03:30
Meysam Parvizi 23c671da4e Update README.md 2023-07-30 13:07:45 +03:30
Meysam Parvizi b1dce8cb2b Add 'The Art of Electronics' 2023-07-30 13:06:58 +03:30
Meysam Parvizi a9a9fc5f02 Update README.md 2023-07-30 13:00:25 +03:30
Meysam 37b3fc63f4 Add 'Encyclopedia of Electronic Components' 2023-07-30 12:51:36 +03:30
Meysam 2095451d43 Add some resources for hardware basics 2023-07-30 12:48:34 +03:30
Meysam c38b928765 Add Ben Eater 8-bit breadboard (#6) 2023-07-30 11:11:48 +03:30
Meysam 9bb1700f2a Add some Learning Resources 2023-07-30 00:05:26 +03:30
Meysam b9d63a0a26 Update README.md 2023-07-29 22:44:53 +03:30
Meysam 1235564886 Add 'Organizational & Time Management Skills' 2023-07-29 22:44:13 +03:30
Meysam d2f0f8fb47 Update README.md 2023-07-29 22:05:05 +03:30
Meysam 96ba2bae7e Add Docker (#5)
Add CoAP & cellular networks (#4)
Add Secure Boot and OTA (#3)
Add Functional Safety
Add MATLAB / Simulink
2023-07-29 16:51:59 +03:30
Meysam 5e33251915 Add SOFT SKILLS (#2) 2023-07-29 14:04:20 +03:30
Meysam e947b65b2d Minor changes 2023-07-28 22:05:31 +03:30
Meysam 21b7ed7e54 Update README.md 2023-07-28 21:48:16 +03:30
Meysam eb50a7f92e More emphasize on DSP
Add eMMC memory
Add Rework
2023-07-28 21:42:13 +03:30
Meysam cae6215eb7 Update README.md 2023-07-28 15:11:06 +03:30
Meysam c734253b08 Update README.md 2023-07-28 14:37:05 +03:30
Meysam 5c0d7b2e90 Update README.md 2023-07-28 13:35:25 +03:30
Meysam 5d222a22b8 Update README.md 2023-07-27 20:44:44 +03:30
Meysam 41ef7f0986 Remove 'Architectures' section
Edit "Protocols" section
Remove "Binary Arithmetic" (already included in "Logic Design"
Add "Memory Management"
Fix notes
2023-07-27 20:40:34 +03:30
Meysam f0cebd35d8 Update README.md 2023-07-27 13:14:44 +03:30
Meysam df09e07d27 Add Bootloder
Add some notes
Remove SVN
2023-07-27 13:12:28 +03:30
Meysam 8b3ea9dd7f Update README.md 2023-07-27 00:52:55 +03:30
Meysam ab85827815 Update README.md 2023-07-27 00:48:43 +03:30
Meysam 5ef7e0a988 Reorganize the diagram
Remove `Development Methodologies`
2023-07-27 00:43:34 +03:30
Meysam d0e1c59fd9 Minor changes 2023-07-26 22:32:29 +03:30
Meysam f8c4c1ab63 Update README.md 2023-07-26 22:27:24 +03:30
Meysam 5588af02d8 Add a note about FPGAs 2023-07-26 22:22:53 +03:30
Meysam f622f845ef Add Power Management 2023-07-26 18:06:36 +03:30
Meysam b9eab2708b Update README.md 2023-07-26 16:44:54 +03:30
Meysam 7933f5bc3b Add DSP and Cryptography sections.
Edit Electronics Fundamentals
2023-07-26 16:35:44 +03:30
Meysam 94b0bc9a36 Dotted arrow lines 2023-07-26 11:41:30 +03:30
Meysam 935eafffc0 Update README.md 2023-07-26 11:25:58 +03:30
Meysam 93d58293b3 Update README.md 2023-07-26 11:09:12 +03:30
Meysam aa0dfda62a Update README.md 2023-07-26 10:55:45 +03:30
2 changed files with 176 additions and 8 deletions
Binary file not shown.
+176 -8
View File
@@ -1,21 +1,189 @@
# Embedded Systems Engineering Roadmap
This is a roadmap for those who want to build a career as an Embedded Developer or Embedded Engineer.
In order to assist beginners, steps have been taken to create a roadmap that is straightforward and easy to understand.
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.
If you think that this map can be improved in anyway, please start an issue or pull request. I’ll be maintaining and updating this repository frequently. The source file is created using [Microsoft Visio](https://office.com/visio).
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.
## Roadmap
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/download/Rev.K-2023-07-31/Embedded-Engineering-Roadmap.png)
## Learning Resources
### ⭐️ Featured Material
#### Courses and Youtube Channels
- [Ben Eater YouTube Channel](https://www.youtube.com/@BenEater)
- [Fastbit Embedded Brain Academy](https://fastbitlab.com/)
- [DigiKey YouTube Channel](https://www.youtube.com/@digikey)
- [Phil’s Lab YouTube Channel](https://www.youtube.com/@PhilsLab)
#### Simulation
- [Wokwi - Online ESP32, STM32, Arduino Simulator](https://wokwi.com/)
#### Websites
- [SparkFun Learn: Learn at SparkFun Electronics](https://learn.sparkfun.com/)
- [Random Nerd Tutorials | Learn ESP32, ESP8266, Arduino, and Raspberry Pi](https://randomnerdtutorials.com/)
> **Note:** It is not necessary to read or watch all of the following materials,
> but it is important to study enough to have at least a basic understanding of each topic.
> Of course, the more you study and practice, the deeper and wider your knowledge will become.
> This will ultimately improve your skills as an engineer.
>
> Some the resources mentioned here will only be used as references. Refer to them only when you need them.
### Electronics Fundamentals
#### Basic Math & Calculus
- [Khan Academy - Calculus 1](https://www.khanacademy.org/math/calculus-1)
- [Calculus - Robert T Smith, Roland Minton](https://www.mheducation.com/highered/product/calculus-smith-minton/M9780073383118.html)
#### Electrical Circuits Basics
#### Electronic Components
- [#1099 How I learned electronics](https://youtu.be/Bgrubw6B_us)
- [Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook/)
- [Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https://www.amazon.com/dp/1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S)
- [Grob’s Basic Electronics - Mitchel E. Schultz](https://a.co/d/g1g73HV)
- [Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R)
- [Encyclopedia of Electronic Components - Charles Platt](https://a.co/d/83cSiU7)
- [The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/)
#### Digital Circuits & Logic Design
#### Computer Architecture
- [Build an 8-bit computer from scratch](https://eater.net/8bit/)
- [Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://github.com/AbderrhmanAbdellatif/ComputerOrganization/blob/master/%5BThe%20Morgan%20Kaufmann%20Series%20in%20Computer%20Architecture%20and%20Design%5D%20David%20A.%20Patterson%2C%20John%20L.%20Hennessy%20-%20Computer%20Organization%20and%20Design_%20The%20Hardware%20Software%20Interface_%20ARM%20Edition%20(2016%2C%20Morgan%20Kaufmann).pdf)
- [Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI)
- [Digital Design - Morris Mano](https://www.portcity.edu.bd/files/636444791235373856_Digitallogicdesign.pdf)
- [Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/)
### Using Test Equipment
#### Multimeter
- [Learn How to Use a Multimeter!](https://youtu.be/4lAyzRxsbDc)
- [How to Use a Multimeter ](https://learn.sparkfun.com/tutorials/how-to-use-a-multimeter/all)
#### Logic Analyzer
- [Instrument Basics: Logic Analyzer](https://youtu.be/u1DYs2I-_lU)
#### Oscilloscope
- [What’s an OSCILLOSCOPE?](https://youtu.be/DgYGRtkd9Vs)
- [How to Use an Oscilloscope](https://youtu.be/u4zyptPLlJI)
- [How to use an oscilloscope / What is an oscilloscope / Oscilloscope tutorial](https://youtu.be/CzY2abWCVTY)
### Prototyping Skills
#### PCB Design
- [How To Learn PCB Design (My Thoughts, Journey, and Resources) - Phil's Lab #87](https://youtu.be/aODkA2mrimQ)
- [KiCad 6 STM32 PCB Design Full Tutorial - Phil's Lab #65](https://youtu.be/aVUqaB0IMh4)
- [Intro to KiCad](https://www.youtube.com/watch?v=vaCVh2SAZY4&list=PLEBQazB0HUyR24ckSZ5u05TZHV9khgA1O)
- [Altium Academy YouTube Channel](https://www.youtube.com/@AltiumAcademy)
- [Microcontroller-Based Hardware Design With Altium Designer](https://www.youtube.com/playlist?list=PL3aaAq2OJU5HcbClqrOhqBDozF7HmxV-s)
- [Robert Feranec YouTube Channel](https://www.youtube.com/@RobertFeranec)
- [PCB Design for EMI & SI - Phil's Lab #64](https://www.youtube.com/watch?v=VtzPL8wQ8-E)
- [PCB Design for Advanced Users](https://youtube.com/playlist?list=PL3aaAq2OJU5EWfYT_Z93tc9pBF_Sidba_)
#### Soldering
- [How To Solder - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=sS4v2hIFp9I)
- [HOW TO SOLDER! (Beginner's Guide)](https://www.youtube.com/watch?v=3jAw41LRBxU)
- [Soldering Crash Course: Basic Techniques, Tips and Advice!](https://www.youtube.com/watch?v=6rmErwU5E-k)
- [How to Solder Through-Hole Components - Another Teaching Moment | DigiKey Electronics](https://www.youtube.com/watch?v=DJH7VLGJ4fs)
- [How to Solder QFN MLF Package by Hand (Using a Hot Air Rework Station) | Digi-Key Electronics](https://youtu.be/X3Rc1s6EpSI)
- [From Solderless Breadboard to Soldered Circuit - Electronics with Becky Stern | Digi-Key Electronics](https://www.youtube.com/watch?v=F9Krq7seV1g)
#### Using Breadboards
- [Everything You Need to Know about Breadboards](https://www.youtube.com/watch?v=mE33WpRWrXs)
- [How to Use a Breadboard](https://youtu.be/6WReFkfrUIk)
### FPGA Design
- [Introduction to FPGA](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb)
- [FPGA Fundamentals](https://nandland.com/fpga-101/)
### Programming Fundamentals
#### Algorithms & Data Structures
- [Grokking Algorithms - Aditya Y. Bhargava ](https://www.manning.com/books/grokking-algorithms)
- [Introduction to Algorithms - Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein](http://mitpress.mit.edu/9780262367509/introduction-to-algorithms/)
- [Data Structures in C](https://www.sanfoundry.com/c-programming-examples-data-structures/)
- [Data Structures - Full Course Using C and C++](https://www.youtube.com/watch?v=B31LgI4Y4DQ)
#### Design Patterns
- [Design Patterns for Embedded Systems in C - Bruce Powel Douglass](https://www.oreilly.com/library/view/design-patterns-for/9781856177078/)
#### State Machines / UML
- [Embedded System Design using UML State Machines](https://www.udemy.com/course/embedded-system-design-using-uml-state-machines/)
#### Memory Management
- [Dynamic Memory Allocation | C Programming Tutorial](https://www.youtube.com/watch?v=R0qIYWo8igs)
### Programming Languages
#### C
- [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/)
#### C++
- [C++ Tutorial for Beginners - Full Course](https://www.youtube.com/watch?v=vLnPwxZdW4Y)
- [C++ Concurrency in Action - Anthony Williams ](https://www.manning.com/books/c-plus-plus-concurrency-in-action)
#### Assembly
- [Assembly Language Programming with ARM – Full Tutorial for Beginners](https://www.youtube.com/watch?v=gfmRrPjnEw4)
#### Python
- [Real Python: Python Tutorials](https://realpython.com/)
- [Python Crash Course - Eric Matthes](https://a.co/d/hSMTJwE)
- [MicroPython - Python for microcontrollers](https://micropython.org/)
- [CircuitPython](https://circuitpython.org/)
#### Rust
- [The Embedded Rust Book](https://docs.rust-embedded.org/book/)
> Under construction!
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/assets/1549028/2558c78e-a933-4064-ad5e-e85086539abc)
## History
The idea of creating this roadmap came from a [roadmap](https://github.com/vazeri/Embedded-Engineering-RoadMap-2018) designed by [vazeri](https://github.com/vazeri) which was not updated for years.
I took that idea and changed the structure of the roadmap, improved it, and draw it using Microsoft Visio 2019. Now it is completely a different thing.
The idea of creating this roadmap came from [vazeri / Embedded-Engineering-RoadMap-2018](https://github.com/vazeri/Embedded-Engineering-RoadMap-2018) which was well designed but had some flaws and not updated for years.
I took that idea, changed the structure of the roadmap and tried to improve it. The initial results can be accessed in [m3y54m / Embedded-Engineering-Roadmap-Archived](https://github.com/m3y54m/Embedded-Engineering-Roadmap-Archived) which is now archived. Early versions of the roadmap were created using [Balsamiq Wireframes](https://balsamiq.com) which is not suitable for these types of diagrams. So I decided to use Microsoft Visio instead and redrew the whole diagram.
## Copyright
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/).
This work is licensed under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/) which means that you are free to **share** or **adapt** this work under the following terms:
**Attribution** — You must give appropriate credit, provide a link to the license, and indicate if changes were made. You may do so in any reasonable manner, but not in any way that suggests the licensor endorses you or your use.
**ShareAlike** — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
## Acknowledgement
Special thanks to my friends in the Iranian Twitter community (Electronics and Embedded Systems Engineers) for their help in updating this roadmap.
Special thanks to my friends in the community of Iranian Embedded Engineers in Twitter and [r/embedded](https://www.reddit.com/r/embedded) subreddit for their suggestions that helped in improving this roadmap.
## Cotribution
If you think that this map can be improved in anyway, please start an issue or pull request. I’ll be maintaining and updating this repository frequently.
The source file is created using [Microsoft Visio](https://office.com/visio) in `.vsdx` format and included in this repository for your contributions. If you do not have Microsoft Visio or you want to use free software, you can use [draw.io](https://draw.io) which can import and export `.vsdx` files.