Compare commits

..
13 Commits
Author SHA1 Message Date
Meysam Parvizi 7e38537e05 Change titles in Electronics section 2023-09-30 15:51:51 +03:30
Meysam Parvizi d8700a5775 Update README.md 2023-09-30 13:51:14 +03:30
Meysam Parvizi a4b4a045c7 Update README.md 2023-09-27 19:11:48 +03:30
Meysam Parvizi 2773b42314 Update README.md 2023-09-25 17:46:52 +03:30
Meysam Parvizi 58292445b1 Update README.md 2023-09-22 19:04:14 +03:30
Meysam Parvizi c8fb92948a Update README.md 2023-09-22 18:54:22 +03:30
Meysam Parvizi 41ff4521e6 Update README.md 2023-09-22 13:10:27 +03:30
Meysam Parvizi 56840a6664 Update README.md 2023-09-22 12:56:35 +03:30
Meysam Parvizi 1bff1a0686 Update README.md 2023-09-22 12:52:31 +03:30
Meysam Parvizi afcbe99a98 Update README.md 2023-09-22 11:55:34 +03:30
Meysam Parvizi 5d406bab42 Update README.md 2023-09-22 11:35:39 +03:30
Meysam Parvizi fc45b8b444 Update README.md 2023-09-22 10:14:38 +03:30
Meysam Parvizi 8aa09359cf Update README.md 2023-09-21 19:48:07 +03:30
2 changed files with 59 additions and 22 deletions
Binary file not shown.
+59 -22
View File
@@ -11,7 +11,7 @@ Becoming an embedded engineer requires a broad understanding of both software an
> **computer system** that is **part of a larger system** and **performs some of the requirements of that system**. For example, a computer system
used in an aircraft or rapid transit system.
>
> The hardware and software of an embedded system are usually minimized and optimized for specific functions. The embedded system includes at least one microcontroller, microprocessor or digital signal processor. The embedded system designed to optimize reliability, cost, size and power saving for applications.
> The hardware and software of an embedded system are usually **minimized** and **optimized** for **specific functions**. The embedded system includes at least one microcontroller, microprocessor or digital signal processor. The embedded system designed to optimize reliability, cost, size and power saving for applications.
["Making Embedded Systems" Book:](https://www.oreilly.com/library/view/making-embedded-systems/9781449308889/)
@@ -31,6 +31,16 @@ used in an aircraft or rapid transit system.
## Roadmap
The roadmap is divided into three main sections: **SOFTWARE**, **HARDWARE**, and **SOFT SKILLS**.
The hardware and software sections overlap in many embedded job roles. Different job titles, such as "Embedded Software Engineer / Developer," "Firmware Engineer / Developer," and "Embedded Linux Software Engineer / Developer," tend to focus more on software. On the other hand, job roles like "Embedded Hardware Engineer" and "Hardware Design Engineer" primarily focus on hardware. Additionally, there are positions like "Embedded Systems Engineer" that require a good understanding of both hardware and software. It's crucial to understand that each company in the embedded industry may have specific requirements for a job role, regardless of its title.
With this in mind, the roadmap is designed to cover topics necessary for an "Embedded Systems Engineer" role. If you are aiming for an embedded software position, you should focus more on software skills in the roadmap. Conversely, if you are interested in an embedded hardware job, you should prioritize hardware skills.
In the embedded industry, all job roles require some soft skills, which cannot be acquired solely through reading or watching videos. Soft skills are developed through communication with others and facing various work challenges. Improving soft skills is not a one-size-fits-all approach. It varies depending on your individual characteristics and involves being aware of your own strengths and weaknesses. Enhancing these skills takes time and effort.
**Remember that the emphasis on software or hardware skills may vary depending on the specific requirements of the company or job position.**
![Embedded Systems Engineering Roadmap](https://github.com/m3y54m/Embedded-Engineering-Roadmap/releases/latest/download/Embedded-Engineering-Roadmap.png)
## Learning Resources
@@ -119,7 +129,7 @@ Additionally, the [Arduino Core](https://github.com/arduino/ArduinoCore-API) tak
_________________
**Note:** It is not necessary to read or watch all of the following materials, but it is important to study enough to have a basic understanding of each topic. Of course, the more you study and practice, the greater your knowledge will become, ultimately enhancing your abilities as an engineer.
**⚠️ 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 the required topics. Of course, the more you study and practice, the more your knowledge will grow. This continuous learning process will gradually improve your skills and make you a better engineer.
Some of the resources mentioned here will just be used as references. Refer to them only when you need them.
@@ -134,7 +144,7 @@ _________________
_________________
### Electronics Fundamentals
### Electronics
#### Basic Math & Calculus
@@ -142,30 +152,35 @@ _________________
- [Calculus For Dummies - Mark Ryan](https://a.co/d/cyvZqE1)
- [💎 Thomas' Calculus](https://a.co/d/gFcCC37)
#### Electrical Circuits Basics
#### Principles of Electric Circuits
- [💎 Electronics Tutorials](https://www.electronics-tutorials.ws)
- [Lessons in Electric Circuits](https://www.allaboutcircuits.com/textbook/)
- [Make: Electronics: Learning by Discovery - Charles Platt](https://a.co/d/fbRoM1R)
- [💎 Fundamentals of Electric Circuits - Charles K. Alexander, Matthew Sadiku](https://www.amazon.com/dp/1260226409?ref_=cm_sw_r_cp_ud_dp_Q11YHXNY2BK530RQZC4S)
- [Principles of Electric Circuits: Conventional Current Version - Thomas L Floyd, David M. Buchla](https://a.co/d/32T2t2X)
#### Electronics Fundamentals
- [Electronic Basics - GreatScott! (YouTube Playlist)](https://youtube.com/playlist?list=PLAROrg3NQn7cyu01HpOv5BWo217XWBZu0)
- [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)
- [💎 Electronic Devices: Conventional Current Version - Thomas Floyd, David Buchla, Steven Wetterling](https://a.co/d/1dsS0vx)
- [Electronics Fundamentals: Circuits, Devices & Applications - Thomas L Floyd, David M. Buchla, Gary D. Snyder](https://a.co/d/4Ye5m8h)
- [Practical Electronics for Inventors - Paul Scherz, Simon Monk](https://a.co/d/1QfSN8j)
- [💎 The Art of Electronics - Paul Horowitz, Winfield Hill](https://artofelectronics.net/)
#### Electronic Components
- [Here’s a Quick Way to Know about Major Electronic Components](https://www.elprocus.com/major-electronic-components/)
- [Encyclopedia of Electronic Components - Charles Platt](https://a.co/d/83cSiU7)
#### Digital Circuits & Logic Design
- [💎 Digital Design - Morris Mano](https://www.portcity.edu.bd/files/636444791235373856_Digitallogicdesign.pdf)
- [FPGA Fundamentals - Nandland](https://nandland.com/fpga-101/)
- [💎 Digital Design - Morris Mano, Michael Ciletti](https://a.co/d/c3tBaoc)
- [Digital Fundamentals - Thomas L. Floyd](https://a.co/d/2lgJKNX)
#### Computer Architecture
- [Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://a.co/d/8YPUXG7)
- [💎 Computer Organization and Design: ARM Edition - David A. Patterson, John L. Hennessy](https://a.co/d/8YPUXG7)
- [💎 Digital Design and Computer Architecture: ARM Edition - Sarah Harris, David Harris](https://a.co/d/4otoVvI)
- [💎 Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb)
- [Digital Design and Computer Architecture: RISC-V Edition - Sarah Harris, David Harris](https://a.co/d/61l7Jtb)
- [Embedded Systems Architecture - Tammy Noergaard](https://www.oreilly.com/library/view/embedded-systems-architecture/9780123821966/)
- [The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780128032787/)
- [The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors - Joseph Yiu](https://www.oreilly.com/library/view/the-definitive-guide/9780124080829/)
@@ -237,6 +252,7 @@ _________________
- [FPGA vs. Microcontroller: How to choose the right one for your project](https://www.youtube.com/watch?v=jblpHUCPQYs)
- [Introduction to FPGA (YouTube Playlist)](https://youtube.com/playlist?list=PLEBQazB0HUyT1WmMONxRZn9NmQ_9CIKhb)
- [FPGA Fundamentals - Nandland](https://nandland.com/fpga-101/)
- [Tiny Tapeout: from idea to chip design in minutes!](https://tinytapeout.com/)
- [Udemy – FPGA Embedded Design, Part 1 - Verilog](https://www.udemy.com/course/fpga-embedded-design-verilog/)
- [Udemy – FPGA Embedded Design, Part 2 - Basic FPGA Training](https://www.udemy.com/course/fpga-embedded-design-fpgas/)
- [Udemy – FPGA Embedded Design, Part 3 - EDA Tools](https://www.udemy.com/course/fpga-embedded-design-eda-tools/)
@@ -249,10 +265,18 @@ _________________
- [What is the software development life cycle?](https://www.coderus.com/the-software-development-lifecycle/)
- [Embedded Product Development Life Cycle: Four Main Steps](https://www.sam-solutions.com/blog/embedded-product-development-life-cycle/)
#### Agile / SCRUM
- [Does agile work with embedded software?](https://www.embedded.com/does-agile-work-with-embedded-software/)
- [Scrum for embedded software: Good – but for reasons other than what your manager thinks](https://www.elektrobit.com/trends/scrum-for-embedded-software/)
- [What Is Scrum: A Guide to the Most Popular Agile Framework](https://www.scrumalliance.org/about-scrum)
- [Jira](https://confluence.atlassian.com/jira)
#### V-Model (V-cycle)
- [What Is the V-Model in Software Development?](https://builtin.com/software-engineering-perspectives/v-model)
- [What Is the V Model and How Can It Improve Your Development?](https://www.indeed.com/career-advice/career-development/v-model)
_________________
@@ -386,6 +410,7 @@ _________________
- [Embedded System Design with ARM Cortex-M Microcontrollers: Applications with C, C++ and MicroPython - Cem Ünsalan, Hüseyin Deniz Gürhan, Mehmet Erkin Yücel](https://link.springer.com/book/10.1007/978-3-030-88439-0)
- [Embedded Systems Design using the MSP430FR2355 LaunchPad - Brock J. LaMeres](https://link.springer.com/book/10.1007/978-3-030-40574-8)
- [Awesome Embedded: A curated list of awesome embedded programming](https://github.com/nhivp/Awesome-Embedded)
- [💎 Building Embedded Systems: Programmable Hardware - Changyi Gu](https://link.springer.com/book/10.1007/978-1-4842-1919-5)
#### GPIO
@@ -465,6 +490,7 @@ _________________
- [Udemy – Functional Safety According to ISO 26262 - Crash Course](https://www.udemy.com/course/iso-26262-crash-course/)
- [A Guide to MISRA C Coding Standards - MISRA C and MISRA C++](https://www.perforce.com/resources/qac/misra-c-cpp)
- [A Firmware Development Standard by Jack Ganssle](http://www.ganssle.com/fsm.htm)
- [Safety-critical Embedded systems: How to prepare for software development](https://www.nagarro.com/en/blog/embedded-software-development-safety-critical-systems)
_________________
@@ -568,6 +594,10 @@ _________________
- [ESP32 Set an Access Point (AP) using ESP-IDF](https://esp32tutorials.com/esp32-access-point-ap-esp-idf/)
- [ESP32 ESP-IDF Connect with WiFi – Station Mode Example](https://esp32tutorials.com/esp32-esp-idf-connect-wifi-station-mode-example/)
##### LoRa
- [#112 LoRa / LoRaWAN De-Mystified / Tutorial](https://www.youtube.com/watch?v=hMOwbNUpDQA)
##### Zigbee
- [What is ZIGBEE And How It Works?](https://www.youtube.com/watch?v=THtVeaxnd9E)
@@ -645,6 +675,7 @@ _________________
- [UDP doesn't suck! It's the BEST L4 protocol for THESE types of applications...](https://www.youtube.com/watch?v=LaDRWycC7Iw)
- [Networking tutorial - Ben Eater (YouTube Playlist)](https://www.youtube.com/playlist?list=PLowKtXNTBypH19whXTVoG3oKSuOcw_XeW)
- [💎 Hands-On Network Programming with C - Lewis Van Winkle](https://www.amazon.com/exec/obidos/ASIN/1789349869/aoeu-20)
- [tcpdump & libpcap libraries](https://www.tcpdump.org/)
- [lwIP - A Lightweight TCP/IP stack](https://savannah.nongnu.org/projects/lwip/)
- [lwIP (ESP-IDF)](https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/lwip.html)
- [Developing applications on STM32Cube with LwIP TCP/IP stack](https://www.st.com/resource/en/user_manual/um1713-developing-applications-on-stm32cube-with-lwip-tcpip-stack-stmicroelectronics.pdf)
@@ -675,6 +706,10 @@ _________________
- [What is a eMMC? Intro, Comparing to Other Storage, and Upgrading. SSD, M.2](https://www.youtube.com/watch?v=vGatKmqYxEA)
#### SD Card
- [Interfacing with an SD Card](https://www.youtube.com/watch?v=g40tUdjZ-Sk)
#### EEPROM
- [Using EEPROM with Arduino - Internal & External](https://www.youtube.com/watch?v=ShqvATqXA7g)
@@ -717,6 +752,7 @@ _________________
#### Operating System Fundamentals
- [Putting the “You” in CPU](https://cpu.land/)
- [💎 Operating Systems: Three Easy Pieces - Remzi H Arpaci-Dusseau, Andrea C Arpaci-Dusseau](https://pages.cs.wisc.edu/~remzi/OSTEP/)
- [Modern Operating Systems - Andrew S. Tanenbaum, Herbert Bos](https://www.pearson.com/en-us/subject-catalog/p/modern-operating-systems/P200000003295)
@@ -925,14 +961,6 @@ _________________
- [Testing: Unit VS Integration VS Regression VS Acceptance](https://medium.com/@touseefmurtaza1993/testing-unit-vs-integration-vs-regression-vs-acceptance-a3e190cc54dd)
- [💎 Test Driven Development for Embedded C - James Grenning](https://www.amazon.com/Driven-Development-Embedded-Pragmatic-Programmers/dp/193435662X)
#### CI/CD Flow
- [Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU)
- [Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics](https://youtu.be/8pyqbYDYkRs)
- [How to Build a Continuous Integration and Delivery Process for Embedded Software](https://medium.com/jumperiot/how-to-build-a-continuous-integration-and-delivery-flow-for-embedded-software-b0b5bf220a2)
- [Continuous Integration & Continuous Delivery for Embedded Systems (Whitepaper)](https://www.parasoft.com/white-paper/ci-cd-for-embedded-systems/)
- [What is DevOps in an Embedded Device Company?](https://www.linkedin.com/pulse/what-devops-embedded-device-company-john-macdonald/)
#### Unit Testing
- [Unit Testing for C (especially Embedded Software)](http://www.throwtheswitch.org/unity)
@@ -946,7 +974,16 @@ _________________
- [Exclave: Hardware Testing in Mass Production, Made Easier](https://www.bunniestudios.com/blog/?p=5450)
- [Regression Testing of Embedded Systems](https://www.parasoft.com/blog/regression-testing-of-embedded-systems/)
#### SiL / HiL Testing
#### CI/CD Pipelines
- [Intro to CI/CD Part 1: Getting Started with Docker | Digi-Key Electronics](https://youtu.be/1nxGcfIm-TU)
- [Intro to CI/CD Part 2: Getting Started with GitHub Actions | Digi-Key Electronics](https://youtu.be/8pyqbYDYkRs)
- [How to Build a Continuous Integration and Delivery Process for Embedded Software](https://medium.com/jumperiot/how-to-build-a-continuous-integration-and-delivery-flow-for-embedded-software-b0b5bf220a2)
- [Continuous Integration & Continuous Delivery for Embedded Systems (Whitepaper)](https://www.parasoft.com/white-paper/ci-cd-for-embedded-systems/)
- [What is DevOps in an Embedded Device Company?](https://www.linkedin.com/pulse/what-devops-embedded-device-company-john-macdonald/)
#### SIL / HIL Testing
- [Embedded CI/CD with HIL Testing (YouTube Playlist)](https://youtube.com/playlist?list=PL4cGeWgaBTe1uwiqIAc6fwPzPpvgPZI2J)