Its been nearly an year since I delved into Ruby/Unix. Most of what I did hovered around learning from online resources and working on simple projects, I am happy that I learnt quite a lot. I can totally imagine surprising the person I was an year back. But, I fear: whether I actually failed! Well no, its not a question about losing trust in what I am learning. But I feel the rate of progress that I am making isn’t fast enough.

Have been reading quite a lot lately, mostly around clean, performant and maintainable code. Have got hooked, I must say to the goal of being a programmer with excellent habits. But frankly, irrespective of the knowledge I am acquiring, I doubt whether my path is the most efficient I could take; given the lack of time, I fear whether I should re-examine my ways.

With that thought in the back of my head, I have been looking into improving my workflow or my schedules to be more productive, though I must admit not actively enough until recently. I happened to stumble on a comment in Reddit on a discussion about valuable skills:

Learn to learn efficiently; thats the most valuable skill!

It was almost like an eyeopener for me! I realised: It possible, my methodology could be significantly inefficient or let alone fundamentally flawed. If so, the time that I am losing is enormous given that I am putting in too many hours lately.

In an attempt to figure out a better way to learn and keep track of the progress; I thought I will keep a log: a simple text file to record anything worthwhile I learn along with the date I acquire it. It could contain anything simple, may be even about discovering a simple Unix command’s special flag. Absolutely anything but it will give an idea of what I am learning, reading or if at all whether I am making any significant progress. Even I can request for review of my progress to experts out there!

Implementation of the logging

I was wondering how to actually do it, I mean in an easier less messy way. And I think, I found a rather neat solution. I wanted a command that appended a text to a file with the date. I must say, irrespective of the rather stupid and very simple solution, the final solution looked perfect to me. Its a simple alias that appends date and the string passed to a file.

    $ alias learnt="echo `date` ' - ' [email protected] >> ~/Links/learning.log"

So, that I can do:

    $ learnt "Performance comparison's about various Ruby servers"

And the log will look like this:

Sun Jul 20 19:14:02 IST 2014  -  Initial test log
Sun Jul 20 19:18:34 IST 2014  -  Jekyll auto generation option
Sun Jul 20 19:18:42 IST 2014  -  Another status for the sake of the example.
Sun Jul 20 19:19:17 IST 2014  -  Just the like the one above!
Sun Jul 20 19:23:32 IST 2014  -  Yes, just one more ;)

Perhaps, I can later do further analysis of the data given it is well formatted and ripe to grep pretty easily. Let me know, what you feel?