Q:

Is practicing algorithms and data structures in high level languages suboptimal?

I bought a copy of Cracking the Coding Interview and want to go through the exercises. I'm well-versed in Python and Clojure and wondering whether they'd be suitable for this purpose. If I impose a strict restriction to use only lists and classes (or records) that I create, will I still gain full benefit in terms of learning (outside of memory management), or should I go back to C/Java (I haven't touched either in years)?

A:

Knowing how to implement and when to use which algorithms and data structures is an important skill in any language, and most algorithms can be implemented in all the mainstream languages.
The point about them is scalability of programs, i.e. graceful performance degradation as inputs grow. That's much more important than the constant factor speedup you get from switching to a lower-level programming language.

