Best way to self-teach Electrical Engineering and Embedded Systems?

In summary, I am trying to learn electrical engineering, embedded Linux and AVR/ARM in order to make a career change into embedded systems development. I have a plan but I honestly have no idea if its a good one. I have been into computers my whole life (currently 26y/o) but never actually worked in any IT positions. Other than an AA degree in computer science in 2013, I have been a welder since I was 18, but I am looking to make a career change into embedded systems. My main goal has always been to make hardware, gadgets and gizmos related to motorsports (cars, motorcycles, etc), so just knowing what kind of things I want the embedded system
  • #1
wyattmarshall
1
3
Summary: Trying to self-teach Electrical Engineering, Embedded Linux and AVR/ARM to make a career change into embedded systems development and I need suggestions on the best way to do that. I have a plan but I honestly have no idea if its a good one.

I have been into computers my whole life (currently 26y/o) but never actually worked in any IT positions. Other than an AA degree in computer science in 2013, I have been a welder since I was 18, but I am looking to make a career change into embedded systems.

My main goal has always been to make hardware, gadgets and gizmos related to motorsports (cars, motorcycles, etc), so just knowing what kind of things I want the embedded system to do, I have determined a starting place is learning: AVR/ARM, Embedded Linux, and EE (currently learning math/trigonometry to get to EE).

My current reading list is:
"Plane Geometry" by Loney
"The Linux Command Line" by Schotts
"Programming in C" by Kochan (more a refresher, as I used to be halfway decent in C++. and PHP is similar)
"Fundamentals of Electric Circuits" by Alexander + Sadiku
"How Linux Works" by Ward
"The Linux Programming Interface" by Kerrisk
"the Definitive Guide to Cortex-m4/m3" by Yiu
"Linux From Scratch"
"Feynman Lectures" (The parts on electricity for this topic and the rest for other mechanical things I want to do).

AVR wise, I read "Make: Programming AVR", which I found barely useful and ended up just attempting to read the datasheet to figure it out. So far the AVR isn't too bad, I am fairly comfortable with some basic programs but I got stuck at PWM for a servo (mainly because I had no idea if it was working and needed to get an oscilloscope to figure that part out, I got one but haven't continued as I have been busy with math).

For ARM, I got the Microchip SAME54 dev board. I made it about 5 mins into Microtech's education video series on that board and thought I should perfect AVR first because it seems like without a good base understanding all the ARM syntax could be extremely confusing. So i put this on pause until I get a better handle on EE and AVR.

