New to programming or embedded systems? 

When I started working with embedded systems, I was overwhelmed by the lack of information available to beginners. I am sharing useful reference materials to get you started with programming and embedded systems development. I wish I had this type of resource when I was starting out - I hope it serves as a shortcut on your journey.

Programming Languages | Foundational Topics | Getting Started with Embedded
Managing Your Career | 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

Foundational Topics

The following resources will build a solid foundation for your software development career.

Essential Reading

Open Source Development

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.

 

HARDWARE

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

 

 

Firmware

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

Managing Your Career

 
Keeping your career on track is just as important as improving your programming chops. If you only read one item from the links below, we think the most important is The Unwritten Laws of Engineering
 

Career Guidance

Working at a Startup

 

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
 
 

Books We Love

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