Self-Teaching Path

Hello everyone!

In the last year, I've been absolutely captivated by the Arduino. Working with it, C++, C, Python, and other programming experiences has motivated me to seek education as an electrical engineer. I'm on the beginning end of my education (I have 30 credits, but because of the engineering program requirements I will have to enter as a freshman), so I felt that I should teach myself as much as possible so that I can get into a paid internship earlier than usual.

In that regard, the best way to show credentials without a degree seems to be Github projects, but I know I don't know enough to contribute to either the Raspberry Pi or Arduino Githubs yet.

What would be the best path to educate myself to be ready to contribute to these? The obvious path is, of course, to study digital logic, programming, and Linux, and of course building my own projects using both platforms. What else should I keep in mind and does anyone know some good resources that might help in this endeavor? I subscribe to Hackerbox at the moment, but I'm sure there's always more I can do to deepen my expertise.

Where are you thinking of going to school? "Electrical Engineering" varies quite a bit between different schools, sometimes for historical reasons like whether "Computer Stuff" arose out of the Math department or the Physics department etc.

Also, (Editorial ON) most of the really interesting projects and job are Multidisciplinary. I think you also need some significant background in

  • Computer Science (AKA "Data Structures", "Algorithm Development" and stuff like that)
  • Mechanical Engineering AKA "Mechatronics" and Motion Control
  • Electronics Construction Technology AKA "Circuit board design", "Enclosures", "Power/Heat dissipation", etc.

A good overview of "Mechatronics" is HERE.

And Projects, Projects, Projects .. not just what is assigned. Looking for a job you will be asked "What have you done? Show us!". Hands-On constantly. I make kits that are used by many hundreds of students in Universities and I'm so glad that hands-on is now happening at most schools.

Code is important because processing information is important. BUT in most sophisticated and powerful systems, "It's About The DATA". So get SQL in there somewhere!

Ask questions of a few professors at any school you are considering. Ask their perspective on the Multidisciplinary Thing.

You have the right idea in what you have said about connecting to and contributing to online communities. Push That!

Let us know what you do and how you decided; these questions are important for many people looking to learn more.

Thanks for responding!

The school I'm looking at right now is CSU, but if I'm not accepted, I'll look at either CU or BYU-Idaho.

The degree I was planning on was computer science at first, but a fascination with circuits and Arduino convinced me to switch over to computer engineering. CSU's Electrical and Computer Engineering Department, as you might guess from the name, has computer engineering and electrical engineering as very similar degrees; the main difference is that computer engineering just doesn't have as many technical electives because most of them are invested in computer science courses. However, because their electrical engineering degree is structured a little differently, I can get the same degree and I just might be able to get it in less time, thanks to the classes I've already taken at community college.

I might still have it in the same time, though. One thing I do like about the EE degree, though, is that it requires Unix and C courses instead of Java courses. It's a little confusing to me that a computer engineering course would ask me to study Java when C dominates the microprocessor and firmware world, but they told me it's something they're talking about changing anyhow.

Thanks for the direction! I'm actually working on studying algorithms and data structures right now with Coursera, but I realized that I'm going to need to figure out Discrete Mathematics before I can really sink my teeth into the proofs they discuss, so I'm using the Discrete Mathematics course from Lynda before I return to the algorithm course.

Thanks for mentioning SQL, too! I've played with it a little, but had no idea that it would be important in embedded systems.

I'll give status updates as I advance. For the time being, when I'm not busy with school (which, for now, is just English and Physics, with Calc III being tossed on top next semester), I work on Hackerbox projects, study Discrete Math, Algorithms, and Data Structures, and build any other little projects that seem interesting to me. My next goal is to finally build a little rover with a SONAR rangefinder that I ordered the kit for months ago.

I want to add contributing to open-source, I just don't really know how right now. All of the code I've looked at thus far has been mind-bogglingly complex compared to what I've worked on in the past.

When I make any career advancements, I'll make a new post with the path I've taken and the important steps I took.

Kirk, you might look into more applied fields as well if you are interested in working with larger-scale stuff. I'm in Energy Management Technology with Building Controls as a focus, and it involves a lot of troubleshooting and/or designing lighting and HVAC systems, as well as using direct digital controls and lots and lots of sensors internally and externally in a structure, to make sure that all of the building's systems including boilers, chillers, intake and exhaust fans, solar power, etc, adjust on the fly - ultimately to reduce energy consumption and costs for the client.

I got into Arduino because I'm trying to fill up my schedule since I have all the computer-related classes down pat, and figured that knowing more about electronics and programming them would be valuable as I move forward.