For Beginners

New to Building Embedded Systems?

 When we started working with embedded systems, we were overwhelmed by the lack of information available to beginners. We are sharing useful reference materials to get you started with programming and embedded systems development.

We hope this resource serves as a shortcut on your journey.
 
Table of Contents:
 
Programming Languages | Foundational Programming Topics | Getting Started with Embedded
Electrical Engineering | Product Development | Recommended Videos | Career Guidance
Books We Love


Programming Languages

Every programmer needs to be armed with a tool-belt of languages. We think embedded developers should be confident in C, C++, Assembly, and Python.

C

Python

C++

  • A Tour of C++ (2nd ed.) is a great introduction to C++ written by the language’s creator. Recently updated for C++17
  • Effective Modern C++ – Provides tips and strategies for effectively using new C++11 an C++14 features. Definitely worth reading if you are
  • C++ Best Practices – a “Collaborative Collection of C++ Best Practices”. Covers the safety, maintainability, portability, threadability, and performance of C++ code.

Assembly

Back to Top


Foundational Programming Topics

These skills are essential to programming in a professional environment.

Essential Reading

Other Recommended Reading

Open Source Development

Code reviews

Arne Mertz of Simplify C++ published a series on the topic of code reviews. This is a common software development activity, and these articles will help you prepare for reviews like a pro.

  1. Code Reviews – Why?
  2. Code Reviews – What?
  3. Code Reviews – Preparation
  4. Code Reviews – How?
  5. Code Reviews – The Human Aspect

Back to Top


Getting Started with Embedded Systems

As an embedded engineer, you need to be comfortable working at the intersection between hardware and software. These resources will help you develop the fundamental skills needed to build embedded systems.

Firmware

The following resources will help you learn embedded software development techniques:

Blogs & Newsletters

Hardware

Embedded developers will benefit from having experience with electrical engineering and how circuits work. The following resources will help you get started:

Real-Time Operating Systems

References

Back to Top


Electrical Engineering

References, rules of thumb, and other useful resources.

References

Back to Top


Product Development

Resources for those working on the product design and manufacturing

Websites We Like

Helpful Links

  • USB PID Codes – Provides open source hardware projects with an official VID/PID, saving you $5000

Back to Top


Our YouTube channel has a curated set of playlists related to programming and embedded systems. We’ve also saved high quality lectures and playlists from other channels on YouTube.

On Embedded

Embedded Systems Playlist
These are lectures and other short videos from an Embedded Systems Course. Lectures by James M. Conrad at the University of North Carolina at Charlotte.
RTOS Playlist
Miro Samek’s Modern Embedded Systems Programming Course

On Hardware

Product Development
Manufacturing

On Programming

General Programming
Multi-threaded Programming
C++

Back to Top


Career Guidance

The following resources will build a solid foundation for your career. Keeping your career on track is just as important as improving your engineering abilities. If you only read one item from the links below, we think the most important is The Unwritten Laws of Engineering

Back to Top


Books We Love

The following books were mentioned throughout this page. By purchasing books using our Amazon affiliate links, you enable us to continue supporting the embedded community.


The Art of Electronics

By Paul Horowitz, Winfield Hill
 
 

The Digital I/O Handbook

By Jonathan A. Titus, Thomas B. O’Hanlan
 
 
 

Microelectronic Circuit Design

By Richard Jaeger, Travis Blalock
 
 
 
 
 
 
 
 

Back to Top