A good algorithm usually comes together with a set of good data structures that allow the algorithm to manipulate the data efficiently. Choosing the right algorithm and data structure to solve a problem can have huge implications on the performance of an application.
When designing and/or analyzing an algorithm or data structure, it is important to consider the performance and structure of an implementation. Algorithmic thinking is one of the key traits of a good programmer, especially one working on complex or performance-critical code.
A good programmer should be able to analyze and plan for the performance of an algorithm.
Public questions (free account) are common interview questions. They are great for practicing, or if you want to filter candidates using the classic problems.
Since we’re all biased and we use incorrect proxies, why not just outsource hiring to experts or recruitment agencies? After all, they’ve been screening people for many years, so they must know how to do it right?
Not really. I was surprised to discover that many experts disagree with each other. Everybody praises their pet method and criticizes the others. Many of these methods look legitimate, but are based on...