We are human beings with different abilities. What works for me might not work for you.
I happen to be an engineering student, where we churn out formulas, laws, theorems every damn day.
What I do is I attend my lectures, take notes and completes or take picture of missed ones. I know my brain too, it doesn't store long for me, it only takes snapshots and have references to those snapshots.
That way, I read when I have tests/exams. During this time I totally become an enemy with my PC. I just focus 101% on my books and formulas (considering my brain power, I read rigorously during the night before the actual exam).
Aside all the above, I spend my time reading ebooks mainly on programming, I try stuffs, and also break them too before fixing.
And one thing @dhtml told me, time management is a key for being a successful developer in this part of the world. I stick to it, and I use it. And I'm being productive.
It all boils down to the understanding of the first few lines: one thing works for people differently, understanding yourself and utilizing your abilities can help you scale as Facebook is doing with php.
They at home don't want to know how many functions/methods classes/objects of a language you know. They care for the result. And we have to compensate for it. And we are going to fulfill the two purposes, ours and those at home
I divert like all my spare time into coding:
- time spent chasing girls
- fortunately, i dont watch football (pretty weird), but an added bonus for a code warrior
- time spent watching tv / movies / social media
- time spent gisting with non-tech friends and people
When their are distractions like:
- lecture-free week
- holidays (public, private, general)
- Lecturer cancels lecture leaving the day free
I divert these extra times into coding as well.
Amongst my class-mates, they know me as last to sleep and first to wake. I start my day with coding and ends it with coding.