Hi there,
I have to second that nomination to use a circuit simulator, because you
can do many types of circuits with that and dont have to worry about
burning out parts or whatever.
Think back when you first learned programming. You probably didnt even
know what a 'goto' was right? Then you learned it, maybe used it, then
found out the pitfalls of using it, although you may still incorporate it
now and then. Well, this is like electronics too, you first learn this and
then that and then more about this and that and finally at some point
your accumulated knowledge allows you to do various tasks, and the
more you do this stuff the more you know and the more you know the
faster you learn and the more you learn the more you can figure out
how to design your own circuits.
Also, you might think about how many programs you have viewed (and
possibly debugged) over your life so far, and how viewing them helped
you learn more about programming. Think about how it would be if you
never saw a program before, and then think about how many programs
you viewed again and how many you have programmed yourself.
Well, electronic circuits is similar in this respect, because the more
circuits you look at (analyze) the more you learn and the more you
understand what is going on.
Also, math is a big player in really understanding circuits. Learning
how to analyze a circuit helps to understand, and this requires math.
Calculus is a must, but even algebra and trig can get you pretty far.
As far as components, you would start with resistors, move to caps,
then to inductors, then diodes, then transistors, etc., so a good
place to start is learning all about resistor circuits and Ohms Law.
Another analogy to programming might be this:
A large circuit is sometimes like a large program, where the sub circuits
are like static instances of a class object. Often a bunch of smaller circuits
make up a big circuit, where you already know what the smaller circuits
do so that makes it easier to understand the whole larger circuit.