Learning Electronics


This guide is largely just lessons learned in my fumbling, fits-and-starts journey from being a purely software hacker to developing hardware products. As I have no formal training in anything, and no comp-sci or electrical engineering education, this guide may be sub-optimal. Reader beware. Hopefully it helps you get started faster than I did.

Although the goal may be to build your own firmware and load it into an MCU at the heart of a custom PCB with your specified components and sensors, it is sometimes easier to make baby steps than jump right in. In my experience, the (non-trivial) learning curve can be converted from analog to digital steps. That concept will come up again...

Digital Learning Curve

Level 0

This guide assumes a starting point as something akin to a junior applications developer, who can code in python and work in a unix-like operating system (linux), and can do basic things like install Raspbian OS on a Raspberry Pi.

Level 1

The easiest first step is to start with a Raspberry Pi, your laptop or workstation, a breadboard, and some very simple components. Being able to interface with peripherals from standard python on a Raspberry Pi, via a breadboard, is the objective here. There are two and half core concepts to grok: GPIO reading and writing, serial (UART) communications, and the half-realization that much of it is simpler than you likely imagined.

I put together a basic shopping list that you can use. I make no "affiliate" money from this, so feel free to order elsewhere. I tend to use Adafruit products as their documentation and supporting libraries are really great but they are assholes about shipping. Sparkfun is my other go-to as they also have really great documentation and are actually good to order from directly. But you will ultimately want to have an account with Mouser (my favorite) and/or Digikey and/or Arrow as you start building more.     Get started!

Level 2


Level 3


Level 4 and beyond