Master The Coding Interview Data Structures Algorithms

Ultimate coding interview bootcamp. Get more job offers, negotiate a raise: Everything you need to get the job you want!

Last updated 2022-01-10 | 4.7

- Ace coding interviews given by some of the top tech companies
- Become more confident and prepared for your next coding interview
- Learn
- implement
- and use different Data Structures

What you'll learn

Ace coding interviews given by some of the top tech companies
Become more confident and prepared for your next coding interview
Learn
implement
and use different Data Structures
Learn
implement and use different Algorithms
Get more interviews
Professionally handle offers and negotiate raises
Become a better developer by mastering computer science fundamentals

* Requirements

* No experience with data structures or algorithms needed
* Basic understanding of one programming language
* No previous computer science knowledge necessary

Description

Updated for the 2022 hiring season! Join a live online community of over 600,000+ developers and a course taught by an industry expert that has actually worked both in Silicon Valley and Toronto as a senior developer. Graduates of this course are now working at Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook + other top tech companies.

Want to land a job at a great tech company like Google, Microsoft, Facebook, 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!


Who this course is for:

  • Any engineer, developer, programmer, who wants to improve their interviewing skills
  • Anyone interested in improving their whiteboard coding skills
  • Anyone who wants to become a better developer
  • Any self taught programmer who missed out on a computer science degree

Course content

22 sections • 262 lectures

How To Succeed In This Course Preview 05:04

Join Our Online Classroom! Preview 01:15

Exercise: Meet The Community! Preview 01:16

Monthly Coding Challenges, Free Resources and Guides Preview 00:40

Section Overview Preview 05:39

Resume Preview 05:09

Exercise: Resume Walkthrough Preview 17:05

Resume Review Preview 02:37

Resources: Resume Templates Preview 00:17

What If I Don't Have Enough Experience? Preview 15:03

Optional Exercise: Github Master Preview 00:38

LinkedIn Preview 08:22

Optional Exercise: LinkedIn Endorsements Preview 00:39

Portfolio Preview 03:23

Resources: Free Portfolio Templates Preview 00:23

Email Preview 08:24

Resources: Email Preview 00:22

Where To Find Jobs? Preview 06:02

Resources: Where To Find Jobs? Preview 00:10

When Should You Start Applying? Preview 03:34

Section Summary Preview 02:17

Monthly Industry Updates Preview 00:21

Setting Up Your Environment Preview 02:53

Section Overview Preview 02:24

Python, Java, C/C++, C#, Golang, Swift, Kotlin, TypeScript, + Perl Solutions! Preview 00:43

Big O Cheatsheet Preview 00:14

What Is Good Code? Preview 06:57

Big O and Scalability Preview 11:08

O(n) Preview 05:39

O(1) Preview 06:10

Exercise: Big O Calculation Preview 00:20

Solution: Big O Calculation Preview 05:54

Exercise: Big O Calculation 2 Preview 00:28

Solution: Big O Calculation 2 Preview 02:29

Simplifying Big O Preview 01:50

Big O Rule 1 Preview 04:28

Big O Rule 2 Preview 06:36

Big O Rule 3 Preview 03:13

O(n^2) Preview 07:13

Big O Rule 4 Preview 06:47

Big O Cheat Sheet Preview 03:18

What Does This All Mean? Preview 05:32

O(n!) Preview 01:18

3 Pillars Of Programming Preview 03:32

Space Complexity Preview 02:22

Exercise: Space Complexity Preview 06:24

Exercise: Twitter Preview 07:13

Optional: Javascript Loops Preview 03:27

Section Summary Preview 04:43

Section Overview Preview 05:04

What Are Companies Looking For? Preview 03:05

What We Need For Coding Interviews Preview 03:27

Exercise: Google Interview Preview 02:31

Exercise: Interview Question Preview 20:33

Exercise: Interview Question 2 Preview 22:59

Review Google Interview Preview 01:30

Optional Exercise: Google Interview On Your Own Preview 00:35

Section Summary Preview 03:35

Section Overview Preview 01:58

What Is A Data Structure? Preview 05:53

How Computers Store Data Preview 12:33

Data Structures In Different Languages Preview 03:27

Operations On Data Structures Preview 03:05

Arrays Introduction Preview 13:51

Static vs Dynamic Arrays Preview 06:40

Quick Note: Upcoming Video Preview 00:35

