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.
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
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
Stack & Queues
Hash & Maps
Graphs (BFS & DFS)
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.
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 :)