Solving bugs is not glamorous, but it does help with learning a code base and it gives you goals to hit and will make you feel like you are contributing.<p>I find that the more that you plan to do with knowledge, the easier it is to learn it (and then be able to do something with it). The simplest thing is taking notes to help pay attention in class (which you are doing). But you can work from that basic principle in other ways. For instance, you can say &quot;let me see if I understand this right&quot; and explain back the information. You could also make it a point to always make some kind of guess, even if it is obviously a wrong one. Finally, you may want to find people who like to talk and ask them various questions. Some engineers are impatient and do not like explaining things a second time, but others are not like that. You may be able to find what you need to know in indirect ways.<p>There is a lot you can do and you sound like a conscientious person, so if you make a healthy and consistent effort, then you should be fine in the long run.