I am currently trying to complete Udacity's Data Structures and Algorithms Nanodegree in 30 days. If I do not have a certificate / the final routeplanner project uploaded here by Apr 26, 2020. Then I have failed and I deserve the burn of paying $399 out of pocket 😬.
I went through all the lessons and passed all the projects just in time, 30 days.
I leveraged Youtube and Medium a lot, some of Udacity's content was not so good in some cases so I made sure that I didn't get stuck wondering about anything on Udacity. The moment something seemed too confusing, I hit Youtube immediately.
Here are some interesting areas and the resources that helped me through them.
-
Python: The course had a brief introduction to python in the initial section, but if for whatever reason that's not sufficient, checkout https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU. You should have enough to go on when you get to lecture 50.
-
Recursion: Udacity did a great job here. But the videos at https://www.youtube.com/watch?v=_I0zspi93ow and https://www.youtube.com/watch?v=TnZHaH9i6-0&t=423s helped solidify my understanding.
-
There is an interesting exercise in the second project on Huffman coding. A basic data compression algorithm that leverages binary trees and DFS traversal. https://www.youtube.com/watch?v=JsTptu56GM8&t=269s is a great resource that completely demystified it for me. Theres really no code in the video and at the end, I was able to code the algorithm on my own. Cool stuff.
-
Basic Algorithms: Udacity did a great job on the Basic Algorithm's section, but if you want a different perspective and info on some algorithms not covered in the course. Check out this video https://www.youtube.com/watch?v=JUOyKSZScW0
-
Graph theory: I didn't really understand anything the Udacity tutor was saying on this topic until I watched these videos on Graphs and how they can be represented.
- https://www.youtube.com/watch?v=AfYqN3fGapc
- https://www.youtube.com/watch?v=ZdY1Fp9dKzs
- https://www.youtube.com/watch?v=9C2cpQZVRBA
- https://www.youtube.com/watch?v=k1wraWzqtvQ For a good explanation on Djikstra's algorithm and A*, checkout the playlist at https://www.youtube.com/watch?v=pVfj6mxhdMw&list=PLTd6ceoshprfgFGcdiQw9LQ3fXaYC-Zs2
-
Dynamic Programming: This is where things got real, For a really good intro to dynamic programming. Check out https://www.youtube.com/watch?v=iv_yHjmkv4I. Really demystifies the thing. I got stuck on the 0-1 Knapsack problem for like 2 days. I dunno why? I was obsessed with it for some reason. The article at https://medium.com/@fabianterh/how-to-solve-the-knapsack-problem-with-dynamic-programming-eb88c706d3cf helped remedy that. Then some futher study using https://www.youtube.com/watch?v=eQA-m22wjTQ&list=PLDV1Zeh2NRsDGO4--qE8yH72HFL1Km93P also helped a lot. I haven't got through the entire playlist yet but so far, its been gem!
-
A*: Pray to God and take a second look at this playlist: <https://www.youtube.com/watch?v=pVfj6mxhdMw&list=PLTd6ceoshprfgFGcdiQw9LQ3fXaYC-Zs2
I am thinking of spending some of the money I saved on Udacity at https://algoexpert.io, then I should probably finish some extra content I discovered on youtube and hit the streets of Leetcode to deepen and test my understanding of what I learnt. But that's another story.