DEV Community

Ronald Colyar
Ronald Colyar

Posted on

Why you need DS&A to be a great software engineer!

Recently, I have been having discussions with software engineers from all across the globe on a platform called Dogehouse. On DogeHouse there has been a common opinion about DS&A(data structures and algorithms) which is the idea that learning DS&A is useless. In these discussions, I am always the disagreeing party because learning these ideas will help you optimize your software for scalability and speed.

Before learning the ideas of time complexity and how complexity impacts the overall software performance I was writing very complex code

Looking back at my code from high-school I realized that my average complexity in data-intensive methods was O(n^2). This at the time was beyond my understanding but if I knew where to implement a hashtable my programs would have performed better.

The common argument that I hear is that "I never have to resort to the use of the taught algorithms in the workplace"

This is a valid argument but in the underlying implementation of almost all software, there are optimized algorithms that handle certain tasks. Sure you can just use the software without knowing anything about it, but this type of abstraction destroys fundamental understanding.

DS&A saved me from many different nightmares!

Every time I have a problem that I have to solve, the first thing that comes to my mind is: "Will I need to be inserting items constantly ?, Do I Need a key-value pair? Will the data set need to be static? " etc. Based on these questions I clearly get an idea of what type of data structure should be implemented in that specific case, but if I knew nothing about data structures it would have taken me longer to come up with a viable solution!

Speedy emails, satisfied customers

Postmark Image

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay