During Week 5 of my RC batch I wanted to focus on distributed hash table I was writing in Python. Pairing is great but could I work solo and keep focused with all the distractions? I found I could. The trick was to head to Church (room named after a computer scientist Alonzo Church) first thing in the morning and sit in front of the white wall with my headphones on.
This led me to some of the most productive hours aside from those spent in pair-programming. By the end of the week I have done quite a lot and finally felt accomplished and calm. I got back into a habit of committing every little change and testing the code I write (in some cases even using TDD approach).
Brian Lee was helpful in figuring out my git workflow – branches, remotes, logs and tags. It helped to go back and forth in the history of my codebase in preparation to Thursday presentations. My idea was to talk about applying Boundaries approach to my code and Satabdi was kind enough to let me practice my presentation on her. She made some good points on the delivery (mainly using diagrams) and I put together a 25-page slideshow which I called Functional Programming in Python.
I should mention that Juliano was instrumental in understanding and following the approach as well as Vaibhav, Ivo and Sarah – we watched some screencasts together and discussed application in IRC server written in Elixit, git implementation and the way Haskell deals with storing immutable data structures.
As usual, here are some other things I did during the week.
- Many problems on InterviewBit and LeetCode, including greedy algorithm and dynamic programming problems. Few other problems include finding start point in linked list cycle (I used classic Floyd’s algorithm for that) and longest palindromic string.
- I also participated in Algorithmic and, separately, Architectural whiteboarding session. Former was a round-robin mock interviews with Trey and Tori. I was asked to count possible ways to arrange n number of cents with given set of coins – classic DP problem!
- Code dojo was fun as usual: Dan and I worked out a solution that was accepted by HackerRank but then I talked to Andrea and Jade – they had same O(n^3*log(n)) solution but also a few ideas on how to do it better. Resulting solution was running as fast as O(n^2) and you can see both on Jade’s gist or Code dojo itself if you are a recurser or one of RC alumni.
- I watched some videos from 2nd part of the famous ‘Algorithms: Design and Analysis’ course and the timing could not have been better – they explain greedy and DP algorithms. I wrote on that topic just a week or two ago and really needed to cement the intuition behind it.
- We had quite a crowd at the feelings check-in and it was an amazing bonding experience as we shared our feelings about batches ending for some and coming to second half for others.
- Last but definitely not least, I put together my resume (soon to be uploaded to this website) with help from Marf and Sofia-Jeanne. I finally have one that I like!