It's the question I see most in relation to Arduino: "How do I get into it?"
Which of the many routes you take when diving into Arduino for the first time depends on a few different aspects, but today I'll share a very open set of routes I've seen hobbyists and professionals take. I stopped at Arduino and did not include electronics as a whole, as I feel that adds levels of complexity to the topic. Arduino is just one way of getting into electronics.
I’m sure many of you have answered this question; I’m almost equally sure the answer is different from person to person. This could be based on how you learned or how you best learn – what works for some may frustrate others. There are also variables such as affordability and accessibility to consider. After talking with some people who learned Arduino outside of a traditional education setting, I came up with a few specific routes that should hopefully function as a starting point.
Why do you want to learn?
This is the first thing you’ll hear (okay, maybe a “cool” first) when you ask me about learning Arduino, as it’s one of the most important details when it comes to choosing which route might work best for you. We can group most of the reasons into two camps: “I want to build ____,” or “I want to learn Arduino as a skill,” There’s definitely some overlap in there that we can get into later as well, but most of what we will cover will talk about both.
Building something might be replicating something you saw online, coming up with something that will make your life easier, or putting together a prototype of a product idea you have. Learning Arduino as a skill could be just that, or finding out what all the hype is about, or even picking up a skill for future employment opportunities. Keeping your goal in mind (also having one) when choosing your route is the best way to stay motivated during the learning process.
What’s your budget?
To some, kits and such are not that big of an expenditure, but for others it definitely could be. From my point of view, with increased cost comes increased direction. You’re definitely able to get the same value elsewhere, thanks to the huge amount of documentation people have provided in their projects online, but if your budget permits, a kit with documentation provides very focused direction and can be a big time saver as well.
So with these things to consider, here are the routes you might take:
Since you’re learning at a hobbyist level, I took traditional education out of the equation, but there are plenty of online classes (some free) and YouTube tutorials that provide guidance very close to that of a classroom setting. If you do your best learning when guided by an instructor, this might be the way to go. YouTube videos are a pretty good way of limiting your costs early – watching some might give you insight into what you would be getting into and whether it’s really for you. My biggest piece of advice with this route is to stick to classes and videos that list out the materials needed before hand. Having to buy as you go could definitely be a frustrating exercise, especially if your budget is limited.
It’s not accessible for everyone, but I’ve also seen classes pop up at local libraries, community centers and hackerspaces. It’s definitely worth a little research before you dive into learning on your own, as these can be great, one-day primers for getting started.
One thing discussed here long ago that always stuck with me was “knowing what you don’t know” and “not knowing what you don’t know.” For some folks, getting into Arduino means getting into electronics. It took me a pretty long time to figure what a servo was and how it was different than a typical hobby motor. If you have the budget and you’re looking to learn for the purpose of adding a skill, getting started/inventor kits are the way to go. They give you a good sampling of the basic things you can do with an Arduino, which might include providing direction on future products that you can go back and reference.
As mentioned, the more expensive ones often come with directions and documentation, which can cut down on rabbit holes or spending hours trying to figure something out on your own. Another positive is that most projects utilize temporary connections (think breadboards and jumper wires), so there’s always the possibility of resale once you’re done with the kit, although most people make good use of kits’ contents in future projects.
This is one of the toughest ways to go about learning Arduino. That said, if your project motivates you enough, it can be the easiest to keep up with. If you have a solid knowledge of electronics to start with, this might be the way for you.
The method is simple: Come up with a project you want to make, and learn about interacting with the parts you need for it with Arduino as you go. It’s definitely one of the more cost-effective ways to go about learning Arduino, but it can be incredibly time consuming and is filled with the potential for getting derailed or hitting frustrating dead ends.
That being said, I’ve seen incredible projects made using Arduino by determined makers looking to accomplish their goal. Of the methods listed, this one definitely takes the most effort on your part. My biggest recommendation is to not go too cheap on components – use parts and components that you can easily find documentation on and come from a quality supplier.
These are obviously not the only ways to get into Arduino, and there are plenty of variations on these methods, but they're the ones I’ve seen the most success from. As for the experts, I’m really interested in how you got into Arduino and would love to hear the path you had taken. What did you like about it? What was frustrating? What you might recommend yourselves?
That sort of speaks to one of my "pet peeves" about the Arduino IDE: It's missing the ability to set breakpoints, single-steps, and/or watch variables. This has been a feature of "'real' tool chains" since at least the late 1970s. Yeah, it's easier to incorporate if the target hardware has certain features, but it is possible to do it entirely in software, although sometimes it feels like it's "taking forever" when you use it. Breakpoints/single-steps/watches can be incredibly useful for the newbie in understanding what's going on!
For the beginner, I heartily endorse the idea of taking a class, if at all possible. (Many Maker Spaces offer them either for free or for a very nominal fee to help cover the expenses.). Generally, who ever is giving the class provides the hardware for you to use during the class. (Some ask that you bring your own laptop computer.) However, it's definitely possible to learn it on your own.
To do anything, even if your interest is more to learn electronics via the Arduino, you'll sort of need to have one. If the cost of a "true" Arduino is a bit steep, consider getting something like a SparkFun RedBoard or an Adafruit METRO. Just be sure to order one with the headers already installed -- some do come without the headers so that folks who have good soldering skills can save a bit more.
"Learning Arduino as a skill could be just that, or finding out what all the hype is about, or even picking up a skill for future employment opportunities"
When we were interviewing techs, never asked about arduino, but did ask about microprocessor troubleshooting experience. While those having ardy as their sole embedded systems experience were worthy of consideration, but the nod went to two people whom knew about 'real' tool chains.
That said, am aware of commercial-grade stuff that has used the ardy system, but these tend to be based on the better hardware and libs such as PJRC and their Teensy stuff.