Photo by Markus Spiske on Unsplash
Data Structures and Algorithms: The Codex of Computer Science
Why Data Structures and Algorithms are Essential to Programmers
Ever looked at a coding challenge and wondered what in the Elon Musk, Charles Babbage, and Alan Turing jargon is going on here?
Well, it turns out, you are not alone. A lot of developers, programmers, and software engineers dread the famous data structures and algorithms path of learning.
But what are they exactly? Is it possible for one to have a career in a coding-related job despite evading data structures and algorithms?
Short answer…
Yes.
However…
Some limitations will catch up to you sooner or later.
They lurk, waiting, like the synonymousness of life with the grim reaper—an inevitability that is the fate of everyone who has ever lived—a slow and eventual demise.
Feign ignorance; circle to Mars on its first expedition if you must. But as far as the standards of securing the crème de la crème of tech jobs are concerned (disclaimer: this is subjective), you need your dose of DSA.
But the oddity here is one you might not have seen coming; data structures and algorithms are not prerequisites for production-level code.
Yay! Once more.
Whew! Don’t scuttle off in victory just yet; let’s discuss the essentiality of DSA.
Why do you need Data Structures and Algorithms?
So what is the point? Here are a few reasons you can get behind.
The bedrock of software engineering
That’s right. There are software engineers and those who purport to be software engineers. Kidding. I had an incredible coding instructor who used to say that if you wrote a line of code, you were a software engineer.
That’s it. No take-backs.
Gatekeepers can suck it.
But we often deal with this nagging remnant of our former selves. The one that heightens feelings of low self-esteem and excavates the often neglected Donning-Krueger effect, or better yet, the imposter syndrome that is familiar to specialists of various fields.
One day, you feel confident enough to exclaim, "I just whipped up several lines of code and assembled this beauty of a specimen. I must be god."
Another day you are stuck on a coding error, and no amount of consultation with the fairy god-father/mother nature of ChatGPT can get you unstuck. Not even its dinosaur predecessor, StackOverflow (kidding, please don't find me Neeson), can offer a solution. So the inertia of a reclusive, well-hidden secret reemerges to offer you a not-so-subtle reminder that you might just be a fraud.
Kidding again.
Maybe you totally dumped Pomodoro, are acting on overdrive, and aren’t utilizing the presence of your coding duck to help you navigate your coding sessions.
Well, this veered off...
Really fast too, I might add.
Still…
Bring back your train of thought to what’s being discussed here...
Data structures and algorithms are fundamentals that act as the foundation for all things software engineering.
Optimization
The word "optimization" might come off as fancy, but it simply refers to making something better than it already is. It is the process by which the status quo is improved so that it morphs into something else and becomes more efficient and effective.
That’s another reason you need data structures and algorithms. It assists in making you think optimally so that your code comes off better. It’s not something noticeable in the short run. It compounds and offers you rewards years into your coding career.
Puzzle Master
That’s a term that is waiting to be yours if you can carefully maintain a relationship with data structures and algorithms.
Maybe not in a generalized sense for every puzzle or how you might envision it, but you can be sure to notice a surge in your problem-solving skills in the long run.
Crosswords and Sudoku games are in for a surprise.
There are countless other reasons that make knowledge of data structures and algorithms an incredible arsenal for your utility belt (Cough cough! Go Batman. Go wreck up some jokers), but the aforementioned reasons should suffice for now.
Anyway…
This is a collection of data structures and algorithm notes to help beginner-level programmers better grasp the concepts of coding challenges and problem-solving.
They are mostly my spin on all things data structures and algorithms from a beginner's standpoint, and I do not seek to offend any GPT-level coders out there. Whoever the shoe fits, wear it.
With that being said, I will leave you with data structures and algorithms until the next lesson on the most common types of data structures and algorithms - Linked list, Queue, Stack, Tree, Prime Factors, Matrices, and more.
What are Data Structures?
Right off the bat, you can put one and two together and put a spin on the name to come up with a non-complicated name for it; it is simply the structure of data. This structure of data is structured or organized by special identifiers that make them easily fetchable after they have been stored on a computer.
What are Algorithms?
These, if Richard Feynman were to articulate them plainly, are a set of instructions that offer us guides to solving problems.
When these powers combine...
Together, they form indispensable components of what constitutes computer science.
There are no David Goggins or Tony Robbins 's-level motivational sermons I can offer you to kickstart your passion for wanting to learn them.
All I can say is that you need them so that you can excel in this realm of things. Additionally, you should have an innate and intense desire to learn, which is synergistic for a healthy neural network. You can choose to evade them instead. But what good would that do to you if your intention is to become a well-rounded software developer or engineer?
See you in the next post for the types of data structures and algorithms. Spoiler alert: they are not a walk in the park. But hopefully, you knew that already, and nothing phases you. Because you are a go-getter.
You go get!
Live long and prosper.