|
|
|
|
|
by jammycakes
4894 days ago
|
|
I'd be inclined to side with the interviewer on this one. Data structures such as binary trees and linked lists may be abstracted away by many modern frameworks, but every abstraction is leaky and if you aren't aware of what's going on behind the scenes, you can absolutely crucify your application's performance. Binary trees, linked lists, hashtables and so on have very different performance characteristics, and if you choose the wrong one for the wrong situation, you can end up with code that gets unbearably slow surprisingly quickly. The difference between O(n^2), O(n) and O(log n) can be massive on datasets of only a few thousand, and even small 20 person companies can end up having to deal with datasets much larger than that. This is all fairly basic stuff that should be a core competency for every software developer, and the fact that it isn't is the reason why so many Flash- and JavaScript-intensive websites are such resource hogs. The kind of things that Google, Amazon and Twitter are into that you'll never EVER need in a small 20 person run of the mill software shop are things such as machine learning, compiler theory, Bayesian statistics, image recognition, and so on. |
|