Bài viết được dịch từ: simpleprogrammer.com

Xin chào, tôi là John Sonmez từ simpleprogrammer.com. Ở đây tôi có một câu hỏi, đã được nhiều người hỏi kể từ khi tôi làm video "Tôi có cần học giải thuật?" Bây giờ, câu hỏi đặt ra là "Học giải thuật như thế nào?". Đây là câu hỏi từ Ryss: "Tôi muốn biết cách tiếp cận tốt nhất để học và áp dụng giải thuật hiệu quả". Đây là một câu hỏi khá đơn giản. Tôi không chắc có thể cung cấp cho bạn cách tiếp cận tốt nhất, nhưng tôi sẽ cung cấp cho bạn một vài ý tưởng.

Như nói trước. Tôi sẽ bắt đầu với cái tôi nghĩ là tốt nhất. Tôi cũng sẽ cung cấp cho bạn một vài tài nguyên ở đây.

Đầu tiên là một blogpost tôi đã đề cập trước đây nó là raywenderlich.com của Ray Wenderlich. Tôi đã phỏng vấn anh ấy trên kênh này. Anh ấy thực sự là một người rất vui tính. Tôi cũng đã gặp mặt anh ấy. Anh ấy xây dựng một blog khổng lồ, và gọi nó là "Cách để trở thành một lập trình viên tốt hơn với các thử thách lập trình". Bạn có thể ghé thăm blogpost này và sẽ tìm thấy hàng tấn tài nguyên. Đây có lẽ là nguồn tài nguyên tốt nhất tôi tìm thấy. Nó có tất cả những thứ mà bạn có thể làm để học giải thuật, đặc biệt là các giải thuật bạn sẽ sử dụng trong bài kiểm tra lập trình, online whiteboard, hoặc whiteboard programing và các cuộc phỏng vấn coding trực tuyến.

Tiếp theo, là một địa chỉ mà tôi đã đề nghị nhiều lần. Đó là topcoder.com. Tôi đã tham gia rất nhiều cuộc thi, và đã học được nhiều giải thuật và cách tạo ra giải thuật từ Top Coder. Nó có phòng luyện tập nơi bạn có thể luyện tập trên các bài kiểm tra và bạn có thể thi đấu thực sự, đó là một cách hay. Sau đây, tôi sẽ cung cấp cho bạn một trang web nhiều công ty sử dụng cho các thử thách lập trình của họ và bạn có thể đăng ký, với một tháng miễn phí, bạn có thể xem một vài thứ của họ. Đó là codility.com. Tôi đánh giá cao nó. Họ có các thử thách tốt và bạn có thể nhận được một chứng chỉ thực sự nếu bạn có thể vượt qua các bài thi trong một khoảng thời gian nhất định.

Tiếp theo tôi sẽ cung cấp cho bạn 2 quyển sách. Quyển đầu tiên được gọi là "Cracking the Coding Interview" đây thực sự là một quyển sách rất hay. Nó là quyển sách số một trên Amazon trong lĩnh vực phát triển phần mềm. Nó nói về các cuộc phỏng vấn coding. Và nó cũng cung cấp hàng tấn thông tin về các kiểu thuật toán. 

Cuối cùng, tôi sẽ cung cấp cho bạn một cuốn sách giáo khoa cũ về chủ đề này là "Programming Pearls". Nó cung cấp rất nhiều thuật toán thú vị của các vấn đề. Một vài trong số chúng thực sự rất khó, liên quan tới bộ nhớ và tối ưu. Và rất nhiều thứ khác.Những thứ khác biệt so với các thử thách thông thường bạn có thể thấy trong coding interview, nhưng sẽ thực sự giúp bạn rất nhiều trong môi trường làm việc, trong việc phát triển các thuật toán và hiểu chúng.

Đó là tất cả những nguồn tài nguyên mà tôi nghĩ là tốt nhất, như đã nói, raywenderlich.com là nơi tôi bắt đầu. Có rất nhiều các trang web cung cấp các thử thách lập trình và những thứ tương tự, nhưng nó là cách tốt nhất để học lập trình.

Tham khảo các khóa học lập trình online, onlab, và thực tập lập trình tại TechMaster