DEV Community

Discussion on: Are algorithms, complexity & data structures still relevant?

Collapse
 
simonhaisz profile image
simonhaisz

Like most things, the devil is in the details. So my opinion would be heavily based upon what the question "are algorithms, complexity, and data-structures still relevant?" means.

If it means knowing when to use a List vs a Map vs a Tree, then yes! That is a core concept that applies to pretty much every type of programming. I wouldn't include questions about them in an interview though, unless it was a new-grad/no-prior-experience.

If it means implementing a Red-Black Tree, or performing an amortized analysis of an algorithm, then probably not! The vast majority of devs will never need to apply this knowledge. And this is not a result of 'technology getting faster so you don't need to worry about performance'. It is a matter of 'technology has improved in various ways that we need to think about performance differently'. Knowledge about algorithms and data-structures was the most important subject to know in a world where all the data was in memory and processed in a single-thread. With the advancements in distributed & cloud computing, network latency & bandwidth, multi-core & hyper-threading, etc, what you really need to know about these days is caching, paging, parallelism, sharding, and indexing. When I read about people here interviewing for a Front-end JS position and they're asked questions about implementing a double-linked-list it just makes me want to flip the metaphorical table...

Collapse
 
alvpopa profile image
Valentin A. Popa

Exactly my point! Chapeau, sir!