For a self-learner at a casual pace, try starting with something like an Arduino; it'll abstract away a lot of the more complicated ideas at first, and give you a ton of positive feedback along the way. It's a great bridge to hardware for a software guy.
For more formal stuff, see electronics/digital computer fundamentals/etc. courses at your local community college or university, or see if your local Maker community (if there is one where you live) can point you at more targeted local resources.