What I have to say is probably more of a meta-response -- a few things to think about / look for when you're learning.
One of the first things I was told when beginning my E.E. degree was that I'd be _learning how to learn_. Many years later (after obtaining a master's), I see that it is true.
Others here have stated, and I agree, you need to try doing stuff. There seem to be two sides to engineering: understanding/developing theory, and implementing it. Both are worlds unto themselves.
Also, learn the tool of the trade: Math. Even if you don't learn a particular subject, at least familiarize yourself with it enough to be able to later on say to yourself "hey, I think this type of math is what I need to solve this problem" then go and learn it.
(And, relating back to doing things, try looking at example problems and connecting the concepts involved to their equational counter-parts -- this will make connecting the math to the context easier when you try to come up with solutions or understand something else).
I'd recommend starting out with these branches:
Differential Equations - as most physical systems adhere to these types of rules
Linear Algebra - as this is useful for taking differential equations and turning them into computations a computer can perform (via state-space) as well as many many other things -- I've found a lot of the ideas I learned from linear algebra were helpful in understanding other branches of math, such as differential equations (e.g. basis vectors/functions)
and
Laplace/Fourier Transforms - lots and lots of engineering will look at things in different domains (esp. these two), so it'd be a good idea for you to get used to doing that.
Again, the best way to learn this stuff is by doing.
One of the first things I was told when beginning my E.E. degree was that I'd be _learning how to learn_. Many years later (after obtaining a master's), I see that it is true.
Others here have stated, and I agree, you need to try doing stuff. There seem to be two sides to engineering: understanding/developing theory, and implementing it. Both are worlds unto themselves.
Also, learn the tool of the trade: Math. Even if you don't learn a particular subject, at least familiarize yourself with it enough to be able to later on say to yourself "hey, I think this type of math is what I need to solve this problem" then go and learn it.
(And, relating back to doing things, try looking at example problems and connecting the concepts involved to their equational counter-parts -- this will make connecting the math to the context easier when you try to come up with solutions or understand something else).
I'd recommend starting out with these branches:
Differential Equations - as most physical systems adhere to these types of rules
Linear Algebra - as this is useful for taking differential equations and turning them into computations a computer can perform (via state-space) as well as many many other things -- I've found a lot of the ideas I learned from linear algebra were helpful in understanding other branches of math, such as differential equations (e.g. basis vectors/functions)
and
Laplace/Fourier Transforms - lots and lots of engineering will look at things in different domains (esp. these two), so it'd be a good idea for you to get used to doing that.
Again, the best way to learn this stuff is by doing.
[EDIT: Grammar]