5 trang web cực hay để luyện thuật toán, học lập trình

Hôm trước, mình đã có viết bài về 4 cách rèn luyện tư duy lập trình rồi! Do nhiều bạn muốn cụ thể, chi tiết những trang có thể học tập, luyện thuật toán nên hôm nay mình chia sẻ thêm 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!

Các bạn không cần phải dùng hết cả 2 làm gì, chỉ cần chọn 1-2 cái hay nhất là được rồi 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 bà con giải ra sao nữa

Trong quá trình mình đi phỏng vấn, cũng có khoảng 3,4 công ty cho mình vào đây làm bài test (thuật toán + trắc nghiệm + tự luận). Do vậy, các bạn cứ lên đây làm bài tập nhiều cho quen dần cũng được nha.

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 (Nhiều bài easy cũng khó vãi nồi ra).

Đợt mình đi phỏng vấn thuật toán thì cũng hay bị hỏi mấy bài tầm Easy để khởi động, Medium để đánh giá khả năng. Tầm Hard thì chắc cỡ phỏng vấn Facebook/Google họ mới hỏi.

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 (giống mình ahihi), 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ô (do dân Ấn Độ làm), 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ộ…

Cá nhân mình từng dùng trang này để học thêm về Golang, Elixir. Vừa làm vừa xem thử bài giải của các bạn khác để … quay cóp, nhầm để học cách viết code!

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)

Trang này hồi trước mình xem Youtube Channel của CS Dojo – Một anh nhân viên Google bỏ nghề đi làm Youtuber thì được giới thiệu. (Quảng cáo nhẹ là Code Dạo cũng có Youtube Channel hay ho lắm nha)

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!

Bản thân mình dùng gói thường, sau đó nếu bí thì Google 1 hồi cũng ra đáp án bên Geekforgeeks. 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!

Tạm kết

Trong bài này, mình đã chia sẻ cho các bạn 5 trang web cực hay ho để luyện thuật toán, học lập trình rồi nhé!

Cá nhân mình thấy không cần học quá nhiều, chỉ cần chọc 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é.

Nếu bạn có kinh nghiệm nào hay ho ôn thuật toán. luyện phỏng vấn thì cứ chia sẻ trong comment nhé! Chúc các bạn ngày càng trâu, ngày càng giỏi, không sợ thuật toán nữa!

 

30s Quảng cáo: Anh Song bạn mình bên Cybersoft vừa cho ra mắt hệ thống học trực tuyến tại cyberlearn.vn với khá nhiều thứ hay ho:

  • Học qua dự án, hiểu tận rễ vấn đề
  • Lộ trình phù hợp cho cả bạn mới, trái ngành và nâng cao kỹ năng chuyên sâu
  • Tương tác thảo luận cùng Mentor và Giảng viên

Nếu quan tâm, các bạn có thể ghé thăm cyberlearn.vn, hoặc liên hệ fanpage m.me/lophocviet để tư vấn thêm nhen

One thought on “5 trang web cực hay để luyện thuật toán, học lập trình”

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s