Learn in Public: Data Structures & Algorithms in Python
Kat šš¾
Posted on November 20, 2019
I am currently working on becoming more proficient in Data Structures and Algorithms - both for the sake of interviewing and to become a better engineer.
In the following weeks and months, I'll share with you what I've learned along my journey. The content will include:
- The theory and application of Data Structures & Algorithms.
- My interviewing experience, tips, and tricks.
- Fun problems you can solve using what we've learned.
āļøPlease share any additional resources that you'd recommend, and topics that I forgot to add in the comments below!
Learning Method
I love learning, but I am not an efficient student. I am great at "consuming" material, like taking courses and going through tutorials. But if you ask me to explain what I've learned, I wouldn't be able to do so. I would say "it just slips my mind", but truth be told I never do the work to commit the material into my long term memory.
This time it is going to be different, and I am going to utilize the following two strategies to improve my retention of what I've learned:
- Use scientific methods for efficient learning.
- Following the idea of learning in public, I am going to summarize and share what I'm learning along the way. Learning by teaching makes sure you truly understand the material.
List of Resources
For now, let's start with a summary of resources and a list of topics we'll cover in the following weeks and months.
This is not an exhaustive list of all the resources that are available on the WWW, but rather a list of courses I find intriguing, and the books I own.
Legend to indicate where I'm at:
āļø: Currently working on
ā
: Done
š¤: Done, but needs a refresher
This is a living list, meaning I'll be coming back and updating it as I work through the material.
Data Structure & Algorithm Courses
- Coursera
- Algorithms Specialization, Stanford
- Data Structures & Algorithms Specialization, University of California San Diego
- Algorithms, Part I, Princeton University š¤
- Algorithms, Part II, Princeton University
- Udacity
Books
- Theory
- Practice Problems
Websites
- CodeSignal āļø
- Pramp, these are actual mock interviews with real people. You get to experience both sides: Being the interviewee as well as interviewing your peers.
Content
- Analyzing Algorithms
- Asymptotic Notation
- Amortized Analysis
- Probabilistic Analysis & Randomized Algorithms
- Data Structures
- Arrays & Linked Lists āļø
- Stacks & Queues
- Hash Tables
- Trees
- Binary Search Trees
- Red-Black Trees
- B-Trees
- Binomial Trees & Binomial Heaps
- Fibonacci Heaps
- Data Structures for Disjoint Sets
- Recursion
- Sorting & Order Algorithms
- Heapsort
- Quicksort
- Sorting in Linear Time
- Graph Algorithms
- Breadth-first search (BFS)
- Depth-first search (DFS)
- Topological Sort
- Minimum Spanning Trees
- Single-Source Shortest Paths
- All-Pairs Shortest Paths
- Maximum Flow
- Dynamic Programming
- Greedy Algorithms
- Linear Programming
- Sorting Networks
- Matrix Operations
- Polynomials & the FFT
- Number-Theoretic Algorithms
- String Matching
- Computational Geometry
- NP-Completeness
- Approximation Algorithms
- Maps & Hashing
- Tries
- Heaps
- Divide & Conquer
- A*
Posted on November 20, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.