You have suggested a great book.
In 2017, are also available a few more progressive learning formats:
be sure to follow practical exercises that give on courses without their knowledge quickly vyvertyvayut out of my head.
- Immediately begin to solve problems leetcode.com, hackerrank.com etc.
- Participate in competitions such as Yandex.Algorithm or Russian CodeCup the first 1-2 problems can be solved without specialized knowledge on algorithms.