Optional: Classes In Javascript Preview 24:51

Implementing An Array Preview 17:19

Strings and Arrays Preview 01:04

Exercise: Reverse A String Preview 01:35

Solution: Reverse A String Preview 10:31

Exercise: Merge Sorted Arrays Preview 00:44

Solution: Merge Sorted Arrays Preview 14:12

Interview Questions: Arrays Preview 00:25

Arrays Review Preview 03:28

Hash Tables Introduction Preview 04:10

Hash Function Preview 05:56

Hash Collisions Preview 09:43

Hash Tables In Different Languages Preview 03:30

Exercise: Implement A Hash Table Preview 03:51

Solution: Implement A Hash Table Preview 17:24

keys() Preview 06:11

Extra: keys() Without Collision Preview 00:22

Hash Tables VS Arrays Preview 02:01

Exercise: First Recurring Character Preview 01:18

Solution: First Recurring Character Preview 16:11

Interesting Tidbit: Python Dictionaries Preview 00:10

Hash Tables Review Preview 06:09

Linked Lists Introduction Preview 02:26

What Is A Linked List? Preview 04:36

Exercise: Why Linked Lists? Preview 02:05

Solution: Why Linked Lists? Preview 05:35

What Is A Pointer? Preview 05:45

Our First Linked List Preview 08:38

Solution: append() Preview 05:25

Solution: prepend() Preview 02:27

Node Class Preview 02:40

insert() Preview 05:12

Quick Note: Upcoming Video Preview 00:13

Solution: insert() Preview 13:08

Solution: remove() Preview 05:21

Doubly Linked Lists Preview 03:18

Exercise: Doubly Linked Lists Preview 00:08

Solution: Doubly Linked Lists Preview 08:50

Singly VS Doubly Linked Lists Preview 02:40

Exercise: reverse() Preview 01:30

Solution: reverse() Preview 07:38

Linked Lists Review Preview 05:07

Stacks + Queues Introduction Preview 02:58

Stacks Preview 03:28

Queues Preview 03:30

Exercise: Stacks VS Queues Preview 03:06

Solution: Stacks VS Queues Preview 03:39

Quick Note: Upcoming Video Preview 00:20

Optional: How Javascript Works Preview 24:12

Exercise: Stack Implementation (Linked Lists) Preview 02:23

Solution: Stack Implementation (Linked Lists) Preview 08:58

Exercise: Stack Implementation (Array) Preview 00:53

Solution: Stack Implementation (Array) Preview 03:56

Exercise: Queue Implementation Preview 01:48

Solution: Queue Implementation Preview 07:50

Queues Using Stacks Preview 02:04

Stacks + Queues Review Preview 02:19

Trees Introduction Preview 06:23

Binary Trees Preview 05:45

O(log n) Preview 07:00

Binary Search Trees Preview 06:12

Balanced VS Unbalanced BST Preview 03:42

BST Pros and Cons Preview 02:26

Exercise: Binary Search Tree Preview 03:57

Solution: insert() Preview 10:10

Solution: lookup() Preview 04:54

Extra Exercise: remove() Preview 02:28

Solution: remove() Preview 07:41

AVL Trees + Red Black Trees Preview 02:56

Resources: AVL Trees + Red Black Trees Preview 00:16

Binary Heaps Preview 05:36

Quick Note on Heaps Preview 01:08

Priority Queue Preview 05:27

Trie Preview 03:16

Tree Review Preview 00:51

Graphs Introduction Preview 02:28

Types Of Graphs Preview 03:32

Exercise: Guess The Graph Preview 02:45

Graph Data Preview 05:58

Exercise: Graph Implementation Preview 04:06

Solution: Graph Implementation Preview 04:50

Graphs Review Preview 02:04

Data Structures Review Preview 01:52

What Else Is Coming Up? Preview 01:53

Introduction to Algorithms Preview 03:51

Recursion Introduction Preview 05:36

Stack Overflow Preview 06:17

Anatomy Of Recursion Preview 10:27

Exercise: Factorial Preview 03:25

Solution: Factorial Preview 06:20

Exercise: Fibonacci Preview 01:59

Solution: Fibonacci Preview 11:21

Recursive VS Iterative Preview 04:16

When To Use Recursion Preview 04:00

Exercise: Reverse String With Recursion Preview 00:12

Recursion Review Preview 02:47

Sorting Introduction Preview 07:01

