One point that distinguishes a novice programmer from a professional one is their knowledge of algorithms. This topic is usually forgotten by self-taught programmers, although it is vital to find the best solutions for the most common problems when programming.

This selection of videos offer a broad introduction to the topic of algorithms and will serve both to review the most basic topics and to have them as a reference during learning.

## What is an algorithm?

“Algorithm” is a word of Arabic origin widely used in both mathematics and computer science. Perhaps the press has endowed the word with a mystical halo, where it speaks of the dangers of delegating tasks to algorithms, or how algorithms decide the information we see on a daily basis.

However, the definition of “algorithm” is quite mundane. This word refers to the steps one must take to solve a problem. Under this concept, a cooking recipe, or even a magical ritual can be considered as algorithms.

In this video, David J. Milan offers a brief explanation of what an algorithm is and how this concept is used in computer science.

## Learn the Big-O notation

There are different ways to solve the problem. For example, if we have dirty dishes (input), to remove dirt from all the dishes (desired output), we can either soap them all first and then rinse them, or we can soap them and rinse them one by one. But what is the most efficient solution?

Big-O notation is a way to calculate which algorithm is more efficient. In this video by Michael Sambol.