For Embedded Linux, a company I interviewed with used Buildroot, (which I haven't tinkered with at all). I decided to try Linux From Scratch hoping that would help to build a solid foundation before jumping to a tool like Buildroot or Yocto. And getting stuck very quickly in LFS, that prompted this post.

For EE I am reading "Fundamentals of Electric Circuits" by Alexander + Sadiku. But within the first chapter I realized I need Calculus to even begin to understand so I already re-learned Algebra and am now reading "Plane Geometry" by Loney for Trigonometry before moving to calc.

Basically, at this point, I am finding that to learn what I want, I must first figure out all sort of prior information and I just need some guidance to know if I'm even headed in the right direction before reading another 500+ page book that may or may not even be relavent to what I am trying to accomplish. Obviously, there is no such thing as "learning too much" but I would like to balance learning and doing, to apply the skills and chip away at the larger goals at a decent pace and then come back and fill in more detail later. Basically solving problems with large strokes and then go back and rebuilding solutions with more detail and more refinement.
 
  • Like
Likes WWGD, yucheng and Delta2
Physics news on Phys.org
  • #2
Unfortunately, the only thing I can suggest is to get a copy of the syllabus for an EE degree.

There are probably others here (several current and previous instructors) that can supply better details.

(Now you know why a degree takes 4+ years! :biggrin: )
 
  • Like
Likes CalcNerd and berkeman
  • #3
While you may find the Feynman Lectures interesting, they have essentially zero value for your career path.
 
  • Like
  • Wow
Likes CalcNerd, berkeman, Vanadium 50 and 1 other person
  • #4
Cant give you any specific advice for your goal, but seems to me your goal is very very hard, that is to become a totally self taught EE/programmer. It is not impossible, you can make it but its going to be very hard. That's all I can say.
 
  • Like
Likes CalcNerd
  • #5
Maybe you can look up certification books/sites for EE? Maybe you can email some profs at Community Colleges ( usually not as busy as those in Universities; those on the research and perish track) and politely ask them for refs in this regard.
 
  • #6
You don't say what country you are in, but in many you can't just hang out a shingle and call yourself an engineer. "But I'm self-taught" will not change much.
 
  • #7
Vanadium 50 said:
You don't say what country you are in, but in many you can't just hang out a shingle and call yourself an engineer. "But I'm self-taught" will not change much.
Maybe a cert exam may be better than nothing.
 
  • #8
In the US at least you can't take a "cert exam" and declare yourself an engineer.
 
  • #9
I think the OP doesn't care much about the professional recognition . All he wants is to learn all the things that an EE/Programmer knows and to be able to make all those tech things.
 
  • #10
Then you can just do the best that's available to you and keep trying. He's 26, so he may find a way. edit: he may intern in IT, cause a good impression and then have his employer agree to pay for his degree. He may then get equivalences for his exams, i.e., be given credit for passing his exams.
 
  • #11
Welcome to PF. :smile:

wyattmarshall said:
Trying to self-teach Electrical Engineering, Embedded Linux and AVR/ARM to make a career change into embedded systems development
Self-learning a programming language is orders of magnitude easier that trying to self-teach an EE degree level of knowledge, IMO. A full EE degree involves in-depth learning about Physics, Math, General Engineering, Circuits, E&M, Solid State Physics, and a bunch more stuff. Plus the labs in Physics and Circuits, and learning to use the instrumentation involved in both.

There are still some challenges to learning programming on your own, since you might skip topics like Data Structures, Compilers, and other important fundamentals that are important for you to be a good programmer. But it is much more practical to learn a new programming platform and microcontroller architecture on your own, IMO, and to do some very interesting and challenging projects that you can show to potential employers to prove that you are a good candidate for their job opening.

wyattmarshall said:
My main goal has always been to make hardware, gadgets and gizmos related to motorsports (cars, motorcycles, etc), so just knowing what kind of things I want the embedded system to do, I have determined a starting place is learning: AVR/ARM, Embedded Linux, and EE (currently learning math/trigonometry to get to EE).
If you are just learning trig now, you are at least a decade of full-time schoolwork away from an equivalent of an EE degree, IMO. I think you should focus your efforts better on what you can accomplish in the next couple of years. You definitely should keep learning math as a priority, since it helps your programming skills and basic electronic technician skills, which sound like they may be your best bet in the near term for getting into an embedded systems development job .

wyattmarshall said:
So far the AVR isn't too bad, I am fairly comfortable with some basic programs but I got stuck at PWM for a servo (mainly because I had no idea if it was working and needed to get an oscilloscope to figure that part out, I got one but haven't continued as I have been busy with math).
So this is a good illustration of a place where you will need some stronger math skills if you want to be designing feedback systems as part of your job description. Designing feedback and control systems involves a fair amount of semi-advanced math (at least to do it well), so I think for now you should leave that part of the design to the EEs. But given specs from the EEs, you should be able to use your programming skills and basic electronics knowledge to implement their designs.

wyattmarshall said:
For EE I am reading "Fundamentals of Electric Circuits" by Alexander + Sadiku. But within the first chapter I realized I need Calculus to even begin to understand so I already re-learned Algebra and am now reading "Plane Geometry" by Loney for Trigonometry before moving to calc.
Yes, you need calculus for most EE subjects. But not necessarily for electronics at the technician level.

