Chia Sẻ Khóa Học Vượt Qua Cuộc Phỏng Vấn JavaScript Coding [Skill Path] [Khóa 6760 A]
JavaScript là một ngôn ngữ lập trình thông dịch với khả năng hướng đến đối tượng. Đây là một trong những công nghệ cốt lõi của web development và cho phép chúng ta sử dụng nhiều framework. JavaScript tiếp tục trở nên phổ biến nhưng nó cũng tiếp tục phát triển và hỗ trợ các chức năng mới rất nhanh chóng. Lộ trình Kỹ năng này sẽ đưa bạn qua tất cả những điều bạn cần biết để tự tin thực hiện các cuộc phỏng vấn JavaScript của mình. Bạn sẽ được đề cập đến mọi thứ, từ cấu trúc dữ liệu đến thiết kế hướng đối tượng. Bạn cũng sẽ biết các pattern thiết yếu đằng sau các câu hỏi phỏng vấn coding phổ biến. Khi bạn hoàn thành, kỹ năng của bạn sẽ được trau dồi để vượt qua cuộc phỏng vấn của bất kỳ công ty nào.
Mục tiêu học tập:
- ✓ Cập nhật các cấu trúc dữ liệu, thuật toán và cú pháp quan trọng.
- ✓ Tìm hiểu các mẫu câu hỏi phỏng vấn sẽ giúp bạn trả lời bất kỳ câu hỏi coding nào.
- ✓ Thực hành trả lời hàng trăm câu hỏi phỏng vấn thực tế.
- ✓ Tìm hiểu các khái niệm và mẫu thiết kế hướng đối tượng để phân tích các vấn đề thiết kế trong thế giới thực.
Module 1: Big-O Notation:
Độ phức tạp đóng một vai trò quan trọng trong coding. Người dùng có thể gặp phải sự suy giảm khi độ phức tạp tăng lên. Đây là lý do tại sao các câu hỏi liên quan đến độ phức tạp là một phần quan trọng của các cuộc phỏng vấn lập trình. Module này là một hướng dẫn hoàn chỉnh về mức độ phức tạp khác nhau của các cấu trúc dữ liệu khác nhau. Chúng ta sẽ bắt đầu module này với các khái niệm và công thức liên quan đến độ phức tạp. Tiếp theo, chúng ta sẽ giải quyết các vấn đề khác nhau với độ phức tạp khác nhau. Chúng ta sẽ xem xét một số câu hỏi phỏng vấn liên quan đến code complexity. Cuối cùng, chúng ta sẽ xem xét một cheat sheet giúp chúng ta trả lời các câu hỏi phỏng vấn.
Mục tiêu Module:
- ✓ Nắm vững việc đánh giá thời gian chạy của thuật toán bằng cách sử dụng Big O notation.
- ✓ Hiểu các bước liên quan đến việc đánh giá một algorithm’s runtime với sự trợ giúp của các ví dụ.
Nội dung học phần này:
- ✓ 1. Complexity Problems.
- ✓ 2. Kết luận.
Module 2: Data Structures:
Cấu trúc dữ liệu là một trong những nền tảng của khoa học máy tính và thường là thành phần cốt lõi để phát triển các chương trình hiệu quả. Chúng được phân loại là chuẩn mực quan trọng về kiến thức khoa học máy tính khi nói đến các cuộc phỏng vấn trong ngành. Trong module này, chúng ta sẽ có cái nhìn tổng quan chi tiết về tất cả các cấu trúc dữ liệu phổ biến trong JavaScript. Chúng ta cũng sẽ được trang bị đầy đủ tất cả các cấu trúc dữ liệu khác nhau bằng cách triển khai chúng. Đến cuối module này, chúng ta sẽ có kiến thức chuyên môn về giải quyết các vấn đề về cấu trúc dữ liệu.
- ✓ 1. Giới thiệu về Mảng (Arrays).
- ✓ 2. Giới thiệu về Danh sách liên kết (Linked Lists).
- ✓ 3. Giới thiệu về Ngăn xếp/Hàng đợi (Stack/Queues).
- ✓ 4. Giới thiệu về Graphs.
- ✓ 5. Giới thiệu về Trees.
- ✓ 6. Trie.
- ✓ 7. Giới thiệu về Heap.
- ✓ 8. Giới thiệu về Hashing.
- ✓ 9. Kết luận.
Module 3: Đệ quy (Recursion):
Đệ quy là một phương pháp giải quyết vấn đề quan trọng. Mọi nhà phát triển đều phải giải quyết vấn đề bằng cách sử dụng đệ quy. Trong module này, chúng ta sẽ bắt đầu với những kiến thức cơ bản về đệ quy là gì và tại sao nó lại quan trọng trước khi đi sâu vào thực hành giải các câu hỏi thực tế. Chúng ta sẽ có quyền truy cập vào các giải thích chi tiết và hình ảnh trực quan cho từng vấn đề để giúp chúng ta thực hiện. Vào thời điểm chúng ta hoàn thành module này, chúng ta sẽ có thể sử dụng đệ quy để giải quyết các vấn đề phức tạp trong thế giới thực.
- ✓ 1. Recursion Problems.
- ✓ 2. Kết luận.
Module 4: Coding Interview Patterns:
Module này dạy cho chúng ta các pattern nền tảng đằng sau các câu hỏi phỏng vấn coding phổ biến. Bằng cách tìm hiểu những pattern thiết yếu này, chúng ta sẽ có thể giải và trả lời mọi vấn đề một cách đúng đắn, chỉ bằng cách đánh giá problem statement. Cách tiếp cận này được các nhà quản lý tuyển dụng của FAANG tạo ra để giúp chúng ta chuẩn bị cho các vòng phỏng vấn điển hình tại các công ty công nghệ lớn như Apple, Google, Meta, Microsoft và Amazon.
Đến cuối module này, chúng ta sẽ có những kỹ năng cần thiết để giải đáp ngay cả những câu hỏi khó nhất, vượt qua cuộc phỏng vấn coding và tự tin thăng tiến trong sự nghiệp.
Mục tiêu Module:
- ✓ Hiểu biết về các pattern thiết yếu đằng sau các câu hỏi phỏng vấn coding phổ biến mà không cần phải đi sâu vô số vấn đề.
- ✓ Khả năng xác định pattern cơ bản của từng câu hỏi phỏng vấn bằng cách đánh giá problem statement.
- ✓ Có khả năng áp dụng các thủ thuật cần thiết để giải quyết các câu hỏi phỏng vấn.
- ✓ Khả năng đánh giá hiệu quả sự cân bằng giữa time và space complexity trong các giải pháp khác nhau.
- ✓ Khả năng phát triển một flexible conceptual framework cho bất kỳ câu hỏi nào, bằng cách kết nối problem characteristics, solution techniques, và coding design patterns.
Nội dung học phần này:
- ✓ 1. Sliding Window.
- ✓ 2. Two Pointers.
- ✓ 3. Fast and Slow Pointers.
- ✓ 4. Merge Intervals.
- ✓ 5. In-place Reversal of a Linked List.
- ✓ 6. Two Heaps.
- ✓ 7. K-way merge.
- ✓ 8. Top K Elements.
- ✓ 9. Modified Binary Search.
- ✓ 10. Subsets.
- ✓ 11. Greedy Techniques.
- ✓ 12. Backtracking.
- ✓ 13. Dynamic Programming.
- ✓ 14. Cyclic Sort.
- ✓ 15. Topological Sort.
- ✓ 16. Matrices.
- ✓ 17. Stacks.
- ✓ 18. Graphs.
- ✓ 19. Tree Depth First Search.
- ✓ 20. Tree Breadth First Search.
- ✓ 21. Trie.
- ✓ 22. Hash Maps.
- ✓ 23. Knowing What to Track.
- ✓ 24. Union Find.
- ✓ 25. Custom Data Structures.
- ✓ 26. Bitwise Manipulation.
- ✓ 27. Challenge Yourself.
- ✓ 28. Kết luận.
Module 5: Object Oriented Design:
Trong module này, chúng ta sẽ tìm hiểu các nền tảng của thiết kế hướng đối tượng với một loạt các vấn đề trong thế giới thực để giúp chúng ta chuẩn bị cho phần OOD của quy trình phỏng vấn kỹ thuật phần mềm điển hình tại các công ty công nghệ lớn như Apple, Google, Meta, Microsoft và Amazon. Đến cuối module này, chúng ta sẽ hiểu được các khái niệm hướng đối tượng thiết yếu như design principles và patterns để vượt qua cuộc phỏng vấn OOD. Chúng ta sẽ phát triển khả năng chia nhỏ vấn đề thiết kế cuộc phỏng vấn thành nhiều phần một cách hiệu quả bằng cách sử dụng bottom-up approach. Chúng ta sẽ làm quen với phạm vi của từng vấn đề phỏng vấn bằng cách xác định chính xác các yêu cầu và trình bày giải pháp của nó bằng cách sử dụng class, use case, sequence, và activity diagrams.
Mục tiêu Module:
- ✓ Hiểu biết về các khái niệm hướng đối tượng thiết yếu như design principles và patterns để vượt qua cuộc phỏng vấn OOD.
- ✓ Khả năng chia nhỏ vấn đề thiết kế cuộc phỏng vấn thành nhiều phần một cách hiệu quả bằng cách sử dụng phương pháp bottom-up.
- ✓ Làm quen với phạm vi của từng vấn đề phỏng vấn bằng cách xác định chính xác các yêu cầu và trình bày giải pháp của nó.
- ✓ Khả năng design class, use case, sequence, và activity diagrams của các interview problem.
- ✓ Kinh nghiệm thực hành để tạo sequence và activity diagram cho các interview problem.
Nội dung học phần này:
- ✓ 1. Nền tảng của Object-oriented Programming.
- ✓ 2. Object-oriented Design.
- ✓ 3. Object-oriented Design Principles.
- ✓ 4. Design Patterns.
- ✓ 5. Real-world Design Problems.
- ✓ 6. Thiết kế một Parking Lot.
- ✓ 7. Thiết kế một Elevator System.
- ✓ 8. Thiết kế một Library Management System.
- ✓ 9. Thiết kế Amazon Locker Service.
- ✓ 10. Thiết kế một Vending Machine.
- ✓ 11. Thiết kế một Online Blackjack Game.
- ✓ 12. Thiết kế một Meeting Scheduler.
- ✓ 13. Thiết kế một Movie Ticket Booking System.
- ✓ 14. Thiết kế một Car Rental System.
- ✓ 15. Thiết kế ATM.
- ✓ 16. Thiết kế một Chess Game.
- ✓ 17. Thiết kế một Hotel Management System.
- ✓ 18. Thiết kế Amazon Online Shopping System.
- ✓ 19. Thiết kế Stack Overflow.
- ✓ 20. Thiết kế một Restaurant Management System.
- ✓ 21. Thiết kế Facebook.
- ✓ 22. Thiết kế một Online Stock Brokerage System.
- ✓ 23. Thiết kế một Jigsaw Puzzle.
- ✓ 24. Thiết kế một Airline Management System.
- ✓ 25. Thiết kế Cricinfo.
- ✓ 26. Thiết kế LinkedIn.
- ✓ 27. Kết luận.
NHẬN GET EBOOK TRÊN AMAZON THEO YÊU CẦU