Why do many companies still ask CS puzzle type questions in their coding round for DS roles
My journey with SICP so far
The magic of SICP
I was introduced to this book by a great article from Peter Norvig, Teach Yourself Programming in 21 Days. This idea of programming being a skill to be honed continuously for an extended period of time really resonated with me, and Peter did write a great review for this book on Amazon as well (Thanks to Hacker News for highlighting this).
I come from a non-traditional programming background, with a degree in Mechanical Engineering, and first job in management consulting! Although as an undergrad, I had taken up a bunch of CS electives, and had developed on a couple of websites for student bodies, I never really considered myself as a “true blue programmer”. But now that I was working in the field of data science, I wanted to a have a better foundation in programming, and more broadly, computer science.
So I started reading this book around April 2020, just when COVID had enforced lockdowns all around the country, and luckily enough for me, it gave me the extra time to go through this (introductory ?!) CS book in detail, solving each and every exercise along the way.
But I had never imagined this ride to be as fun !! Solving SICP problems in an exotic language like Lisp is one of those intellecutal mind-bending experiences that I have always relished. Engineering students might relate to the joy of solving Classical Mechanics problems from the Physics textbook by HC Verma (or Irodov!). While I’m still on Chapter 2 (of 5 chapters) of the book, so far I’ve learnt a great deal about the language Scheme, functional programming, the concepts of recursion, abstraction & closures.
I always thought these CS concepts were too abstract for any real life use case, especially in data science. On the contrary, I’ve started seeing their application all around me, not just in functional languages like Scala & R, but even in Python. The best parts of R to me, the tidyverse & magrittr, are all based on functional programming, and meta programming. I read Advanced R sometime back and some of the chapters that talked about non standard evaluation went above my head, but I reckon I will go back to them once I’m done with SICP.
But enough about the exciting parts, when you get down to it, SICP is hard, really HARD !! Codology.net was one of the best resources I found online documenting each problem & solution of SICP meticulously, and even that site is incomplete. Fortunately though, there is a community contributed Wiki for SICP problems that is almost complete and provides good resources to help you when you’re stuck. The Youtube lectures from MIT by the authors of the book are also a great learning resource. I love the puzzled and bewildered reactions of the students in these videos btw :D
So anyway, I will continue to work through the rest of the exercises of this book and share my learnings (enlightenment ?!) along the way.
Looking at the design recipes for 2 common sorting algorithms in Scheme
Don’t teach yourself data science in 10 days, but in 10 years
Some valuable lessons I learnt in my recent job search experience
And why you don’t need another ‘How to become a data scientist in 2021’ listicle
An intuitive way to look at matrix vector multiplication, with applications in image processing
Most tech firm interviews include SQL problems for DS roles, so how should you prepare for them?
Implementing basic matrix algebra operations in Scheme using a Jupyter notebook
Building a gender classifier model based on the dialogues of characters in Hollywood movies
Simple EDA of my reading activity using tidyverse on R Markdown
My experience using productivity tools for personal projects
Comparing Tree Recursion & Tail Recursion in Scheme & Python
My notes halfway through the book Learn You A Haskell
My topsy turvy ride to data science
Books, MOOCs and other resources that I would highly recommend
The magic of SICP