[DỊCH] Đừng chỉ dùng Leetcode, thay vào đó hãy làm theo các mẫu code
Điều gì sẽ xảy ra nếu bạn không muốn thực hiện hàng trăm câu hỏi về code trước cuộc phỏng vấn?
Đây là bản dịch của bài viết "Don’t Just LeetCode; Follow the Coding Patterns Instead" của tác giả Arslan Ahmad trên blog Medium. Link gốc mình sẽ để ở phần cuối bài viết này.
Điều gì sẽ xảy ra nếu bạn không muốn thực hiện hàng trăm câu hỏi về code trước cuộc phỏng vấn?

Phỏng vấn về code ngày càng khó hơn. Để chuẩn bị cho các cuộc phỏng vấn viết code, bạn sẽ cần hàng tuần, nếu không muốn nói là hàng tháng để chuẩn bị.
Không ai thực sự thích dành nhiều thời gian để chuẩn bị cho các cuộc phỏng vấn về code cả. Vậy có giải pháp nào thông minh hơn không?
Đầu tiên, chúng ta hãy nhìn vào vấn đề này.
Bất cứ ai chuẩn bị cho cuộc phỏng vấn về code chắc chắn đều biết LeetCode. Đây có lẽ là kho lưu trữ trực tuyến lớn nhất về phần code cho các câu hỏi phỏng vấn. Hãy cùng xem những vấn đề mà mọi người gặp phải khi sử dụng LeetCode.
Các vấn đề của LeetCode
Có hơn 2000 câu trong LeetCode. Thách thức lớn nhất với LeetCode là sự thiếu tổ chức; nó có rất nhiều vấn đề về code và người ta không biết nên bắt đầu từ đâu hoặc tập trung vào điều gì.
Người ta tự hỏi, liệu có đủ số lượng câu hỏi mà một người nên trải qua để chuẩn bị cho cuộc phỏng vấn viết code không?
Tôi rất muốn thấy một quy trình hợp lý hướng dẫn tôi và dạy tôi đủ các kỹ thuật thuật toán để cảm thấy tự tin khi phỏng vấn. Bản thân là một người lười biếng, tôi không muốn trả lời hơn 500 câu hỏi.
Giải pháp
Một kỹ thuật mà mọi người thường áp dụng là giải các câu hỏi liên quan đến cùng một cấu trúc dữ liệu; ví dụ: tập trung vào các câu hỏi liên quan đến Array, sau đó là LinkedList, HashMap, Heap, Tree hoặc Trie, v.v. Mặc dù điều này có tổ chức nhưng nó vẫn thiếu sự mạch lạc. Ví dụ: nhiều câu hỏi có thể được giải bằng HashMaps nhưng vẫn yêu cầu các kỹ thuật thuật toán khác nhau.
Tôi rất muốn thấy các bộ câu hỏi không chỉ tuân theo cùng cấu trúc dữ liệu mà còn cả các kỹ thuật thuật toán tương tự.
Điều tốt nhất mà tôi gặp phải là các mẫu giải quyết vấn đề như Cửa sổ trượt, Con trỏ nhanh và chậm, Sắp xếp cấu trúc liên kết, v.v. Việc làm theo các mẫu này đã giúp tôi trau dồi khả năng 'vạch ra một vấn đề mới cho một vấn đề đã biết'. Điều này không chỉ làm cho toàn bộ quá trình chuẩn bị phỏng vấn code này trở nên thú vị mà còn có tổ chức hơn rất nhiều.
Các khuôn mẫu code nâng cao “khả năng tìm ra một vấn đề mới tới một vấn đề đã biết”.
Khuôn mẫu code
Tôi đã tập hợp khoảng 20 mẫu bài toán về code mà tôi tin rằng có thể giúp bất kỳ ai tìm hiểu các kỹ thuật thuật toán tuyệt vời này và tạo ra sự khác biệt thực sự trong các cuộc phỏng vấn mã hóa.
Ý tưởng đằng sau những mẫu này là khi bạn đã quen thuộc với một mẫu, bạn sẽ có thể giải quyết hàng tá vấn đề với nó. Để biết thảo luận chi tiết về các mẫu này và các vấn đề liên quan đến giải pháp, hãy xem Grokking the Coding Interview.
Vì vậy, không dài dòng nữa, hãy để tôi liệt kê tất cả các mẫu này:
Sliding Window (Cửa sổ trượt)

Islands (Matrix Traversal) (Ma trận nghịch đảo)

Two Pointers (Hai con trỏ)

Fast & Slow Pointers (Con trỏ nhanh và chậm)


Cyclic Sort (Sắp xếp theo chu kì)

In-place Reversal of a LinkedList (Nghịch đảo một danh sách liên kết)

Tree Breadth-First Search (Tìm kiếm theo chiều rộng của cây)

Tree Depth First Search (Tìm kiếm theo chiều sâu của cây)









Fibonacci Numbers



Kết luận
Dù muốn hay không, các câu hỏi kiểu LeetCode là một phần của hầu hết mọi cuộc phỏng vấn lập trình, vì vậy mọi nhà phát triển phần mềm nên thực hành chúng trước khi phỏng vấn. Lựa chọn duy nhất của họ là chuẩn bị một cách thông minh và học cách giải quyết vấn đề bằng cách tập trung vào các dạng vấn đề tiềm ẩn. Tìm hiểu thêm về các mô hình và vấn đề mẫu này trong Grokking the Coding Interview và Grokking Dynamic Programming for Coding Interview.
Hãy xem Design Gurus để biết một số khóa học thú vị về các cuộc phỏng vấn về Code và Thiết kế Hệ thống.
P/s: Ban đầu phần hình ảnh mình định dịch sang tiếng Việt luôn nhưng mà lười quá, mình bê nguyên ảnh gốc sang :)) Btw, mình sẽ cố gắng làm nốt phần đó trong thời gian tới. Cảm ơn mọi người đã đọc bài viết này. Thank you and love you <33

Khoa học - Công nghệ
/khoa-hoc-cong-nghe
Bài viết nổi bật khác
- Hot nhất
- Mới nhất
Hãy là người đầu tiên bình luận bài viết này