5 trang web chất lượng giúp bạn luyện tập thuật toán, học lập trình
Ngành học nào cũng vậy, việc học phải đi đôi với hành. Đối với lập trình thì bạn bạn càng phải luyện tập nhiều hơn nữa, hãy code thật nhiều để rèn luyện tư duy logic, rèn luyện thuật toán. Dưới đây là 5 trang web chất lương và cực hay mà bạn có thể tham khảo để nhanh “lên cơ” trình độ code.
1. Hackerrank (hackerrank.com)
Trang nay rất rất phổ biến trong giới lập trình, từ junior đến senior, từ developer đến mấy bác tuyển dụng.
Hackerrank có rất nhiều bài thuật toán, với độ khó từ thấp đến cao, đủ mọi thể loại thuật toán và cấu trúc dữ liệu (có cả SQL). Có cái rất tiện của trang này đó là bạn viết code, cho chạy trực tiếp và xem kết quả được luôn, nếu giải không được, không biết fix sao thì có mục dicussion, bạn vào đó xem lời giải.
Trang web này được rất nhiều nhà tuyển dụng lấy bài test ở đây cho ứng viên (thuật toán + trắc nghiệm + tự luận). Do vậy, các bạn có thể tham khảo làm bài tập nhiều tại trang web này cho quen tay!
2. Leetcode (leetcode.com)
Bên cạnh Hackeerank, Leetcode cũng là 1 trang rất hay để luyện thuật toán. Số lượng bài toán trên này không hề thua hackerrank, có 3 độ khó chính là Easy/Medium/Hard.
Trang web này cũng được những ông lớn công nghệ lựa chọn để test trình độ ứng viên, chịu khó làm những bài tập trong này biết đâu được khi apply, bạn trúng tủ.
Trang web này cũng có một điểm cộng là nó đo performance/runtime code của bạn, rồi so sánh với người khác, đánh giá xem code của bạn có optimize được không hay chưa tối ưu chỗ nào. Tính ra cứ như đường đua ấy nhỉ, việc so sánh này có thể lúc đầu bạn sẽ cảm thấy hơi khó chịu, nhưng mình thấy nó cũng có lợi lắm, giúp mình yếu chỗ nào để cải thiện hơn, và “chạy nhanh hơn”.
3. Geekforgeeks (practice.geeksforgeeks.org)
Giới thiệu với các bạn trang web chuyên về thuật toán đây, trong đây có ty tỷ bài tập. Không chỉ có bài tập để luyện mà mỗi bài tập lại gồm nhiều cách giải khác nhau, đi kèm với độ phức tạp của mỗi người giải, tuy rất hay và bổ ích nhưng bạn hãy tỉnh táo, đừng bơi trong đây nhé! Có một điểm trừ nhỏ là bài tập không phân loại nên bạn sẽ phải chịu khó tìm kiếm bài tập phù hợp với mục tiêu của mình.
Bên cạnh đó, cũng có một trang để bạn vừa học lý thuyết, vừa thực hành về thuật toán, nhưng theo mình đánh giá thì luyên trang này sẽ giúp bạn “lên cơ” về thuật toán hơn.
4. Exercism.io
Nếu như các trang trên để luyện thuật toán, thì Exercism lại là 1 trang khá hay để luyện thành thạo ngôn ngữ lập trình.
Trên Exercism cũng có nhiều bài tập, nhưng các bài tập này không quá nặng về thuật toán, mà nặng về cách dùng ngôn ngữ lập trình:
- Sử dụng if/else, loop.
- Xử lý ngày tháng, xử lý chuỗi
- Cách phân tách method, tổ chức class
- Cách xử lý lỗi, viết code bất đồng bộ…
5. Daily Coding Problem (dailycodingproblem.com)
Khác với những trang còn lại, trang này không có danh sách bài tập. Thay vào đó, bạn nhập email của bạn vào, mỗi ngày họ sẽ gửi cho bạn 1 bài thuật toán để làm thử.
Các bài này cũng mức Easy/Medium, được các công ty như Amazon/Google sử dụng để phỏng vấn ứng viên. Dùng gói Premium thì các bạn sẽ được gửi kèm lời giải luôn!