Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Master the Coding Interview: Data Structures + Algorithms

Thành thạo Phỏng vấn Coding: Cấu trúc Dữ liệu + Thuật toán

Thành thạo Phỏng vấn Coding: Cấu trúc Dữ liệu + Thuật toán

Khóa học bootcamp phỏng vấn coding toàn diện. Nhận nhiều offer hơn, thương lượng tăng lương: Mọi thứ bạn cần để có công việc mơ ước!

4.7
(40,341 đánh giá)
259,185 học viên
Giảng viên
Andrei Neagoie
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 1.719.000đ -97%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
20.0 giờ video
267 bài giảng
2 bài quiz
1 bài coding
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 04/08/2026

Bạn sẽ học được gì

Chinh phục các buổi phỏng vấn coding từ những công ty công nghệ hàng đầu
Tự tin và chuẩn bị tốt hơn cho buổi phỏng vấn coding tiếp theo
Học, triển khai và sử dụng các Cấu trúc Dữ liệu khác nhau
Học, triển khai và sử dụng các Thuật toán khác nhau
Nhận được nhiều cơ hội phỏng vấn hơn
Xử lý offer chuyên nghiệp và thương lượng tăng lương
Trở thành developer giỏi hơn bằng cách nắm vững kiến thức nền tảng khoa học máy tính
Code Github cung cấp bằng: JavaScript, Python, Java, C/C++, C#, Golang, Swift, Kotlin, TypeScript, Scala, Rust, Perl, PHP

Yêu cầu

Không cần kinh nghiệm trước về cấu trúc dữ liệu hoặc thuật toán
Hiểu biết cơ bản về một ngôn ngữ lập trình
Không cần kiến thức khoa học máy tính trước đó

Đối tượng phù hợp

Dành cho kỹ sư, developer, lập trình viên muốn cải thiện kỹ năng phỏng vấn
Dành cho bất kỳ ai muốn cải thiện kỹ năng coding trên bảng trắng (whiteboard)
Dành cho bất kỳ ai muốn trở thành developer giỏi hơn
Dành cho lập trình viên tự học chưa có bằng khoa học máy tính

Nội dung khóa học

