Deliberately learn stuff

Last week, it hit me during one of my midterms that I was not making the best use of my time. Not learning as much as I could. Wasting my time doing stupid things, pointless things.

I realised that while I wasn’t particularly lazy and didn't spend a lot of time playing, I hadn’t exactly spend my time doing anything worthwhile at all. I was doing my school work. Yet learning seem to be marginal at best.

This troubled me greatly and I've decided to try and "fix" this by deliberately doing stuff.

For a week now, I’ve made a commitment to myself to do the following on a weekly basis:

The Plan

Read

I’ve started on Ender’s Game and it’s amazing. The hope here, is that reading helps with creativity somehow. At least it offers a nice departure from the Computer Science and well, the computer.

Learn Stuff

I’m doing this in four different parts:

1. Practical Skills

This part focuses on tangible skills like getting better at the editor I’m using (VIM), unix and shell scripting, and the various languages I ought to know. I'm dedicating about an hour each for VIM, shell/unix, and language practice every week.

2. Foundational Computer Science

Here I toggle between 4 textbooks that I have. I basically read a at least a chapter each week to brush up on my fundamentals, clear up misconceptions and learn about new things. The books include The Algorithm Design Manual and another book on Design Patterns with focus on Java (Effective Java).

3. Knowledge

Here I try to learn about the various fields of Computer Science. I'll try to read about one field each week. Just getting to know of a field, and some of the things that are happening, might be helpful.

4. Other random stuff

This part is slightly vague and overlaps quite a bit with the above point. Its mainly about actively reading and learning random stuff. For instance, this week, I read Google’s MapReduce paper. It was the first research paper I’ve read from start to finish. Hopefully I won’t be my last. This part include HN articles, blogs I follow, research papers etc.

Do Stuff

Here I try to do (code out) at least one problem I find online (on TopCoder-like sites) per week. This also ties in nicely and reinforces the part above on learning practical stuff.

Write

This blog. Its always been fairly obvious to me that my writing skills need improvement. Consequently the inertia for this part is probably going to be the highest. I’ll try to blog at least once a week. Perhaps on the progress of this plan.

It feels particularly good to do this, to take control of learning and improving myself. I'm curious to see how long it'll last and how much of it will actually work as planned.