Arjunkumar Shastry wrote:Algorithms are of great importance but everyday do we face these problems? Unless you are developing application or system in initial phase, we are busy mainly maintaining the application or giving support. So people tend to memorize algorithms or data structures for the sake of appearing for interviews!
Do you/your book recommend any hobby projects so that we keep active interest in this field?
Hi Arjunkumar,
Thank you for writing. A lot of good points by Campbell there, so I'll try not to repeat those.
You've asked a great question. I think that once you start learning about data structures and algorithms, you will see them everywhere. Why is my program so slow? Is this code going to scale to a million users? Is my program correct in all cases -- how do I know?
Personal bias, I know, but I think all programmers need some exposure to algorithms. I don't care so much if someone can implement an algorithm from scratch, more that they can be working on code and notice, "aha wait, can't I just plug Dijkstra's algorithm in here and solve this searching problem lickety-split?"
This is why we put the
word 'thinking' in the book. I want people to be able to identify when algorithms might help, and how to think about developing/using algorithms.
As the book explores, the difference between a naive solution and a solution that uses a fast algorithm is shocking. Like, we're talking hundreds or thousands of times faster.
Thank you,
Dan