The interesting premise of these types of problems is that if one can solve low-level problems with low-level languages while optimizing for performance that this is the key trait of "good engineering."<p>I wonder if this is based on research. One might speculate that the performance-centric talents that are essential to low-level coding (filesystems, OSs, database engines) may not be the same set of skills that apply to high-level open-ended problem solving (such as figuring out a realistic algorithm to power a dating site, acknowledging human nature's role, or
architecting an AWS competitor, etc).
These don't seem like paths to follow because the steps don't build on one-another. E.g., the Foundations sequence:<p>1. Former Coding Interview Question: Find longest word in dictionary that is a subsequence of a given string<p>2. Using strings in Java (Java For Beginners: Strings, String Functions & Chars)<p>3. Using arrays in Java (Java For Beginners: Arrays)<p>...<p>13. Java Object References<p>14. Sort array problem (considerably easier than the first problem although hash tables come after it)