Interview Cake
A while ago I discovered Interview Cake via a Hacker News post and I’m so glad to have found it.
I recommend it to anyone who feels like they are at a disadvantage as programmers because somehow, along the way, they skipped having to learn Algorithms and Data Stuctures and now the subject just seems way too intimidating.
I felt that way for the longest time and I’ve always regretted not having a ^formal computer science^ background. I have tried numerous times to formally study Algorithrms and Data Stuctures from books, videos and other online resources but I often felt handicapped as a programmer for not ever completing the books or videos lectures ...etc
And although, over time I did pick up enough of comp-sci’y knowledge to reason about code and speak intelligently about design, (or sometimes even fake convincingly about those ;-) ), I’ve always tended to linger on the shores of the subject, testily getting my feet wet, never diving deep.
This was primarily because invariably all books that I came across started off being way too technical without a whole lot of practical or motivating pretext for the concepts or approaching the subject with a dry academic sense of purpose. The mental leap necessary to relate what the books taught to getting-shit-done was often times too large ...and I’m (or at least would like to think I am) a pragmatic programmer who wants to solve interesting problems using the tools at hand.
So, although a formal study of the complexity of algorithms made for interesting bedside reading, it never stuck and I’d soon get bored.
Until I saw Interview Cake that is. This site presents problems (typically the kind that you’d face during the technical rounds of an interview for a developer position) – but it isn’t just another codility or project euler, there is a definite sense of purpose to the way the problems are presented, broken down, hints offered and solutions explained.
It makes you want to learn the concepts if you don’t already know the answers and most importantly it is approachable to programmers like me who learned the art of programming by being an apprentice instead of books.
This site is NOT a place to learn the concepts of comp-science but it is a great resource to wheat your appetite. I am now, stoked about ‘deep diving’ in to A&DS and more importantly, I feel like I can remain interested. Also, I feel confident that I’ll be a better programmer due to this.