Never heard of a book by Skiena, so at Amazon found it and looked at the table of contents.

Google should be ashamed to be very impressed with that book! The topics that are just computer science are not very good, and the topics that are good are not really computer science and are covered poorly in the book.

One way and another, for nearly all the topics in that book, I've worked much more deeply with the topics from other sources.

E.g., there is just one, short section on linear programming. Gee, that's part of optimization! I've worked in linear, non-linear, linear integer, multi-objective, quadratic, network linear, and dynamic programming! I've published peer-reviewed original research in non-linear programming.

Network linear programming is especially important: (1) the simplex algorithm becomes especially efficient, and astoundingly large problems can be solved astoundingly quickly (e.g., see the work of W. Cunningham on 'strongly feasible' bases), (2) if the arc capacities are integers and the problem is feasible and bounded, then there is an initial basic feasible that is integer and the network simplex algorithm will maintain integer solutions to optimality, (3) network simplex is also a good way to solve a wide variety of matching problems. In particular, a large fraction of practical integer linear programming problems are in fact such network flow problems or closely related so that a network flow formulation and the network simplex algorithm yield integer programming at no extra cost!

In particular, seeing integer linear programming, there is no good reason to rush to claim that the problem is in NP-complete. Instead, if only via network linear programming, often in practice there is good news.

E.g., there is a short section on hashing, but a discussion on hashing should discuss both extendible hashing as in

Ronald Fagin, Jurg Nievergelt, Nicholas Pippenger, H. Raymond Strong, 'Extendible hashing—a fast access method for dynamic files', "ACM Transactions on Database Systems", ISSN 0362-5915, Volume 4, Issue 3, September 1979, Pages: 315 - 344.

and also perfect hashing. Extendible hashing is a very nice idea; we used it in one large project that resulted in a high quality commercial product.

For "If you're not comfortable with graphs and dynamic programming, sorry but you just haven't prepared"

If Google wants people to know dynamic programming from Skiena, then Google is "not prepared"!

The glory of dynamic programming is how it handles uncertainty. Then it is essentially the discrete time case of stochastic optimal control and Markov decision processes. The Markov assumption, e.g., via conditional independence, is important. There is a lot to the subject, e.g., the certainty equivalence of the linear, quadratic, Gaussian case, multi-variate spline approximation, scenario aggregation, dynamic programming approaches to the knapsack problem, the technique of doubling up number of stages, and more. There are some theoretical issues, e.g., measurable selection.

The interview I had from Google just asked my "favorite programming language". Apparently the answer had to be C++. Due to the semantic mud hole of Stroustrup's book, the terrible threat of memory leaks, the nonsense of 'cast', 'the heap', and 'the stack', the brain-dead exceptional condition handling, the really weak compiling of string operations, the clumsy and slow design of arrays, the far too simple design of structures, the brain-dead rules for scope of names, etc., no one who takes solid software very seriously should have C++ as a 'favorite'. Moreover, the question of a 'favorite' programming language drags the discussion into the old mud hole of religious arguments about programming languages any organization serious about computing should long since have known to avoid. A good answer is that all the common programming languages suck; some suck in unique ways; some suck for certain purposes; and overall some suck more than others. Once I didn't say C++, the interview was over. Good riddance.

Apparently the Google interview process is looking for only not very well informed candidates with excessively narrow and elementary qualifications.

The people running the interview processes seem not very well qualified and a bad influence on the future of Google.