The best knowledge will come in several steps: First get a basic understanding of what piece of hardware plays what role. Then you should try to understand how they all interact to produce your computing experience. Lastly, just follow hardware trends; which probably just comes with time.
After you understand hardware, dip into software! (Programming, I mean.) I have yet to do so, but plan to do so soon.
Also, just try to envelop yourself in it. If you force the learning, it may be unsuccessful. If you find it fun, just go with your flow.