22 phần • 267 bài giảng
1 Cách học hiệu quả với khóa học này
2 Tham gia lớp học trực tuyến của chúng tôi!
3 Bài tập: Gặp gỡ bạn học và giảng viên
4 Tài nguyên ZTM
5 Thử thách Coding hàng tháng, Tài nguyên và Hướng dẫn miễn phí
1 Tổng quan phần
2 CV (Sơ yếu lý lịch)
3 Bài tập: Hướng dẫn chi tiết CV
4 Tài nguyên: Mẫu CV
5 Đánh giá CV
6 Làm gì nếu tôi không có đủ kinh nghiệm?
7 Bài tập tùy chọn: Bậc thầy Github
8 Tùy chọn: Bài tập: Github README
9 LinkedIn
10 Bài tập: Chứng nhận kỹ năng trên LinkedIn
11 Portfolio (Hồ sơ năng lực)
12 Tài nguyên: Mẫu Portfolio miễn phí
13 Lưu ý nhanh: Video sắp tới
14 Portfolio với A.I.
15 Email
16 Tài nguyên: Email
17 Tìm việc ở đâu?
18 Tài nguyên: Tìm việc ở đâu?
19 Khi nào nên bắt đầu ứng tuyển?
20 Tóm tắt phần
21 Cập nhật ngành hàng tháng
1 Python, Java, C/C++, C#, Go, Swift, Kotlin, TypeScript, Scala, Perl, Rust, PHP
2 Tổng quan phần
3 Big O Cheatsheet
4 Thiết lập môi trường
5 QUAN TRỌNG: Repl Code
6 Code tốt là gì?
7 Big O và khả năng mở rộng (Scalability)
8 O(n)
9 O(1)
10 Bài tập: Tính toán Big O
11 Lời giải: Tính toán Big O
12 Bài tập: Tính toán Big O 2
13 Lời giải: Tính toán Big O 2
14 Đơn giản hóa Big O
15 Quy tắc Big O 1
16 Quy tắc Big O 2
17 Quy tắc Big O 3
18 O(n^2)
19 Quy tắc Big O 4
20 Big O Cheat Sheet
21 Tất cả điều này có ý nghĩa gì?
22 O(n!)
23 3 trụ cột của lập trình
24 Độ phức tạp bộ nhớ (Space Complexity)
25 Bài tập: Độ phức tạp bộ nhớ
26 Bài tập: Twitter
27 Tùy chọn: Vòng lặp Javascript
28 Tóm tắt phần
1 Tổng quan phần
2 Các công ty đang tìm kiếm điều gì?
3 Những gì chúng ta cần cho phỏng vấn coding
4 Bài tập: Phỏng vấn Google
5 Bài tập: Câu hỏi phỏng vấn
6 Bài tập: Câu hỏi phỏng vấn 2
7 Xem lại phỏng vấn Google
8 Bài tập tùy chọn: Tự thực hành phỏng vấn Google
9 Tóm tắt phần
1 Tổng quan phần
2 Cấu trúc Dữ liệu là gì?
3 Cách máy tính lưu trữ dữ liệu
4 Cấu trúc Dữ liệu trong các ngôn ngữ khác nhau
5 Các thao tác trên Cấu trúc Dữ liệu
1 Giới thiệu về Mảng
2 Mảng tĩnh (Static) vs Mảng động (Dynamic)
3 Lưu ý nhanh: Video sắp tới
4 Tùy chọn: Lớp (Classes) trong Javascript
5 Triển khai một Mảng
6 Chuỗi (Strings) và Mảng
7 Bài tập: Đảo ngược một Chuỗi
8 Lời giải: Đảo ngược một Chuỗi
9 Bài tập: Hợp nhất các Mảng đã sắp xếp
10 Lời giải: Hợp nhất các Mảng đã sắp xếp
11 Câu hỏi phỏng vấn: Mảng
12 Ôn tập về Mảng
1 Giới thiệu về Bảng băm
2 Hàm băm (Hash Function)
3 Xung đột băm (Hash Collisions)
4 Bảng băm trong các ngôn ngữ khác nhau
5 Bài tập: Triển khai một Bảng băm
6 Lời giải: Triển khai một Bảng băm
7 keys()
8 Thêm: keys() Không xung đột
9 Bảng băm VS Mảng
10 Bài tập: Ký tự lặp lại đầu tiên
11 Lời giải: Ký tự lặp lại đầu tiên
12 Điều thú vị: Python Dictionaries
13 Ôn tập về Bảng băm
1 Giới thiệu về Danh sách liên kết
2 Danh sách liên kết là gì?
3 Bài tập: Hội chứng kẻ mạo danh (Imposter Syndrome)
4 Bài tập: Tại sao cần Danh sách liên kết?
5 Lời giải: Tại sao cần Danh sách liên kết?
6 Con trỏ (Pointer) là gì?
7 Danh sách liên kết đầu tiên của chúng ta
8 Lời giải: append()
9 Lời giải: prepend()
10 Lớp Node
11 insert()
12 Lưu ý nhanh: Video sắp tới
13 Lời giải: insert()
14 Lời giải: remove()
15 Danh sách liên kết đôi (Doubly Linked Lists)
16 Bài tập: Danh sách liên kết đôi
17 Lời giải: Danh sách liên kết đôi
18 Danh sách liên kết đơn (Singly) VS Danh sách liên kết đôi
19 Bài tập: reverse()
20 Lời giải: reverse()
21 Ôn tập về Danh sách liên kết
1 Giới thiệu về Ngăn xếp + Hàng đợi
2 Ngăn xếp (Stacks)
3 Hàng đợi (Queues)
4 Bài tập: Ngăn xếp VS Hàng đợi
5 Lời giải: Ngăn xếp VS Hàng đợi
6 Lưu ý nhanh: Video sắp tới
7 Tùy chọn: Cách Javascript hoạt động
8 Bài tập: Triển khai Ngăn xếp (Danh sách liên kết)
9 Lời giải: Triển khai Ngăn xếp (Danh sách liên kết)
10 Bài tập: Triển khai Ngăn xếp (Mảng)
11 Lời giải: Triển khai Ngăn xếp (Mảng)
12 Bài tập: Triển khai Hàng đợi
13 Lời giải: Triển khai Hàng đợi
14 Hàng đợi sử dụng Ngăn xếp
15 Ôn tập về Ngăn xếp + Hàng đợi
1 Giới thiệu về Cây
2 Cây nhị phân (Binary Trees)
3 O(log n)
4 Cây tìm kiếm nhị phân (Binary Search Trees)
5 Cây BST cân bằng (Balanced) VS không cân bằng (Unbalanced)
6 Ưu nhược điểm của BST
7 Bài tập: Cây tìm kiếm nhị phân
8 Lời giải: insert()
9 Lời giải: lookup()
10 Bài tập thêm: remove()
11 Lời giải: remove()
12 Cây AVL + Cây Đỏ-Đen (Red Black Trees)
13 Tài nguyên: Cây AVL + Cây Đỏ-Đen
14 Đống nhị phân (Binary Heaps)
15 Lưu ý nhanh về Heaps
16 Hàng đợi ưu tiên (Priority Queue)
17 Cây tiền tố (Trie)
18 Ôn tập về Cây
1 Giới thiệu về Đồ thị
2 Các loại Đồ thị
3 Bài tập: Đoán Đồ thị
4 Dữ liệu Đồ thị
5 Bài tập: Triển khai Đồ thị
6 Lời giải: Triển khai Đồ thị
7 Ôn tập về Đồ thị
8 Ôn tập về Cấu trúc Dữ liệu
9 Những gì sắp tới?
1 Giới thiệu về Thuật toán
2 Giới thiệu về Đệ quy
3 Tràn ngăn xếp (Stack Overflow)
4 Cấu trúc của Đệ quy
5 Bài tập: Giai thừa (Factorial)
6 Lời giải: Giai thừa
7 Bài tập: Fibonacci
8 Lời giải: Fibonacci
9 Đệ quy (Recursive) VS Lặp (Iterative)
10 Khi nào sử dụng Đệ quy
11 Bài tập: Đảo ngược Chuỗi bằng Đệ quy
12 Ôn tập về Đệ quy
1 Giới thiệu về Sắp xếp
2 Vấn đề với hàm sort()
3 Thuật toán Sắp xếp
4 Sắp xếp Nổi bọt
5 Bài tập: Sắp xếp Nổi bọt
6 Lời giải: Sắp xếp Nổi bọt
7 Sắp xếp Chọn
8 Bài tập: Sắp xếp Chọn
9 Lời giải: Sắp xếp Chọn
10 Thuật toán Trình diễn
11 Sắp xếp Chèn
12 Bài tập: Sắp xếp Chèn
13 Lời giải: Sắp xếp Chèn
14 Sắp xếp Trộn và O(n log n)
15 Bài tập: Sắp xếp Trộn
16 Lời giải: Sắp xếp Trộn
17 Thuật toán Ổn định và Không ổn định
18 Sắp xếp Nhanh
19 Bài tập Tùy chọn: Sắp xếp Nhanh
20 Thuật toán Sắp xếp nào Tốt nhất?
21 Tài liệu: Sắp xếp Vun đống
22 Sắp xếp Cơ số + Sắp xếp Đếm
23 Tài liệu: Sắp xếp Cơ số + Sắp xếp Đếm
24 Bài tập: Phỏng vấn về Sắp xếp
25 Lời giải: Phỏng vấn về Sắp xếp
26 Sắp xếp trong Ngôn ngữ của Bạn
27 Ôn tập Sắp xếp
1 Giới thiệu Tìm kiếm + Duyệt
2 Tìm kiếm Tuyến tính
3 Tìm kiếm Nhị phân
4 Duyệt Đồ thị + Cây
5 Giới thiệu BFS
6 Giới thiệu DFS
7 BFS so với DFS
8 Tài liệu: BFS so với DFS
9 Bài tập: BFS so với DFS
10 Lời giải: BFS so với DFS
11 breadthFirstSearch()
12 breadthFirstSearchRecursive()
13 PreOrder, InOrder, PostOrder
14 depthFirstSearch()
15 Bài tập Tùy chọn: Kiểm tra BST hợp lệ
16 Duyệt Đồ thị
17 BFS trong Đồ thị
18 DFS trong Đồ thị
19 Thuật toán Dijkstra + Bellman-Ford
20 Ôn tập Tìm kiếm + Duyệt
1 Giới thiệu Quy hoạch Động
2 Ghi nhớ 1
3 Ghi nhớ 2
4 Fibonacci và Quy hoạch Động
5 Quy hoạch Động
6 Triển khai Quy hoạch Động
7 Câu hỏi Phỏng vấn: Quy hoạch Động
8 Ôn tập Quy hoạch Động
1 Tổng quan Phần
2 Trong buổi Phỏng vấn
3 Bài tập: Câu chuyện Anh hùng
4 Hãy kể về Bản thân Bạn
5 Bài tập: Bài thuyết trình của Bạn
6 Tại sao Chọn Chúng tôi?
7 Kể về Một vấn đề Bạn đã Giải quyết
8 Bài tập: Dự án trong Quá khứ
9 Điểm yếu Lớn nhất của Bạn là gì
10 Bài tập: Điểm yếu Lớn nhất của Bạn
11 Bạn có Câu hỏi nào cho Chúng tôi không?
12 Tài liệu: Câu hỏi để Hỏi một Công ty
13 Vũ khí Bí mật
14 Sau buổi Phỏng vấn
15 Tóm tắt Phần
1 Tổng quan Phần
2 Đối mặt với Sự từ chối
3 Cơ bản về Thương lượng
4 Xử lý một Đề nghị
5 Xử lý Nhiều đề nghị
6 Đề nghị Tăng lương
7 Bài tập: Bậc thầy Thương lượng
8 Tóm tắt Phần
1 Trở thành Cựu học viên
2 Cảm ơn.
3 Những điều Bạn có thể Làm bây giờ
1 Bài toán Lập trình
2 Câu hỏi Phỏng vấn Hàng đầu
3 Câu hỏi Phỏng vấn Amazon
4 Câu hỏi Phỏng vấn Facebook
5 Câu hỏi Phỏng vấn Google
6 Câu hỏi Chuyên ngành Cụ thể
1 Đóng góp cho Mã nguồn Mở
2 Đóng góp cho Mã nguồn Mở 2
3 Bài tập: Đóng góp cho Mã nguồn Mở
1 Hướng dẫn Học tập
2 Lưu ý Nhanh: Video sắp tới
3 Từ JTS: Học cách Học
4 Từ JTS: Bắt đầu với Tại sao
5 Thử thách Lập trình
6 Cách sử dụng Leetcode
7 Một Video cũ dành cho Bạn
8 Hỏi Đáp - 100,000 Học viên!!
1 Bài giảng Thưởng Đặc biệt

Giới thiệu khóa học

Updated for the 2023 hiring season! Join a live online community of over 900,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, Meta + other top tech companies.

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!


Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Algorithms
Hiển thị tất cả khoá học Computer Science
Hiển thị tất cả khoá học Data Structures
Clean Code

Clean Code

Academind by Maximilian Schwarzmüller

4.6 (26435)
118,068
50.000đ -88%
Hiển thị tất cả khoá học Software Engineering
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