Algorithms
Algorithms
Younes Fadil
Barmij Academy
© Barmij Academy
All Rights Reserved
The information provided in the “Roadmap to Becoming a Data Analyst” Cheat Sheet is for general
informational and educational purposes only. It is distributed free of charge and is not to be sold. While we
strive to keep the information up to date and correct, we make no representations or warranties of any kind,
expressed or implied, about the completeness, accuracy, reliability, suitability, or availability with respect to
the Cheat Sheet or the information, products, services, or related graphics contained in the Cheat Sheet for any
purpose. Any reliance you place on such information is therefore strictly at your own risk.
This Cheat Sheet is provided as a free resource and is not intended to be a substitute for professional advice.
Before taking any actions based on such information, we encourage you to consult with the appropriate
professionals. The use of this Cheat Sheet is at your own discretion and risk.
In no event will we be liable for any loss or damage including without limitation, indirect or consequential
loss or damage, or any loss or damage whatsoever arising from loss of data or profits arising out of, or in
connection with, the use of this Cheat Sheet.
Through this Cheat Sheet, you might be able to link to other websites which are not under the control of
Barmij Academy or its members. We have no control over the nature, content, and availability of those sites.
The inclusion of any links does not necessarily imply a recommendation or endorse the views expressed
within them.
Every effort is made to keep the Cheat Sheet up to date. However, Barmij Academy and its members take no
responsibility for, and will not be liable for, the Cheat Sheet being temporarily unavailable due to technical
issues beyond our control.
ROADMAP TO BECOMING A DATA ANALYST
TABLE OF CONTENTS
PAGE 3 OF 7
Copyright © 2022 – Barmij Academy
ROADMAP TO BECOMING A DATA ANALYST
ALGORITHMS MASTERY
The videos are in English but you can add automatic translation to Arabic if
you wish to.
PAGE 4 OF 7
Copyright © 2022 – Barmij Academy
ROADMAP TO BECOMING A DATA ANALYST
This video from MIT OpenCourseWare explains in details the different types of
algorithms (Sort, Search)
https://www.youtube.com/watch?v=6LOwPhPDwVc
Also, this free online book is a valuable resource to learn more about Algorithms in
general
PAGE 5 OF 7
Copyright © 2022 – Barmij Academy
ROADMAP TO BECOMING A DATA ANALYST
Practice
Once you grasp the concepts of the core algorithms, you have to put them into practice.
The following online platform offer a range of problems from beginner to advanced levels
where you can hone your abilities.
LeetCode: https://leetcode.com/
HackerRank: https://www.hackerrank.com/
CodeWars: https://www.codewars.com/
Codeforces: https://codeforces.com/problemset
Remember, when solving problems on these platforms, try solving the problems on
your own before resorting to hints or solutions. This will help you build problem-
solving muscle.
1. Divide and Conquer (D&C): This technique breaks down a problem into smaller,
independent subproblems that are identical or similar to the original problem. It
follows these steps:
o Divide: Break the problem into smaller subproblems.
o Conquer: Solve each subproblem recursively (calling the function itself) or
directly.
o Combine: Combine the solutions of the subproblems to get the solution to the
original problem.
• Applications: Sorting (Merge Sort, Quick Sort), Searching (Binary Search), etc.
2. Greedy Algorithms: These algorithms make the optimal choice at each step with the
hope of finding a global optimum solution. They are well-suited for problems where
a locally optimal choice also leads to a global optimal solution.
PAGE 6 OF 7
Copyright © 2022 – Barmij Academy
ROADMAP TO BECOMING A DATA ANALYST
5. Brute Force: This is a straightforward approach where you try all possible solutions
systematically until you find the desired one. It can be inefficient for large problem
sizes.
These are just a few examples, and the choice of technique depends on the specific
problem you are trying to solve.
Happy Coding.
PAGE 7 OF 7
Copyright © 2022 – Barmij Academy