The Issue With sort() Preview 06:51

Sorting Algorithms Preview 03:38

Bubble Sort Preview 03:45

Exercise: Bubble Sort Preview 00:05

Solution: Bubble Sort Preview 05:06

Selection Sort Preview 02:39

Exercise: Selection Sort Preview 00:05

Solution: Selection Sort Preview 02:23

Dancing Algorithms Preview 01:36

Insertion Sort Preview 02:38

Exercise: Insertion Sort Preview 00:05

Solution: Insertion Sort Preview 02:06

Merge Sort and O(n log n) Preview 08:59

Exercise: Merge Sort Preview 00:05

Solution: Merge Sort Preview 04:44

Stable VS Unstable Algorithms Preview 00:10

Quick Sort Preview 07:40

Optional Exercise: Quick Sort Preview 00:15

Which Sort Is Best? Preview 04:40

Resources: Heap Sort Preview 00:09

Radix Sort + Counting Sort Preview 04:17

Resources: Radix Sort + Counting Sort Preview 00:02

Exercise: Sorting Interview Preview 01:27

Solution: Sorting Interview Preview 07:07

Sorting In Your Language Preview 01:27

Sorting Review Preview 02:53

Searching + Traversal Introduction Preview 01:34

Linear Search Preview 03:37

Binary Search Preview 06:05

Graph + Tree Traversals Preview 03:56

BFS Introduction Preview 02:45

DFS Introduction Preview 03:23

BFS vs DFS Preview 03:20

Resources: BFS vs DFS Preview 00:32

Exercise: BFS vs DFS Preview 00:44

Solution: BFS vs DFS Preview 03:16

breadthFirstSearch() Preview 09:15

breadthFirstSearchRecursive() Preview 05:33

PreOrder, InOrder, PostOrder Preview 05:21

depthFirstSearch() Preview 12:03

Optional Exercise: Validate A BST Preview 00:07

Graph Traversals Preview 03:53

BFS in Graphs Preview 02:07

DFS in Graphs Preview 02:49

Dijkstra + Bellman-Ford Algorithms Preview 05:11

Searching + Traversal Review Preview 04:21

Dynamic Programming Introduction Preview 01:51

Memoization 1 Preview 07:47

Memoization 2 Preview 03:56

Fibonacci and Dynamic Programming Preview 05:33

Dynamic Programming Preview 05:47

Implementing Dynamic Programming Preview 09:12

Interview Questions: Dynamic Programming Preview 00:06

Dynamic Programming Review Preview 04:45

Section Overview Preview 02:38

During The Interview Preview 09:04

Exercise: Hero Stories Preview 00:17

Tell Me About Yourself Preview 05:30

Exercise: Your Pitch Preview 00:18

Why Us? Preview 05:06

Tell Me About A Problem You Have Solved Preview 05:18

Exercise: Past Projects Preview 00:24

What Is Your Biggest Weakness Preview 02:19

Exercise: Your Biggest Weakness Preview 00:15

Any Questions For Us? Preview 03:24

Resources: Questions To Ask A Company Preview 00:04

Secret Weapon Preview 08:11

After The Interview Preview 05:24

Section Summary Preview 03:56

Section Overview Preview 02:10

Handling Rejection Preview 04:07

Negotiation 101 Preview 09:40

Handling An Offer Preview 09:03

Handling Multiple Offers Preview 07:29

Getting A Raise Preview 07:41

Exercise: Negotiation Master Preview 00:21

Section Summary Preview 02:09

Become an Alumni Preview 00:37

Thank You. Preview 00:52

What You Can Do Now Preview 00:24

Coding Problems Preview 01:25

Top Interview Questions Preview 00:54

Amazon Interview Questions Preview 02:37

Facebook Interview Questions Preview 00:33

Google Interview Questions Preview 00:34

Domain Specific Questions Preview 00:39

Contributing To Open Source Preview 14:44

Contributing To Open Source 2 Preview 09:42

Exercise: Contribute To Open Source Preview 00:32

Learning Guideline Preview 00:10

Quick Note: Upcoming Videos Preview 00:19

From JTS: Learn to Learn Preview 01:59

From JTS: Start With Why Preview 02:43

Coding Challenges Preview 00:29

How To Use Leetcode Preview 02:27

AMA - 100,000 Students!! Preview 38:30

Course Review

The Final Challenge