| Well, I hope you weren't asked that at Google , since it's a banned question. If you were, let me know privately :) I assume you understand the goal of these questions is not to figure out if you can perform memorization of algorithms 1 + 2, but to understand how you think about problems and watch you do it? Note that, at least at Google, they still try to hire generalists (in most cases), so you would still get that "kind" of question there, even for a job involving architecture and assembly. This is a deliberate choice. Of course, i'm sure you also realize that a lot of the algorithms in "architecture, assembly, and compilation" were developed by people who started out more as "Algorithms Guru Yoga" folks. Gregory Chaitan, who developed Graph Coloring for register allocation, was definitely not a compiler guy Only half the folks on the original conference paper for Static Single Assignment form for compilers were compiler people actually trying to solve that problem. Robert Tarjan was not a compiler guy, but his scheme for computing dominators is still the main one used today, and his union-find algorithms (he also proved the upper bound on the already-known versions) are what are used for a lot of type unification algorithms. The list goes on of "Algorithms Guru Yoga" folks who came up with the premiere solutions to problems in the field you are talking about. So when you say "novel solutions require actual domain knowledge rather than an n-levels-deep memorization of the entirety of your Algorithms 1 and 2 courses from university.", it's a bit hard to take that seriously. Novel solutions require both domain level knowledge, and the understanding you learned in Algorithms 1 and 2.
Even the question you got about anagrams does not require any n-level wrote memorization. It requires only the most basic understanding of data structures, and an understanding of how to design algorithms. |