Thuật toán là phương pháp hiệu quả để giải quyết một bài toán trong một khoảng thời gian và bộ nhớ hữu hạn. Thuật toán xuất hiện ở mọi phần mềm và ngôn ngữ các bạn sử dụng hàng ngày, có thể bạn không thấy điều đó do bạn chưa từng biết đến nó.
Lập trình viên thường có xu hướng ngại học thuật toán, điều này “mang lại” cho các bạn khá nhiều sự thiệt thòi 😀
Trong khuôn khổ bài viết, mình có vài gợi ý cho người mới bắt đầu.
1. Sách, ebook: đọc là một kỹ năng cực kỳ quan trọng dù bạn học bất cứ ngành gì, học thuật toán cũng vậy, mình xin giới thiệu 2 quyển sách nền tảng về thuật toán, cả 2 quyển đều có đầy đủ các thuật toán cơ bản. Bạn có thể tìm trên mạng hoặc lên amazon mua.
- Algorithms (4th Edition) Tác giả: Robert Sedgewick và Kevin Wayne.
- Introduction to Algorithms, 3rd Edition Tác giả: Thomas H. Cormen and Charles E. Leiserson.
2.Coursera: trang dạy online nổi tiếng có rất nhiều khoá học algorithm, hai khoá học mình giới thiệu bên dưới nằm trong TOP của trang web này.
Khoá học được dạy trực tiếp bởi giáo sư Robert Sedgewick, người nghiên cứu ra Red-Black Trees, tác giả cuốn Algorithm 4th edition. Thầy giáo giải thích chi tiết source code cùng với animation mô phỏng thuật toán, rất dễ hiểu.
Mỗi tuần, ngoài các video bài học, bạn phải hoàn thành 1 bài trắc nghiệm và 1 bài tập code. Đối với bài tập code, bạn cần phải chạy đúng tập test trong khoảng thời gian và bộ nhớ cho phép thì mới pass.
Quan trọng nhất là cả 2 khoá học đều miễn phí.
3. Web Content and Services
- https://learning.oreilly.com: trang chuyên về đọc sách online và video khoá học trực tuyến của nhà xuất bản O’reilly, miễn phí dùng thử 10 ngày không giới hạn nội dung khi user đăng ký.
- http://www.geeksforgeeks.org: thuật toán được code ở mức chi tiết và giải thích từng dòng.
- https://visualgo.net: trang web mô phỏng một số thuật toán.
- https://algs4.cs.princeton.edu: trang content chủ đề thuật của đại học Princeton, chưa source code và nội dung cuốn Algorithms (4th Edition).

4.Thực hành: Học phải đi đôi với hành, hãy thực hành càng nhiều càng tốt. Có nhiều trang web để bạn duy trì thói quen thực hành hàng ngày.
Chúc bạn thành công!









(3 lượt thả tim)



