I played guitar in a heavy metal band for almost 7 years. Crazy time. I never achieved the status of a professional musician but trying to learn and write music was one of the best shots I took in my life.
When I thought about that time there are two things that I learned and I still take benefits from it:
1) how to drink like a man
2) how to study
Well, for number one the good thing is that you can hang out on Saturday night and still be productive in the next morning. No extreme hangover as an ol’ friend once told me.
On how to study I took the lesson from real guitar players – then Musicians. You need method. Otherwise you’ll play 10 hours a day and still suck. No matter what skills you want to improve you need method. Otherwise you won’t be able to play that killer arpeggio that make teens to listen to the same lead break a thousand times.
Now, I don’t believe that there’s a perfect or magic method to improve your learning experience. It is up to you to discover and implement what works better for you. Two rules are mandatory though:
Rule #1 – Small steps
It’s like Jack the Ripper. Take it through pieces. It’s better for you to read 30 minutes a day than to spend your whole sunday with your face into that algorithm book you promised yourself to master.

This said, you need a schedule and this bring us to
Rule #2: Routine
Routine is the hard part. At least in the beginning. It’s easy to be distracted and procrastinate. A good way to motivate you to go through is to give you some credits when you achieve goals.
Make small goals. Goals that you can achieve. You can start with something like I’ll read some completely unknown technology to me 30 minutes everyday.
Let’s face it. 30 minutes won’t hurt you. In a week you’ll see that it’s a breeze. You’ll raise your bar for the next week.
My routine at this moment
Before building my schedule I had to couple with the idea that I won’t live forever – at least in this incarnation. So there’s a finite number of subjects and time to spend on them.
At this current stage of my life I have the ability to divide my learning time by
1) the mornings before doing “real” code. I go earlier to the office.
2) night time
3) small breaks during the day. Generally a 10 min break to let your subconscious deal with some problem you’re trying to solve.
For the subjects to learn I have priorities. Some subjects are mandatory and some are fun and new – and they improve your mandatory skills anyway.
I’m working as a software engineer in a startup company for almost 2 years. The language I deal most of the time is PHP. So, PHP is in my priority list. It’s very important for me to have a deep understanding of the language that pays my rent. I try to get better at the PHP world by reading books, magazines and even reading the language source code.
For the fun part I have included Python and Game Programming in my schedule. I mainly use Python at small side projects and use C for some stupid and small games. Games are a fun place for me to learn about algorithms and data structures.
I label everything else as Tools. In this section I have included 5 subjects. Right now they are Apache, Mysql, Emacs, Regular Expressions and SVN.
Ok, with the list of WHAT what to learn I insert it into my WHEN agenda.
1) Mornings – PHP. Here I read regular books, security with the language, what’s being done for version 6 and once in a while I try to read the language C source code.
2) Nights – Python or C Game Programming. Here I try to work on small side projects with Python/Django and sometimes coding small pieces of games.
3) Small breaks during the day – Here I set a subject for each day of the week. Apache on Mondays, Mysql on Tuesdays, Emacs on Wednesdays, Regular Expressions on Thrusdays and finally SVN on Fridays.
There are of course lots of other subjects that I’m interested in. Again, since my time is limited all other subjects are in my list for the future.
Having a schedule like this seems tedious at first. It’s not. In the end it’s all about having fun in what you do. If you’re not up to reading an algorithm book on Wednesday read something else or just go out to drink beer!! Salute.
Hey!
Nice posts. I think I’ll try to create a schedule for me. I also do programming in PHP but never thought about reading the source code (might learn some things if I do)