wyattmarshall said:
Basically, at this point, I am finding that to learn what I want, I must first figure out all sort of prior information and I just need some guidance to know if I'm even headed in the right direction before reading another 500+ page book that may or may not even be relavent to what I am trying to accomplish. Obviously, there is no such thing as "learning too much"
But there is definitely such a thing as "trying to learn too much". Especially if all of that extra learning is not realistic to complete on your own in any reasonable amount of time.

wyattmarshall said:
I would like to balance learning and doing, to apply the skills and chip away at the larger goals at a decent pace
Yes, it is very important to mix the book learning with labs/experiments/projects, in EE and electronics as well as in general Physics learning, etc. I did many personal projects on my own in my undergrad EE years, and they helped me learn to "ask the right questions" in my classes.

For example, one of my personal projects was to make a 2-axis mechanical mirror driver to tilt a mirror using speaker coil drivers to deflect a HeNe laser to draw figures on a wall. I quickly learned that my knowledge of audio power amplifiers and coil drive circuits and even mechanical construction of low-mass driven structures was not so great. But by building each prototype stage of that project with improvements for each new try, I learned a lot about all of those topics. The final product was more bandwidth limited than I wanted, but it was still fun at parties in the dorm. :smile:

So I guess my advice at this point would be:

** Don't make it a goal to self-learn a full EE degree. That is unrealistic, IMO.

** Do make it a goal to learn the appropriate programming languages and platforms, and build some personal projects to get more familiar with those development environments.

** Do find some resources to help you learn basic electronics at the technician level so you can understand schematics and help with building and reworking circuits. You can look at your local community college for electronics technician type classes to help that along.

** Do start to get practiced and comfortable with using revision control tools like Bitbucket to manage your code iterations and versions. Pretty much any job you get in the industry will use one of the version control systems, so you will stand out as a candidate if you already are using one on your own for your personal projects.

Good luck! Work hard and enjoy the ride. :smile:
 
Last edited:
  • Like
  • Informative
Likes CalcNerd, Vanadium 50, BvU and 3 others

FAQ: Best way to self-teach Electrical Engineering and Embedded Systems?

What resources should I use to self-teach Electrical Engineering and Embedded Systems?

The best resources for self-teaching Electrical Engineering and Embedded Systems are online courses, textbooks, and practical projects. Online courses, such as those offered by Coursera or Udemy, provide structured lessons and assignments. Textbooks offer in-depth explanations and examples, while practical projects allow for hands-on learning.

How much time should I dedicate to self-teaching Electrical Engineering and Embedded Systems?

The amount of time needed to self-teach Electrical Engineering and Embedded Systems varies for each individual. However, it is recommended to dedicate at least 10-15 hours per week for consistent and effective learning. You may need to adjust this depending on your prior knowledge and learning speed.

Can I self-teach Electrical Engineering and Embedded Systems without any prior knowledge?

While having some background knowledge in math and physics can be beneficial, it is not necessary to have prior knowledge in order to self-teach Electrical Engineering and Embedded Systems. As long as you are dedicated and willing to put in the time and effort, you can learn these subjects on your own.

How can I ensure that I am understanding the material correctly while self-teaching Electrical Engineering and Embedded Systems?

One way to ensure understanding is to regularly test yourself through practice problems and quizzes. You can also join online communities or forums where you can ask questions and receive feedback from others. Additionally, seeking out a mentor or tutor can also be helpful in clarifying any difficult concepts.

Are there any specific skills or knowledge that I should have before attempting to self-teach Electrical Engineering and Embedded Systems?

Having a strong foundation in math and physics is helpful, as these subjects are the basis of Electrical Engineering and Embedded Systems. Additionally, having some experience with coding and programming can also be beneficial. However, with dedication and perseverance, anyone can learn these subjects regardless of their prior knowledge.

Similar threads

Replies
1
Views
1K
Replies
8
Views
5K
Replies
7
Views
2K
Replies
4
Views
1K
Replies
10
Views
2K
Replies
4
Views
2K
Replies
11
Views
1K
Back
Top