Repetition and practice are very important. If I go to language classes and don't practice between lessons, I forget everything. I found the same with computers. Like a language, you have to use it in real-life situations, and keep on applying what you've learned. Some of us can't learn it in three years.
Computers are like a foreign language.
It really is. It has a vocabulary all of its own, and you have to learn that. And you have to learn it slowly and with hands-on experience. Then you build. You just keep building.