Welcome to Sysnative mjthomp95 :)
I learned most of what I know from the internet. Every time I came across a term or concept about computers I didn't understand, I searched for that term online. More often than not, I couldn't understand what I was reading, so I would do some background reading on the subject. That would bring up more terms I didn't understand, so I would do yet more background reading. I could easily while away a whole day in an ever expanding web of stuff I didn't know. However, by the end, I had usually knew a great deal more on that topic than at the start. I then came onto the forums and helped out where I could. Whenever I saw a question I didn't understand, or an answer given by someone more knowledgeable I would either directly learn from that answer, or if I didn't understand it, do more background reading.
Then I started programming. Little bits of high level programming don't help much more than giving you the ability to write programs. I eventually moved to the lower level stuff and used that to enhance my understanding of *how* computers work.
I also did a lot of self-experimentation. Find something I couldn't understand, but before I looked online I would devise a test to determine the answer for myself. Through repeated experimentation, the development of theories, and the refinement of those theories I could learn a lot. My choice of field when I finally specialised from providing generic help was in Windows Update - a largely unexplored field which I had to uncover mostly through my own analysis and experiments.
I now share my findings with others, and teach others the field of Windows Update. I'm also working on lots of automated tools to make various fixes which were manual and took many hours into automated processes done either quickly, or in places completely automatically and within any human intervention.
Keep plugging away at the learning - and above all, don't stick to just what's on your course - if there's something you see and don't understand - INVESTIGATE! You'll go places if you do more than everyone else, and that means having such an inquisitive nature that you don't accept anything as just something you don't know. Read about it! Even just a basic understanding will help you understand other things, make connections you wouldn't otherwise understand. Also realise that having breadth is as important as depth. Try to know at least a little bit on how hardware, how networking, how programming, how servers, how Linux, all work. You cannot ever gain full depth in one area without understanding at least a little bit of everything. Then start going in to depth on everything, one at a time (or lots at a time depending on how you learn).
Good luck!
Richard