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
  • How I wish I had discovered this repository earlier. github/opensource.guide is a place that guides everyone on everything about Open Source. From how to contribute code, how to start your own open-source project, to the knowledge that anyone should know when stepping into this field 🤓

    Especially, this content is directly from Github.

    » Read more
  • Just the other day, I mentioned dokploy.com and today I came across coolify.io - another open-source project that can replace Heroku/Netlify/Vercel.

    From what I've read, Coolify operates based on Docker deployment, which allows it to run most applications.

    Coolify offers an interface and features that make application deployment simpler and easier.

    Could this be the trend for application deployment in the future? 🤔

    » Read more
  • One of the things I really like about command lines is their 'pipeline' nature. You can imagine each command as a pipe; when connected together, they create a flow of data. The output of one pipe becomes the input of another... and so on.

    In terms of application, there are many examples; you can refer to the article Practical Data Processing Using Commands on MTTQVN Statement File. By combining commands, we turn them into powerful data analysis tools.

    Recently, I combined the wrangler command with jq to make it easier to view logs from the worker. wrangler is Cloudflare's command line interface (CLI) that integrates many features. One of them helps us view logs from Worker using the command:

    $ wrangler tail --config /path/to/wrangler.toml --format json

    However, the logs from the above command contain a lot of extraneous information, spilling over the screen, while we only want to see a few important fields. So, what should we do?

    Let’s combine it with jq. jq is a very powerful JSON processing command. It makes working with JSON data in the terminal much easier. Therefore, to filter information from the logs, it’s quite simple:

    $ wrangler tail --config /path/to/wrangler.toml --format json | jq '{method: .event.request.method, url: .event.request.url, logs }'

    The above command returns structured JSON logs consisting of only 3 fields: method, url, and logs 🔥

    » 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

5 profound lessons

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? Click now!

Every product comes with stories. The success of others is an inspiration for many to follow. 5 lessons learned have changed me forever. How about you? 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 ạ?
Scroll or click to go to the next page