The main goal of this project is to build a small data structure and algorithms course with examples and implementations written in Golang.
From Wikipedia: "In computer science, a data structure is a data organization, management, and storage format that enables efficient access and modification. More precisely, a data structure is a collection of data values, the relationships among them, and the functions or operations that can be applied to the data."
Basically, data structures are the most basic knowledge on Computer Science and every programming language have their own versions of data structures and allow you to build yours.
Learning them will help you to:
- understand how to improve performance in your applications;
- how to organize better the information that you have;
- how to access it more efficiently;
From Wikipedia: "In mathematics and computer science, an algorithm is a finite sequence of well-defined, computer-implementable instructions, typically to solve a class of problems or to perform a computation. Algorithms are always unambiguous and are used as specifications for performing calculations, data processing, automated reasoning, and other tasks."
A good analogy for algorithms is thinking about recipes. Recipes, at their most basic level, recipes are instructions to cook something. Algorithms are instructions that we give to a computer to achieve something.
Learning algorithms will teach solutions for the most basic computation problems and will also teach how to think in an organized way and develop your own algorithms.
We have several programming languages such as Ruby, Python, Elixir, C, Java, Javascript and etc;
The goal of this course is to learn and give examples of the most fundamental topics in Computer Science and to achieve that, the usage of a language that is close to the machine language is very useful.
With that in mind, Golang is a language with fewer abstractions when comparing to a lot of high-level languages at the same time it provides us key features like pointers. It also has a fresh syntax than C and C++.
I believe to get a good understanding, you can follow this order: