Better Programmer 2018-08-25T00:23:28 I recently came across a blog post at malisper.me[1] wherein the author (Michael Malis) describes how he has improved his coding and other related skills in the last one year or so. The most interesting changes that I could find were about reading a technical paper per week, and recording his work session and then revisiting it at a later date. Reading a technical paper is a great way to improve skills. Though reading here won't mean just reading, but also preparing notes for the same and registering everything in memory so that the registered information can be recalled when desired. There are multiple ways of creating notes. I used to create extensive paper notes over the years (actually I started creating paper notes when I was turning into a lazy sloth, not exercising my hands and started having pain with too much typing). These have two major flaws: 1. These are not always available. If I am outside without access to my notebook, then I am screwed. I can't check my notes, and there's a high chance that the time is then wasted on phone. 2. I can't search my notes. Once upon a time I thought I'll keep notes as well as an index to properly file these. Nope, didn't happen. I kept on making notes without filling in the index and it soon turned into a dumpster. 3. I can't tag my notes. There is a lot of information which would have so called cross-cutting concerns. Something is both math and science, something else is both science and music. Enough said. So I have made 2 changes to my (ever changing) workflow: I have started making notes in the majestic Emacs with the marvellous Org mode. I can tag my notes, I can grep them, most of these are available as a git repository which I can access from anywhere (even my phone). On Android there's orgzly which can read org mode files, though I've not used it too much. Anyhow, phone is not meant to read so much notes. The second change is to install the superior Anki which allows me to take notes on my phone or on my laptop, and then revisit them either on my phone or my laptop. I just can't describe how amazing it feels when the knowledge flows from my brain to my keyboard. I have used Anki to create notes while programming, and these days to create questions while reading research papers. Anki forces me to revisit these questions at predefined interval. While you can not visit the questions, but I've done that once and Anki threw hundreds of questions back at me which caused me enough grief. Anyhow, the trick is to create few questions everyday and keep up the daily revision schedule. Coming back to recording the work session, I find that both amusing and interesting. That's something which makes perfect sense -- Michael compares that with atheletes who study their training footage to understand themselves better. The questions then becomes how often does one do that? He does it everyday and then looks through the footage on weekends. I believe that doing that will have two benefits in my case: 1. I will stop wasting my time by going to leechers like HN and Reddit. 2. I will focus on work because of the Big Brother effect. 3. (Bonus) I might actually see where exactly I can improve. While I have been doing the Anki thing for quiet some time now, and have close to 200 cards in my drawer, reading papers is something I wanted to do for a long time. I have started with a few ones, trying some Anki workflows that I have found somewhere else[2]. I now have to keep walking on the same path, busting my ass in the process and measure how things are a few months down the line. [1]: http://malisper.me/my-approach-to-getting-dramatically-better-as-a-programmer/ [2]: http://augmentingcognition.com/ltm.html