Why should you know about data structures and algorithms? Something that no one has told you for many years.

Why should you know about data structures and algorithms? Something that no one has told you for many years.

Daily short news for you
  • Thanks to reading the article about the development of JavaScript over 30 years, I learned that in 2016, there was an incident called the npm left-pad incident. Essentially, a programmer deleted a package from the npm registry due to a copyright dispute. This caused many other packages that depended on it to stop working, including Babel, Webpack, React, and more. This incident led npm to change its policy to restrict the deletion of packages after they have been published.

    Indeed, npm is large and convenient, but looking at its heap of dependencies can be overwhelming. Just changing one package can cause an entire ecosystem to collapse. Not to mention the attacks that insert malware into popular packages or create misleading names to trick users into downloading them.

    Just like my experience last time when, on the night before going live, I encountered an error where I couldn't install the packages listed in package.json. It was like npm install just couldn't pull that package at all, so the project couldn't start up. Fortunately, I had node_modules available on my machine, so I had to resort to the last resort of uploading the entire folder to the server 🙏

    » Read more
  • Indeed, there's nothing that wizards can't come up with. awk is a very powerful command for processing files; it can read, search, summarize... text data. Especially for system log files, you just have to call it with... a command.

    jgarzik/sqawk takes the use of awk to "new heights". It applies SQL syntax for querying as well 😆.

    » Read more
  • I forgot to mention that I promised to share my thoughts with everyone after switching to Safari, and just two days later, I had to go back to Chrome. Why?

    First, I would like to point out a few things I liked about Safari, such as its extremely simple interface, which truly focuses on real web browsing, and I found its speed to be on par with Chrome. Additionally, one feature I really enjoyed was the ability to "hide" certain elements you don't like on a particular webpage. This feature is called Hide Distracting Items.

    However, I began to discover some shortcomings when opening Dev Tools—the space that helps developers debug their websites. I must say it was quite basic. It seems that Safari is not designed for debugging. I spent a while trying to figure out how to view the data being sent through the API, or even how to see a fully printed Object from console.log!?

    That alone is enough of a reason for me to return to Chrome. Perhaps Safari is very focused on privacy and security, which makes it difficult to fulfill these requests. On the flip side, if you are doing regular web browsing, you might really enjoy Safari!

    » Read more

The Issue

Data structures and algorithms are one of the first subjects for IT students. I don't know how others feel when they first encounter algorithm, but for me, it feels like writing a list. I'm not going to hide it, before being a student, I also had "programming" if-else, array, and object, but I didn't understand why I had to write algorithms on paper like this. It was only later that I realized that algorithms are the root of logical thinking in programming. Writing algorithms in a step-by-step style is actually training your thinking ability.

However, I have noticed that some people, even colleagues, still have some hesitation when it comes to data structures and algorithms. For them, algorithms seem like something high and truly complex that they can't understand, and they have no idea how they are applied in their work even though they use them daily! Thinking like this inadvertently undermines their self-esteem and creates a fear whenever they have to face it. Instead, why not set aside this fear and face it to see what data structures and algorithms are actually about?

What are Data Structures and Algorithms?

According to technical documentation, an algorithm is a finite set of well-defined instructions that can be executed by a computer, usually to solve a class of problems or perform a calculation. Algorithms are always clear and explicitly state how to perform operations, process data, make automated inferences, and other tasks.

On the other hand, a data structure is a defined way of organizing and storing data in a sorted manner to make a process more manageable.

The simplest example of an algorithm is "Calculate the sum of natural numbers from 1 to n":

Initialize sum = 0
For each natural number x in the range from 1 to n:  
    Add x to sum
Sum is the result

It can be said that data structures contribute to the creation of algorithms because algorithms need data structures to store data. There are many data structures created to serve various storage purposes, accessibility, and memory usage. Choosing the appropriate data structure for an algorithm improves its efficiency. Therefore, we need to further study data structures to enhance the application of algorithms in the future.

Why Should You Know About Data Structures and Algorithms?

Why should you know about data structures and algorithms?

Algorithms are still present in the lines of code we write every day. Every logic you write is the result of an algorithm, and they can differ among programmers. This creates differences in coding style as well as programming performance.

Being interested in algorithms helps in training logical thinking in programming. In programming, there are many ways to solve a problem, and these differences can be reflected in performance. Some problem-solving methods are very effective, while others are not. Knowing multiple algorithms helps improve problem-solving speed and efficiency. We know which algorithm to apply in a specific case or even combine them to create a more optimal algorithm.

When choosing a tool, understanding the algorithm it applies or implements helps connect it with existing knowledge, enabling faster mastery of the tool. For example, if you are looking for a text search tool, there are many tools that can do that, and they apply different search algorithms. Knowing the different algorithms and the search scenarios you want will help you choose the most suitable tool.

Widely recognized and popular algorithms are focused on optimizing computer resources such as memory or processing power. Choosing an existing algorithm or writing a new one based on them appropriately helps optimize memory, thereby enhancing processing performance.

Especially in the current AI technology revolution, the algorithms of technology giants have and are dominating many aspects of the world. It can be seen that algorithms have infiltrated into the daily lives of everyone. Equipping yourself with knowledge of data structures and algorithms helps you adapt to this world more quickly. Who knows, one day the algorithm you write may also contribute to changing the world?

Premium
Hello

The secret stack of Blog

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

View all

Subscribe to receive new article notifications

or
* The summary newsletter is sent every 1-2 weeks, cancel anytime.

Comments (1)

Leave a comment...
Avatar
Trịnh Cường2 years ago

Rất hay bạn ơi

Reply
Avatar
Xuân Hoài Tống2 years ago

Bạn Cường rút ra được bài học gì không ạ?