20 Nov 2025
Over the past few years I’ve finally learned how to build hardware and electronics projects in earnest, and am having fun doing so—after too many years of frustration and struggles in getting started even learning how to learn those skills. Here are some thoughts around what I’ve learned from this journey. They were initially written in response to a peer’s query, and are only lightly edited from that initial brain dump. I may turn them into a cleaner narrative in the future, I may not! Something something better a scrappy post than no post? ¯\_(ツ)_/¯
The initial writing of this list was time-boxed; I have a lot of additional thoughts and caveats for basically every single point here, but I am not allowing myself to add them or I’d never be able to hit publish and move on to something else. If you, fair reader, have a question about any specific point, ask and I’ll elucidate!
Before getting into hardware, I had a basic software engineering skill set, general interest in wanting to understand ✨ anything ✨ about building my own hardware projects, and lots of frustration around not knowing how to scale my ambitions to a learning process that would actually help me…learn.
Hardware is a weird beast, if you’re mostly used to software—the debugging process is similar in approach but wildly different in terms of implementation/predictability.
More on this some other time, perhaps, but unlike software, you can’t save some functional state and just jump back to it at any moment….you have to wire stuff, and sometimes (often 🙃) it is those literal wired connections that are failing—for a variety of reasons that may be straight-forward but take time to internalize.1
My intuition around what will take the most time in a hardware project has been WILDLY off. I am still figuring out how to calibrate my expectations.
There are lots of ways to connect components to microcontrollers: breadboards, soldering to wires, soldering to prototyping boards, designing a custom PCB. Each is fiddly in its own way. That’s okay! Recognize that most tutorials will gloss right over the “connect components to microcontroller” part, and so you’ll need to get comfortable planning extra time for it until you’re practiced in whichever approaches you prefer. Currently, I use breadboards and then solder to prototyping boards.
I’ve found it REALLY helpful to take careful notes while I’m doing anything with electronics—because then I don’t have to start from scratch the next time I want to do something similar—in 6 days, 6 months, whatever—and also because it helps me figure out how to explain to someone else what I’ve done when I’m asking them for help. Yes, this can be true for software work, but it has been extra important for hardware projects.
I’ve had good luck live-blogging my experience in RC’s Zulip. This has been helpful for things like “solidarity” and “motivation”, but also for actual problem solving. Selfishly, I love it when other people live-blog their experiences as well. If you need a tiny reason to push you towards learning generously by writing your notes “publicly”—in a blog, in the RC Zulip, etc—instead of in a private doc, feel free to use “Hannah will probably read it and feel happy”!
Disclaimer: the following is primarily geared towards learning to make projects like the ones I like, namely, some amount of hardware, some amount of software, probably some doofy un-serious end-goal. If you want to learn low-level electronic circuit stuff, the following may not be quite what you want.
For getting started, growing your skillset, and really learning, it’s Adafruit all the way down.
Start in the learning/tutorial section of the Adafruit website and search for things you find interesting: music, sports, wearables, gaming, whatever. Click on any project that even slightly catches your eye, skim the first page of its write-up. If you don’t understand most of what’s being discussed, that’s okay. Skim it anyway, then move on and skim another project. By the time you’ve skimmed a handful of projects, you’ll start recognizing terms that show up regularly. Look those up, write down what they mean in that “scratch notes” document you’re keeping. We’re going for osmosis here, not total comprehension.
Squint at these projects through a lens of how they can be adapted to things you are curious about. At the time I’m writing this list, there’s a bunch of halloween stuff. I have no interest in making spooky props…but I would actually like to learn how to control large outdoor displays, so this tutorial on “Make your Holiday Display Move” is still interesting to me. Skim it!
Pick one Adafruit microcontroller board to play with. Anything you learn on one of these boards WILL be transferable to any other Adafruit board…and then, likely, to other types of microcontrollers.
The Adafruit Feathers are great, although you’ll need to purchase sensors and inputs separately, and you’ll probably need to do some soldering. This is the flavor of board I first got comfortable with, and I really really like it.
The Circuit Playground Express is also great, both because Adafruit (and the internet at large) has a lot of good documentation on how to hook it up to different types of sensors (digital! analog! button! temperature! etc), and because it has various capabilities built in so you can get a feel for working with those inputs/outputs in code without having to first wire them up. Also, you can use alligator clips to connect components to them, rather than needing to solder, if you aren’t ready to take on soldering as a skill.5
The “hello-world” of hardware is “make light blink”.
Add skills one at a time, and don’t try to do it all at once—unless you are following a well-written tutorial that includes all the steps.
In general, I’ve intentionally attempted no more than ~1 new hardware component type per project, especially if I’m using a board that I haven’t tried before. This “slow” build has really helped me gain confidence in learning how to learn about each new board, each new component, and each new software library for interfacing with the components.
Learning how to work with each of the following hardware components, in roughly this order, has helped unlock a world confidence and competence both:
Digital inputs, e.g., buttons—toggle buttons, momentary buttons, etc.
Digital outputs, e.g., an LED: from code, turn light on! Turn light off! Etc.
Analog inputs, e.g., potentiometers—which can take the form of knobs or sliders or touch sensors, or any number of other sensors, like temperature or humidity or…. Go to Adafruit and search “potentiometer”!
Neopixels! Turn lights on, make lights turn colors. This is my latest component skill, I am very pleased about it.
I have not yet tackled batteries! Or relays, or motors, or sound, or a whole bunch of other stuff that is on my list. One thing at a time!
Similarly, it has been useful to intentionally and slowly build on software concepts for interacting with the components. I followed an Adafruit tutorial to use an Adafruit Feather as a bluetooth keyboard/mouse, and it has unlocked a huge amount of project potential and gotten a lot of use for various projects.6 Once you can connect your board to your computer as a “generic input” then you can use any sort of sensor to trigger any sort of on-computer task you want.
Browse the Adafruit store, especially the components section, and pick one thing that looks REALLY FUN to you. Then figure out how to do the most basic thing with it! They’ll often link to a tutorial page from a product page.
If you are ordering parts for a specific project? Add on one or two cheap fun-looking components, just for the fun of it. They’ll become inspiration for a future project—ou never know when you’ll find a use for that satisfyingly clicky toggle button!7
Even if you are working through this slow-ish and steady-ish regimen for projects you design yourself, you can still tackle larger kits that involve More Stuff™ all at once; I’ve found that those help practice similar critical thinking skills, even though I don’t necessarily learn transferable hardware skills from them.
E.g., I assembled a kit for a pen plotter, which was really fun; even though it involved servos and motors, though, I don’t feel like I understand how to fit those into my own projects, because I didn’t actually think through how to assemble them: I just followed the instructions for how to connect them to other pre-programmed parts.
There are a bunch of cool kits out there; if these are your speed, great. I find them really cool, and love the meditative aspect of soldering stuff together. I have found them to be a fun activity but not necessarily a great learning tool for me. Still, the fun is the point, and getting practice handling components and doing soldering is still worthwhile, so I’d recommend ’em if you’re even remotely interested.
Playing with electronics and building hardware projects is so fun. I highly recommend it!!
Understanding how hardware projects are constructed is satisfying, even if you aren’t making them yourself.
Soldering is really fun!
Knowing what microcontroller to use can feel overwhelming. If you get yourself comfortable with just a single board—e.g., one of those Adafruit ones—this will start feeling less overwhelming.
Even “basic” stuff—one button, etc—is satisfying to build and play with. Monkey brain loves hitting button!! Button make light go!
Once you start to get the hang of it, you’ll feel seriously empowered. For example, here’s a relatively basic project I was able to throw together recently, which I would not have been able to do easily even a year ago: Button-box timer.
In my experience, some combination of the microcontrollers themselves, the programming environments created for them, and the documentation for both have gotten way better over time. If you attempted electronics previously and gave up in frustration, it’s worth trying again today: there’s a lot more (and a lot better) documentation out there now than there used to be.
There is so much documentation out there for “getting started with hardware” / “learning to do electronics”, etc, and it can be intimidating—not least of which because there are some pretty big leaps in assumption about what a “beginner” already knows. This post included! Don’t let this discourage you. :)
Thanks to AV for the prompt and the “post-it-as-it-is” encouragement, DL for the “lists are great” encouragement, AF for being my electronics safety-net along the way, and Adafruit for building out a phenomenal non-gimmicky ecosystem that works.