| >I don't need 100% of my hires able to handle 100% of the tasks. No but every facet of your software that is treated as a specialty, or handled by a specialist, introduces a bottleneck in the development process. Understanding the basic algorithms and data structures should not be something your developers have to specialize in and it should not be something that introduces bottlenecks into your work flow. >"The fact that most developers don't have a basic understanding etc" - citation needed. https://blog.codinghorror.com/why-cant-programmers-program/ And yes it is very much reproducible and I manage to reproduce it consistently. Every single applicant to a job posting of mine goes through an unbelievably simple screener similar to Fizz Buzz and the fail rate to this day and on a consistent basis is over 50%. I suppose you hire a specialist for that as well. >All the pressures on a business are features; speed is immaterial past a certain point. No, it's that most businesses don't even realize the importance of performance because they have no idea how to even begin measuring its impact. As an example of this... consider a research study Google conducted to determine the maximum number of search results to display per page. Google's survey said that users wanted 20 results per page, so Google conducted an A/B test to compare traffic between 10 results per page and 20 results per page. Their finding was that 20 results per page resulted in a tremendous drop in traffic, despite what users had told them. So certainly users were wrong and Google should stick to 10 results per page, right? Wrong. After very carefully studying the numbers, what Google realized was that there was an unforeseen factor that they did not take into account in their experiment nor did they anticipate it even being a factor: performance. The 20 results per page took something like a couple 100ms longer to deliver compared to the 10 results per page, and that small performance delay was all it took to degrade user engagement and traffic on their site. Once Google normalized performance so that 10 results took as much time as 20 results... traffic on the 20 results was substantially improved over traffic on 10 results. Furthermore this result generalized, as Google improved the performance of search results they continued noticing an improvement in traffic. In other words... performance is treated by users as a feature, and yet it's a feature that most people don't even realize they want until they know what it's like to use reasonably fast software. Furthermore, the more performance you have, the more of a "usability budget" you have available to deliver features to your users. You are welcome to spend your "usability budget" on hiring developers who can't answer basic questions about data structures and algorithms, and honestly if that works for your business then do it. But please understand some of us do care about writing reasonably fast software and we wish to hire developers who can answer basic technical questions about the profession they are engaged in. Sure, I end up paying more for those developers, a lot more... but in the end that cost is but a tiny fraction of the total cost of running a company and I'm more than happy to pay it knowing that I have a team of qualified professionals who are able to implement the fundamental data structures and algorithms that underlie this profession. |