Master the Coding Interview: Data Structures + Algorithms
-
Introduction
-
Getting More InterviewsSection Overview0sResume0sExercise: Resume Walkthrough0sResources: Resume TemplatesResume Review0sWhat If I Don’t Have Enough Experience?0sOptional Exercise: Github MasterOptional: Exercise: Github READMELinkedIn0sExercise: LinkedIn EndorsementsPortfolio0sResources: Free Portfolio TemplatesEmail0sResources: EmailWhere To Find Jobs?0sResources: Where To Find Jobs?When Should You Start Applying?0sSection Summary0sMonthly Industry Updates
-
Big OPython, Java, C/C++, C#, Go, Swift, Kotlin, TypeScript, Scala, Perl, Rust, PHPSetting Up Your Environment0sSection Overview0sBig O CheatsheetIMPORTANT: Repl CodeWhat Is Good Code?0sBig O and Scalability0sO(n)0sO(1)0sExercise: Big O CalculationSolution: Big O Calculation0sExercise: Big O Calculation 2Solution: Big O Calculation 20sSimplifying Big O0sBig O Rule 10sBig O Rule 20sBig O Rule 30sO(n^2)0sBig O Rule 40sBig O Cheat Sheet0sWhat Does This All Mean?0sO(n!)0s3 Pillars Of Programming0sSpace Complexity0sExercise: Space Complexity0sExercise: Twitter0sOptional: Javascript Loops0sSection Summary0s
-
How To Solve Coding Problems
-
Data Structures: Introduction
-
Data Structures: ArraysArrays Introduction0sStatic vs Dynamic Arrays0sQuick Note: Upcoming VideoOptional: Classes In JavaScript0sImplementing An Array0sStrings and Arrays0sExercise: Reverse A String0sSolution: Reverse A String0sExercise: Merge Sorted Arrays0sSolution: Merge Sorted Arrays0sInterview Questions: ArraysArrays Review0s
-
Data Structures: Hash TablesHash Tables Introduction0sHash Function0sHash Collisions0sHash Tables In Different Languages0sExercise: Implement A Hash Table0sSolution: Implement A Hash Table0skeys()0sExtra: keys() Without CollisionHash Tables VS Arrays0sExercise: First Recurring Character0sSolution: First Recurring Character0sInteresting Tidbit: Python DictionariesHash Tables Review0s
-
Data Structures: Linked ListsLinked Lists Introduction0sWhat Is A Linked List?0sExercise: Imposter Syndrome0sExercise: Why Linked Lists?0sSolution: Why Linked Lists?0sWhat Is A Pointer?0sOur First Linked List0sSolution: append()0sSolution: prepend()0sNode Class0sinsert()0sQuick Note: Upcoming VideoSolution: insert()0sSolution: remove()0sDoubly Linked Lists0sExercise: Doubly Linked ListsSolution: Doubly Linked Lists0sSingly VS Doubly Linked Lists0sExercise: reverse()0sSolution: reverse()0sLinked Lists Review0s
-
Data Structures: Stacks + QueuesStacks + Queues Introduction0sStacks0sQueues0sExercise: Stacks VS Queues0sSolution: Stacks VS Queues0sQuick Note: Upcoming VideoOptional: How Javascript Works0sExercise: Stack Implementation (Linked Lists)0sSolution: Stack Implementation (Linked Lists)0sExercise: Stack Implementation (Array)0sSolution: Stack Implementation (Array)0sExercise: Queue Implementation0sSolution: Queue Implementation0sQueues Using Stacks0sStacks + Queues Review0s
-
Data Structures: TreesTrees Introduction0sBinary Trees0sO(log n)0sBinary Search Trees0sBalanced VS Unbalanced BST0sBST Pros and Cons0sExercise: Binary Search Tree0sSolution: insert()0sSolution: lookup()0sExtra Exercise: remove()0sSolution: remove()0sAVL Trees + Red Black Trees0sResources: AVL Trees + Red Black TreesBinary Heaps0sQuick Note on Heaps0sPriority Queue0sTrie0sTree Review0s
-
Data Structures: Graphs
-
Algorithms: RecursionIntroduction to Algorithms0sRecursion Introduction0sStack Overflow0sAnatomy Of Recursion0sExercise: Factorial0sSolution: Factorial0sExercise: Fibonacci0sSolution: Fibonacci0sRecursive VS Iterative0sWhen To Use Recursion0sExercise: Reverse String With RecursionRecursion Review0s
-
Algorithms: SortingSorting Introduction0sThe Issue With sort()0sSorting Algorithms0sBubble Sort0sExercise: Bubble SortSolution: Bubble Sort0sExercise: Selection SortSolution: Selection Sort0sDancing Algorithms0sInsertion Sort0sExercise: Insertion SortSolution: Insertion Sort0sMerge Sort and O(n log n)0sExercise: Merge SortSolution: Merge Sort0sStable VS Unstable AlgorithmsQuick Sort0sOptional Exercise: Quick SortWhich Sort Is Best?0sResources: Heap SortRadix Sort + Counting Sort0sResources: Radix Sort + Counting SortExercise: Sorting Interview0sSolution: Sorting Interview0sSorting In Your Language0sSorting Review0s
-
Algorithms: Searching + BFS + FSSearching + Traversal Introduction0sLinear Search0sGraph + Tree Traversals0sBFS Introduction0sDFS Introduction0sBFS vs DFS0sResources: BFS vs DFSExercise: BFS vs DFS0sSolution: BFS vs DFS0sbreadthFirstSearch()0sbreadthFirstSearchRecursive()0sPreOrder, InOrder, PostOrder0sdepthFirstSearch()0sOptional Exercise: Validate A BSTGraph Traversals0sBFS in Graphs0sDFS in Graphs0sDijkstra + Bellman-Ford Algorithms0sSearching + Traversal Review0s
-
Algorithms: Dynamic Programming
-
Non Technical InterviewsSection Overview0sDuring The Interview0sExercise: Hero StoriesTell Me About Yourself0sExercise: Your PitchWhy Us?0sTell Me About A Problem You Have Solved0sExercise: Past ProjectsWhat Is Your Biggest Weakness0sExercise: Your Biggest WeaknessAny Questions For Us?0sResources: Questions To Ask A CompanySecret Weapon0sAfter The Interview0sSection Summary0s
-
Offer + Negotiation
-
Thank You
-
Extras: Google, Amazon, Facebook Interview Questions
-
Contributing To Open Source To Gain Experience
-
Extra Bits
-
Bonus Section
Want to land a job at a great tech company like Google, Microsoft, Meta, Netflix, Amazon, or other companies but you are intimidated by the interview process and the coding questions? Do you find yourself feeling like you get “stuck” every time you get asked a coding question? This course is your answer. Using the strategies, lessons, and exercises in this course, you will learn how to land offers from all sorts of companies.
Many developers who are “self taught”, feel that one of the main disadvantages they face compared to college educated graduates in computer science is the fact that they don’t have knowledge about algorithms, data structures and the notorious Big-O Notation. Get on the same level as someone with computer science degree by learning the fundamental building blocks of computer science which will give you a big boost during interviews. You will also get access to our private online chat community with thousands of developers online to help you get through the course.
Here is what you will learn in this course:
Technical:
1. Big O notation
2. Data structures:
* Arrays
* Hash Tables
* Singly Linked Lists
* Doubly Linked Lists
* Queues
* Stacks
* Trees (BST, AVL Trees, Red Black Trees, Binary Heaps)
* Tries
* Graphs
3. Algorithms:
* Recursion
* Sorting
* Searching
* Tree Traversal
* Breadth First Search
* Depth First Search
* Dynamic Programming
Non Technical:
– How to get more interviews
– What to do during interviews
– What do do after the interview
– How to answer interview questions
– How to handle offers
– How to negotiate your salary
– How to get a raise
Unlike most instructors, I am not a marketer or a salesperson. I am a senior developer and programmer who has worked and managed teams of engineers and have been in these interviews both as an interviewee as well as the interviewer.
My job as an instructor will be successful if I am able to help you become better at interviewing and land more jobs. This one skill can really change the course of your career and I hope you sign up today to see what it can do for your career!
Taught by:
Andrei is the instructor of the highest rated Web Development course on Udemy as well as one of the fastest growing. His graduates have moved on to work for some of the biggest tech companies around the world like Apple, Google, JP Morgan, IBM, etc… He has been working as a senior software developer in Silicon Valley and Toronto for many years, and is now taking all that he has learned, to teach programming skills and to help you discover the amazing career opportunities that being a developer allows in life.
Having been a self taught programmer, he understands that there is an overwhelming number of online courses, tutorials and books that are overly verbose and inadequate at teaching proper skills. Most people feel paralyzed and don’t know where to start when learning a complex subject matter, or even worse, most people don’t have $20,000 to spend on a coding bootcamp. Programming skills should be affordable and open to all. An education material should teach real life skills that are current and they should not waste a student’s valuable time. Having learned important lessons from working for Fortune 500 companies, tech startups, to even founding his own business, he is now dedicating 100% of his time to teaching others valuable software development skills in order to take control of their life and work in an exciting industry with infinite possibilities.
Andrei promises you that there are no other courses out there as comprehensive and as well explained. He believes that in order to learn anything of value, you need to start with the foundation and develop the roots of the tree. Only from there will you be able to learn concepts and specific skills(leaves) that connect to the foundation. Learning becomes exponential when structured in this way.
Taking his experience in educational psychology and coding, Andrei’s courses will take you on an understanding of complex subjects that you never thought would be possible.
See you inside the courses!
What's included
- 19.5 hours on-demand video
- 1 coding exercise
- 56 articles
- 4 downloadable resources
- Access on mobile and TV
- Certificate of completion