Atomic Object is unique because we offer embedded development in addition to the more common web, mobile, and desktop. We have observed that finding passionate people who are pursuing embedded development careers is a lot more difficult than other positions. Why is that? There are probably several reasons but I think the biggest one is that many young people simply don’t know what embedded development involves or how exciting it can be.
## Learning How Things Work at a Very Low Level
As a young kid, I was always intrigued by electronics. I found them mysterious, exciting, and almost magical. I used to take apart my remote control cars and look at all the parts and components and wonder what they all did. Sometimes I would put them back together!
Fast-forward 15 years and now, I can look at a circuit board and actually understand what all the various components do. I know how computer can tell the difference between a USB mouse and keyboard. I know how the wrist-band you’re wearing is able to tell how well you slept and how far you walk. I know how your smartphone is able to close your garage door, lock the dead-bolt, and turn off your porch lights while you’re laying in bed. And the coolest part is, I can help make these things possible!
In the world of software development, embedded is about as close to the hardware as you can get. That means the code you write interacts directly with the components that are on the circuit board. Without embedded applications, most circuits are just funky-looking, expensive paper weights.
## Masters of Communication
You may not think of embedded developers of masters of communication, but that is exactly what we are. Of course, I’m not talking about making small talk at a cocktail party. I’m talking about digital communication — ones and zeros, data lines and clock signals, message queues and semaphores — the building blocks that make your favorite electronic devices possible.
A very high percentage of the work embedded developers do is making things talk to each other. Typically a circuit board will have a main microcontroller that runs the application. That micro is responsible for “talking” to many of the other components on the board and either collecting information from them, or passing information to them. The catch is, that don’t often speak the same “language.” It is up to embedded developers to get that communication up and running.
## But What About those Horrible Datasheets?
Occasionally, one of my friends will see me pouring over a datasheet for a component and say, “Ugh! Don’t you hate reading those things?” In truth, I don’t hate it at all. Reading a datasheet is like solving a puzzle. I am given a tiny, lifeless spec on a circuit and I have to figure out make it do things. One of my favorite parts of a project is the day I receive the Bill of Materials.
Now, I must be honest, datasheets and reference manuals have caused me a fair share of grief and frustration. But, no matter what area of software development you get into, you will without a doubt be required to read documentation from many different sources.
## How to Get Started in Embedded
Hopefully, I’ve got you convinced that a career in embedded development can be a lot of fun! You might now be wondering what steps you should take to land a job doing embedded development. Here are some possible options:
- EE Major with a CS Minor
A bachelors degree in Electrical Engineer will give you a great foundation of electronics understanding. This is very helpful for debugging problems on circuit boards. It also gives you the option to do hardware design if you are interested in that. A Computer Science minor would give you enough programming knowledge to get you started, and self-study can take you the rest of the way.
- CS Major with Self-study in Electronics
A bachelors degree in Computer Science is also a very good option. You will leave with much more knowledge of software development concepts and practices as a CS major. It might be difficult to get a minor in Electrical Engineering, but you could certainly take a few electronics courses to get an introduction to the basics. Also, just reading books and studying electronics on your own can be very helpful.
There are a ton of resources available to people of all ages who are interested in getting into embedded development, hardware development, and making. Get out there and start tinkering. Find a project to work on just for fun, and see what you can make. Here is a short list of some of my favorite sites:
- Sparkfun.com – Great tutorials. Lot’s of breakout boards and just about every sensor you could want.
- Adafruit.com – Very similar to Sparkfun but also has a really good blog with lot’s of interesting projects detailed.
- Pololu.com – If you’re interested in robot building, this is the place to go.
- OSHPark.com – OSH Park my favorite PCB manufacturing company. Just upload your Eagle board file and they’ll do all the rest. They have fantastic customer support and for prototyping their prices are excellent.
- Tindie.com – Hobbyist market place for buying and selling all kinds of great gadgets.