Intro
We want to provide some guidelines on how to prepare for our selection process which is similar to internship interviews, but easier.
We are aware that in many schools in Spain don't teach basics of algorithm/data structures, and we want to cover that in here. Take a look at our recommendations.
Howto
We recommend you to organize your study around themes. We have provided a checklist of exercises to build a super strong knowledge. Once you feel comfortable with all topics, you should start mixing exercises from each topic up + researching on general tips for coding questions. The questions that we will be asking in the test will be very similar to the ones that you are going to practice with (but you will have a timer ;))
Don't give up in the exercise and keep trying until you pass all tests. If you get stuck, feel free to check the solution in this github repository.
Before jumping off. Something to keep in mind all the time, is how to analyze how good a solution is. One of the things to measure in here is how long it takes your solution to run. Watch this video to get familiar with Big O notation
Themes
Topic 1 → Arrays & Strings
Topic 2 → Lists
Topic 3 → Stacks & Queues
Topic 4 → Hash & Maps
Topic 5 → Sorting Algorithms
Topic 6 → Trees
Topic 7 → Graphs (BFS & DFS)
Topic 8 → Recursion

Arrays & Strings
Exercises
 [Warm Up  Learn how to use Hackerrank] A Very Big Sum
 Designer PDF Viewer
 Left Rotation
 Sparse Arrays 
Lists
Pre work:
You need to become familiar with what a LinkedList is and how they work
 View this video
 Read this
 Take a look at this tutorialExercises:
 [Warm up] Insert a Node at the tail of a LinkedList
 Insert a Node at a position given a list
 Merge two sorted Linked List
 Cycle Detection 
Stack & Queues
Pre work:
 Watch this video
 Take a quick look to this tutorialExercises:
 Balanced Brackets
 Queue using two stacks
 Waiter. Be aware that you will need the list of number of primes for this exercise 
Hash & Maps
Prework:
 Watch this video
 Read this resource
 Review these concepts on time and space complexityExercises:
 Migratory birds
 Ice Cream Parlor
 Missing Numbers
 Colorful Number  This one is really hard. I will not judge you if you look at the solution. We will not go as hard as this in our code challenge. 
Sorting Algorithms
Prework:
 Bubble Sort
 Merge Sort
 Quick SortExercises:
 Insertion Sort part 1
 Insertion Sort part 2
 Correctness and the Loop Invariant
 Quicksort part 1
 Running Time of Algorithms
 Quicksort part 2 
Trees
Prework:
 Watch this video to become familiar with Trees
 Binary Search Tree
 Watch this video about Heaps to do the 5th exerciseExercises:
 Preorder traversal
 Postorder traversal
 Binary Tree Insertion
 Height of a binary tree
 QHeap1
 Swap Nodes 
Graphs (BFS & DFS)

Recursion
Alternatives to this Material
HackerRank's 30 days of Code
Find it here. It could be a little bit more basic than this guide at the beginning.
Udacity's Course
Find here their Technical Interview Course. If you are into courses, you might rather do this.
Cracking the Coding Interview
This book is to prepare for the interviews at Google, Facebook, etc. once you are trying to become a full time employee. It is more advanced than our coursework
Frequently Asked Questions
What language should I choose?
Our advice is for you to choose the one that you are most comfortable with
Shall I read a book on algorithms?
Is always good to read these books, but you have to manage your time wisely. I would rather practice timed exercises on pages like HackerRank than reading a book.
Are you going to ask an algorithm such as Knapsack or Traveling salesman? How far should I be studying for?
We will not go very deep on algorithms for our selection process. These could be good as extra for the internship selection process. But I would prioritize other type of exercises, like mastering Searching or Trees before these ones.
What should I have doubts on what type of problems to practice?
You can always shoot us a message on our Facebook page to solve further doubts.
What is the estimate on study time for each week?
We recommend to spend approximately 9 hours per Topic. The more the merrier :)