That's pretty impressive are you currently contributing to open source? If so how did you get start? Right now I am trying to do OS but it's really hard to find a project to do.
How do I go about understanding the internals of Fire fox or GNU emacs? Do I need to understand the entire thing to contribute? If not what should I do?
I want to focus on deliberate practice by choosing projects that is relevent to my weakness. Right now I want to master C. Do you know a good projects for this?
Nothing wrong with documentation. I would do it just not the only thing I want to be doing. Do you know a good road map to make substantial contributions?
Realistically would any programmer want a novice to contribute other than documentation? Edit: I have already been doing the things you are saying (learning from everyone) but I feel I am not progressing fast enough.
Do you feel the program is flawed since it only has 3 programming courses before an OS course? I think the major reason is that students don't do well is because of lack of practice.
Its seem the comments here are all along the lines of pay attention, do assignments, take notes etc. But how do you keep up with the intensity of doing all this? Is it like weight lifting where at first it feels really uncomfortable, but once you get use to it, it's easy? Also, how do you avoid being bogged down by hard CS assignments (40 hours)? What would a 95% person do in this situation? For example, my cs friend who got 96 told me that he just doesn't sleep and he gets help when he needs it and also he tried to leverage off power of programming language or reusable code. Are there any other hacks?
What happens when you feel bogged down by assignments? Do you just hand in an incomplete or completely skip it? Could you break down your typical schedule for a week?