DEV Community

Discussion on: Beyond Bootcamp: Importance of Algorithms

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

As someone who trains interns to transition from college to career, I have to disagree with your disagreement. ;)

Abstractions are there to save us typing, not to save us thinking. Getting that backwards leads to a lot of the bugs and performance issues we see today, many of which were unheard of in the 80s and early 90s. For example, why wouldn't you use Java's sorting algorithm on something implemented as a linked list? Answer: it's because Java's sorting algorithm is Dual Pivot Quick Sort, which like all Quick Sort algorithms, is an unstable sorting algorithm, meaning it may move elements that are already in the correct position, leading to significant performance overhead. Unless you had some idea what DPQS and linked lists were, and that Java's sorting algorithm was DPQS, you might make exactly this mistake.

You need to understand algorithms and data structures, even if you don't implement them yourself. A competent programmer knows what they can use, but an excellent programmer knows what should be used in a particular situation, and why. That knowledge will impact coding decisions in any language, and is the deciding factor in making software stable, performant, and ultimately maintainable.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

I think we are on the same page on it. As I had mentioned in my previous comments.

I learn it as part of my mental model on how Io tackle problems. Meaning I'm treating it as a toolkit that I can draw from in the perspective of algorithms on how to tackle a problem.

Not for the sake of just passing a interview test which anyone can game it if you had prepared well. Which is why websites like leetcode and a few coding competition platforms focus on it.