5 trang web giúp bạn luyện thuật toán, học lập trình

thuat-toan

Nhiều bạn muốn học online nhưng không biết học ở đâu? MISA chia sẻ cho các bạn 5 trang cực kì hay ho để luyện thuật toán/học lập trình nha! Bạn không cần học hết cả 5 trang, nhưng hãy cố gắng chọn 2 trang bạn thấy phù hợp nhất nhé!

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 (Thậm chí cả SQL cũng có luôn). Bạn sẽ viết code, chạy trực tiếp và xem kết quả, bí quá có thể qua mục discussion xem mọi người giải ra sao nữa.

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 này còn có 1 cái khá hay ho là nó đo performance/runtime code của bạn, so sánh với người khác để xem code bạn chạy nhanh hay chậm, có thể optimize được hay không (cái này nhiều khi hơi lô, bấm Run lại tự dưng code nhanh hơn hẳn) .

Geekforgeeks (practice.geeksforgeeks.org

Nếu bạn đã từng bí khi làm bài thuật toán, từng Google tìm lời giải, hẳn bạn sẽ thấy qua trang này một vài lần.

Trang Geekforgeeks này giao diện nhìn hơi lố, bài tập cũng không phân loại rõ cho lắm. Tuy vậy, nó lại có … rất nhiều bài giải của những bài tập thuật toán thông dụng. Mỗi bài giải lại gồm nhiều cách giải khác nhau, đi kèm với độ phức tạp/memory của mỗi cách giải. Đọc rất là hay và bổ ích.

Do vậy, lâu lâu các bạn có thể trang này xem bài giải/code example của các thuật toán phổ biến nha!

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ộ…

Nếu các bạn đã lập trình 1 thời gian, muốn học ngôn ngữ mới, học cách tư duy mới thì cứ lên Exercism nhé!

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!

Nếu các bạn sắp đi phỏng vấn, ôn thuật toán thì đăng kí trang này, luyện trước 2-3 tháng là vừa nha!

Trên đây là 5 trang web rất hay ho. Tuy nhiên bạn không nhất thiết phải học cả trên 5 trang. Bạn có thể chọn Hackerrank/Leetcode nếu bạn muốn luyện trước khi phỏng vấn; hoặc chọn Exercism nếu cần học ngôn ngữ mới là được nhé.

#suutam