Learning Algorithmic Problem solving with reference to the book Cracking the Code Interview by Gayle Laakmann McDowell