My most frequent email inquiry is some version of "I've been doing transistors and resistors for 30 years, how do I get into microcontrollers?" The readers that send in these inquiries invariably conclude that they simply can't get there from where they stand. That may be true, but it comes down to a matter of perspective. What I mean is that learning is really about forming links to existing memories (the psychologists call it association), as well as forming new relatively standalone ones (accommodation).
Assimilation is easy because the new knowledge — say, how a microcontroller operates — fits nicely into what we already know about electronics. However, in reality, microcontrollers don't really map well to, say, capacitors.
Accommodation takes a lot more effort. You have to build a new model of the universe. You might even have to change your mind about some long-held beliefs. For someone moving from a few decades of work with analog components, a modern microcontroller is really a new universe.
Sure, there are pull-up resistors on I/O ports and capacitors to filter the power supply spikes. However, for the most part, there is little crossover from analog component to digital microcontroller.
I think the frustration comes in when someone who has been in electronics for decades picks up, say, a PIC or Arduino and expects to know how to use it in five minutes. It's the expectation that's the problem. In reality, old knowledge just doesn't transfer.
Whether using and/or learning theory, becoming fluent in microcontrollers involves a lot of accommodation.
Children and younger adults often have an easier time picking up microcontrollers, relative to someone with years of experience with analog circuits. This is — in part — because they have no legacy knowledge to get in the way. They don't have any preconceived (and wrong) notions on how the device should work, based on their experience with discrete analog components.
So, if you're one of those frustrated readers, the solution is to adjust your expectations. Admit to yourself that you're a novice when it comes to microcontrollers. Open your mind to new ideas and stop trying to fit the digital world into your analog universe.
In addition to the "think different" approach, you need to have some hands-on experiences to cement what you learn. I usually suggest picking up a $20 Arduino Uno and spending a few weeks going through the example code that's part of the integrated development environment (IDE) that's available online.
Turns out you can get there from here, as long as you're willing to nudge "here" a bit. NV