Teaching myself electrical engineering.


I'm a software developer with zero experience in electrical engineering and an Arduino collecting dust. My local colleges to the best of my knowledge do not offer courses in Electrical Engineering.

My first question is, what level of physics knowledge is required to design a moderately complex circuit? And second, what books or materials should I study to prime myself on the properties and interactions of the basic components? i.e. resistors, capacitors, inductors, transistors, diodes, and the like.

I'd also like a higher understanding of boolean algebra (than is generally required for software dev.), and logic design.

Keep in mind I do not have even basic knowledge. How do I start on my own?

Edit: Free materials best materials.

Given you’ve missed the boat with the MITx free online course on basic circuits this year, plunge straight into “The Art of Electronics”, Horowitz & Hill - one of best books out there and gets straight down to business unlike most textbooks.

I think you also should look up Karnaugh maps on wikipedia.

I started a year ago with no experience. Find a simple project and just really put some effort into learning how to do it. If you really care enough about it, the experience will come along with the research. Google and a few forums have been enough for me to be pretty satisfied with where I'm at and very eager to continue learning.

My first question is, what level of physics knowledge is required to design a moderately complex circuit?

I have an electrical engineering degree, and I don't think I learned anything applicable in my physics classes. If you design semiconductors, I think you need some advanced physics & chemistry.

My engineering classes required a lot of math (calculus), but in my job and as a hobbyist, basic algebra is all I ever use. If you have a C.S. degree, you've had plenty of math...

As far as I know, Boolean logic doesn't get that complicated. The equations/operations for PLDs & CPLDs can get rather "involved", but it's the same simple logic with the same operatins over-and-over. One thing that's handy (you may already know this, depending on what kind of programming you do) is to get comfortable with hexadecimal. It's often helpful to know the value of a single bit, and you can easily learn to convert between hex and binary in your head (much easier than decimal-binary conversion). And of course, C/C++ do not directly work with binary (base-2), but they do understand hex (and octal).

I think it depends on what you mean by "moderately complex". Even with an electronics background, it usually requires some research when you start something new. (I assume it's the same with software.) If you were taking engineering in school, you probably wouldn't be programming a microcontroller 'till your 3rd or 4th year... After you've had your classes in all of the basics... DC circuits, AC circuits, digital circuits, semiconductors, analog circuits, etc.

But, as a hobbyist, you can jump-in with just a little knowledge in the area you're working on. I'd say it's a good idea to understand Ohm's law, Kirchhoff's Law, and how power is calculated. You should have a basic understanding of what resistors, capacitors, and inductors do, and if you are going to use transistors, FETs or MOSFETs, you should have an understanding of how they work. Same with op-amps & logic gates... If you are using 'em, you should have an understanding of what they do.

You should also have a multimeter and know how to measure voltage, current, and resistance, and understand the things that can go wrong when making these basic measurements.

MIT Open Course Ware classes are available at any time and you can go at your own pace. I’m about halfway through a programming course and am very happy with it.

Life Hacker collected a bunch of online education resources

+1 MarkT & Art of Electronics

I agree completely with DVDdoug. I’ve been an EE designer for 20 years. Algebra is all that’s needed until you get pretty sophisticated. There have been a couple of times I wished I remembered more from my integral equations class, but algebra and a circuit simulator have always been sufficient. If you really want to go deep into RF or some of the cutting edge areas you might need more math or fundamental science, but not to get started playing with Arduino.

I am in the same situation. I have a CS degree, a worthless scrap of paper these days. We homeschool and I wanted to do something with my son. I did the same thing you are doing. Reading books to find the information. It's of little value compared with just building stuff. One of the books I did read and thought it had some value, but only in the first half of the book was: "Electrical Engineering 101, everything you should have learned in school but probably didn't." By Darren Ashby. Here is an amazon link: http://www.amazon.com/Electrical-Engineering-101-Third-Edition/dp/0123860016/ref=sr_1_1?s=books&ie=UTF8&qid=1336605168&sr=1-1

After you read the first half of that book just start making things. Kits are OK but they don't teach much beyond soldering skills.

Learn about series and parallel circuits with resistors and capacitors. Then checkout youtube for more tutorials then you want to watch. But there are good ones and not so good ones. For fun I watch Dave Jones' EEVBlog on youtube.

After the few actual books you need it's more important to have good equipment. Get a good soldering station. I bought a Hakko fx-888 and I couldn't believe how much easier it was to do good soldering. I also bought an electric skillet to do surface mount work. I mounted some hall effect sensors to breakout boards with it and it worked great. But for fun I bought a hot air rework station for $62 delivered from Ebay. I only just got it and have only used it for heat shrink tube. But Dave Jones did a review of the same model and he likes it. One bit of kit I have that is more fun then useful but it is very useful is an oscilloscope. I bought the Rigol DS1102E for $399. It used to be about $800 but some people figured out how to hack the firmware on Rigols cheap scope. So Rigol cut the price of this one in half. I got mine from http://www.saelig.com.

I have gotten a lot of stuff from BGMicro. They are cheap enough that you can blow up a few items and still be ahead. And don't forget that a lot of companies give out free samples. I asked Maxim for 4 50 watt class D amps and they sent them to me for free and no shipping. If I had bought them from digikey it would have been close to fifty bucks.

So good luck it's not hard you just have to keep at it. If you can write modular software you can make modular circuits. It's the same principle.

joseph_m: I am in the same situation. I have a CS degree, a worthless scrap of paper these days.

I think the $6.8billion (growing to est $25billion in 3 year) mobile app market would disagree that a Computer Science degree is "worthless."


robtillaart: - free books - http://openbookproject.net/electricCircuits/ -

Wow Rob - I had a specific question to look up and found the answer here. So much information. I'll be downloading them all. Thanks for the link, Geoff