Quá trình phỏng vấn về lập trình thường là khó và quá trình chuẩn bị không hề dễ dàng đối với các developers. Để chuẩn bị cho các cuộc phỏng vấn các developers thường dành rất nhiều thời gian để chuẩn bị. Tại hầu hết các công ty công nghệ, phần phỏng vấn về kỹ thuật chiếm đa số thời gian trong quá trình phỏng vấn.
LeetCode là một công cụ phổ biến mà các developers thường sử dụng để chuẩn bị cho các cuộc phỏng vấn kỹ thuật. Trong bài viết này chúng ta sẽ xem xét chi tiết về LeetCode cùng với những ưu điểm và nhược điểm của công cụ này. Chúng ta cũng sẽ thảo luận về các lựa chọn thay thế cho Leetcode để chuẩn bị cho các cuộc phỏng vấn về lập trình. Trên thực tế, dù Leetcode rất phổ biến, cũng không ít lập trình viên không thích công cụ này.
LeetCode là gì?
LeetCode là một trang web nơi mọi người có thể thực hành giải quyết các vấn đề về viết code và chuẩn bị cho các cuộc phỏng vấn kỹ thuật. Người dùng chính của họ là các kỹ sư phần mềm. LeetCode có hơn 1.900 (và ngày càng tăng lên) câu hỏi để bạn thực hành, bao gồm nhiều khái niệm lập trình khác nhau. Mọi vấn đề về lập trình đều được phân loại theo các cấp độ Dễ, Trung bình hoặc Khó (Easy, Medium, Hard)
Các vấn đề để giải quyết tập trung vào thuật toán và cấu trúc dữ liệu. Dưới đây là một số vấn đề ví dụ bạn có thể tìm thấy trên LeetCode:
- Anagrams
- Binary Search Tree (BST)
- Level order traversal
- Linked lists
- Longest substring without repeating characters
- Palindromes
- Path sum
- Two sum
- Sorted arrays
- Sorted lists
- Subsequences
- Valid parentheses
- 2D matrix
Ưu điểm của LeetCode
Nhiều ngôn ngữ lập trình
Các câu hỏi LeetCode hỗ trợ nhiều ngôn ngữ lập trình, cho phép bạn thực hành bằng các ngôn ngữ bạn sử dụng.
Các ngôn ngữ được hỗ trợ:
Cộng đồng hữu ích và tích cực
LeetCode có một cộng đồng lớn và năng động. Cộng đồng này cung cấp cho người dùng một nền tảng tuyệt vời để tương tác với các nhà phát triển khác, hiểu rõ hơn về cách các nhà phát triển khác đang giải quyết vấn đề và học hỏi từ những sai lầm của họ.
Nhược điểm của LeetCode
Chỉ tập trung vào viết code
Để được các công ty công nghệ tuyển dụng, bạn phải là một lập trình viên vượt trội và biết cách tạo ra ấn tượng. Tuy vậy, trở thành một lập trình viên giỏi không phải là điều quan trọng duy nhất. LeetCode là một nguồn tài nguyên hữu ích để thực hành các vấn đề về lập trình nhưng không có các kỹ năng mềm.
Kỹ năng mềm ngày càng trở nên quan trọng trong ngành công nghệ. Các công ty ngày nay tìm kiếm những lập trình viên, các nhà quả lý có khả năng giao tiếp tốt, có kỹ năng giải quyết vấn đề, có kỹ năng làm việc nhóm… . Đây là những kỹ năng bạn không thể học được với LeetCode.
Hãy nhớ rằng khi tham dự phỏng vấn về lập trình, bạn đang chỉ được đánh giá dựa trên khả năng lập trình của mình mà còn về sự phù hợp với đội ngũ, công ty mới hay không.
Những ứng viên không nhận được lời mời làm việc không hẳn là những ứng viên tồi. Bạn có thể đạt điểm cao với những bài kiểm tra về lập trình, có một profile hoành tráng, đã từng theo học tại một trường đại học danh tiếng và dành nhiều thời gian để chuẩn bị cho các cuộc phỏng vấn của họ, nhưng bạn vẫn có thể không được nhận vì những lý do đã được đề cập.
Leetcode không miễn phí
Mặc dù LeetCode có rất nhiều thứ miễn phí, nhưng bạn cần phải trả tiền đăng ký gói Premium để truy cập toàn bộ các câu hỏi của họ. LeetCode Premium có giá 35 đô la / tháng hoặc 159 đô la / năm. LeetCode Premium cung cấp cho người dùng quyền truy cập vào tất cả các vấn đề cùng giải pháp, trình gỡ lỗi tích hợp (built-in debugger) và mô phỏng phỏng vấn (interview simulations).
Không thực tế
LeetCode giúp bạn vượt qua các cuộc phỏng vấn kỹ thuật, nhưng tính hữu ích của nó chỉ có vậy. Các giải pháp bạn thực tập/ghi nhớ trên LeetCode thường không sử dụng trong thế giới thực. Trên thực tế, nhiều công ty công nghệ đang từ bỏ các câu hỏi phỏng vấn kiểu LeetCode và chuyển sang các câu hỏi tập trung vào công việc cụ thể của công ty họ.
Lý do: nhiều ứng viên sử dụng các công cụ như LeetCode để chuẩn bị cho các cuộc phỏng vấn và ghi nhớ vô số giải pháp cho các vấn đề. Chính vì vậy có nhiều ứng viên biết câu trả lời cho những câu hỏi này. Để tránh kiểu học vẹt như vậy các công ty kết hợp các kiểm tra về lập trình sáng tạo hơn vào quy trình phỏng vấn của họ.
Người dùng đáng giá về leetcode
Dù có những nhược điểm, leedcode được người dùng đáng giá cao vì sự hữu ích của nó. Các đánh giá về LeetCode đều thực sự tích cực. Các lập trình viên đánh giá cao việc gắn thẻ và phân loại trên LeetCode. Hầu hết người dùng khuyên bạn nên thực hiện các câu hỏi dễ và trung bình, vì những câu hỏi này có nhiều khả năng xuất hiện ở trong các cuộc phỏng vấn. Các bài viết về giải pháp cũng được đáng giá cao. LeetCode cũng có các thử thách viết code hàng tháng. Đây là một cách thú vị để trau dồi kỹ năng của bạn một cách nhanh chóng.
Hãy cùng xem một đánh giá trên Quora: “Tôi đã chuẩn bị cho các cuộc phỏng vấn lập trình trong 2 tháng qua. Không nghi ngờ gì nữa, Leetcode là hữu ích nhất và tôi đã sử dụng nó hàng ngày để thực hành các kỹ năng lập trình của mình. Thư viện của họ có hơn 200 câu hỏi giải quyết vấn đề. Cách sử dụng rất đơn giản: chỉ cần viết code và gửi giải pháp của bạn để xem bạn đã giải đúng chưa. Kết quả là bây giờ tôi có các cuộc phỏng vấn với Google, Facebook và có 2 lời mời từ các công ty khởi nghiệp! Tôi thực sự giới thiệu Leetcode cho bất kỳ ai đang trải qua quá trình phỏng vấn lập trình!“
Các cách khác để chuẩn bị
Nếu bạn có lý do để không sử dụng LeetCode, có một số lựa chọn thay thế để giúp bạn chuẩn bị cho các cuộc phỏng vấn lập trình của mình.
- Interview Cake: một công cụ được tạo ra bởi một cựu kỹ sư phần mềm của Google, là nơi dạy mọi người cách nghĩ về các câu hỏi phỏng vấn kỹ thuật hơn là chỉ cách thực hiện chúng.
- Coderbyte, Edabit và Skilled.dev: các công cụ chuẩn bị phỏng vấn có tích hợp online editor và hàng chục nghìn giải pháp khác nhau.
- HackerRank: cũng là một công cụ phổ biến được các công ty sử dụng để đánh giá các kỹ sư phần mềm. HackerRank cung cấp các câu hỏi thực hành trên nền tảng này và người dùng có thể giải quyết các vấn đề trong môi trường giống như các bài kiểm tra khi phỏng vấn.
- AlgoExpert: là một nền tảng trả phí với các câu hỏi về các chủ đề như cấu trúc dữ liệu, thuật toán và giải quyết vấn đề.
- CodinGame, Codewars, CodeChef, Check.io và CodeSignal biến các thử thách như một cách để giúp bạn trau dồi kinh nghiệm chuẩn bị cho phỏng vấn.
Kết luận
Leetcode là một công cụ phổ biến để thực hành các vấn đề mã hóa khác nhau. Nhiều câu hỏi xuất hiện trong các cuộc phỏng vấn lập trình có sẵn để bạn thực hành trên LeetCode. Mặc dù LeetCode có những ưu điểm của nó, nhưng cuộc phỏng vấn về lập trình có nhiều thứ hơn là chỉ các giải pháp LeetCode đã đưa ra. Điều quan trọng là phải học hỏi lâu dài để chuẩn bị cho bản thân không chỉ cho cuộc phỏng vấn kỹ thuật mà còn cho sự nghiệp của bạn.
Cuối cùng, bạn sẽ sẵn sàng phỏng vấn một cách tự tin và bạn sẽ có những kỹ năng lâu dài để giúp bạn trong hành trình của mình.
Bạn có biết?
tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất
Linkedin Page:
Facebook Group:
cơ hội việc làm IT : ITguru.vn