Làm sao để cải thiện khả năng học thuật toán?

  1. Công nghệ thông tin

Sau khoảng hơn 1 năm tiếp xúc với thuật toán, mình cảm thấy khó và không có tiến bộ. Mọi người có thể chia sẻ ít kinh nghiệm học thuật toán của mình được không ?

#CodeBattle2018

Từ khóa: 

công nghệ thông tin

tôi chỉ học mỗi ngôn ngữ Python

Trả lời

tôi chỉ học mỗi ngôn ngữ Python

Về cá nhân mình thì học hay làm bất cứ điều gì thì mục đích và đam mê là điều quan trọng nhất. Có thể 1 lý do dẫn đến việc bạn học thuật toán không hiệu quả đó là bạn chưa tìm được mục tiêu riêng của bản thân mà đang bị người khác áp đặt mục tiêu cho mình.

Khi nào mà bạn luyện tập k còn cảm thấy mệt mỏi áp lực, thay vào đó là sự thoả mãn khát khao chinh phục mục tiêu, thì hiệu quả sẽ cao hơn :D

Kinh nghiệm của mình thì chỉ đơn giản là xác định rõ mục tiêu và luyện tập thật nhiều, thật nhiều và thật nhiều thôi :D

Trước tiên là thái độ. Đừng coi việc học thuật toán là cái gì bắt buộc mình phải học, phải biết. Hãy coi việc học thuật toán như chơi game. Mỗi bài toán hãy coi như một màn, tìm cách vượt qua nó, ăn được kinh nghiệm, tăng level.

Thứ 2 là cách học. Có một kiểu tiếp cận bài toán mà mình thấy khá là stupid đó là các bạn lao đầu vào code mặc dù còn chưa hiểu toàn bộ đề. Hãy viết ra giấy thật nhiều, nghĩ thật nhiều về nó.

Thứ 3 là môi trường học. Không thiếu các nguồn để bạn có thể học như

VOJ
, codeforces, ở đó các bạn có thể tìm được các bài toán từ dễ đến khó, đặc biệt codeforces mỗi bài còn có solution và xem được code của những người làm đúng.

Thứ 4 là luyện tập không ngừng. Muốn chơi game giỏi thì phải chơi game nhiều, muốn học thuật toán giỏi thì cũng cần thực hành nhiều.

Luyện tập và luyện tập :)) Chỉ vậy thôi , kể cả học C++ hay Java thì mình cũng đều phải luyện tập mỗi ngày , luyện mới dần cải thiện được

Bạn hãy làm thật nhiều từ dễ đến khó và tích lũy kinh nghiệm qua từng bài. Đó là cách duy nhất.

Theo mình thì đầu tiên phải hiểu bản chất của các thuật toán cơ sở. Tư duy thông minh chỉ là một yếu tố nhỏ, quan trọng là luyện tập thường xuyên.

Mình có thấy một vài website luyện code rất thú vị như codewar, hackerrank, spoij, project euler,...ở đó đều có solution từ người giải. Nghiên cứu nhiều cách giải từ nhiều người sẽ giúp ích cho mình có được cái nhìn tổng quan.

Và chốt lại, hãy code giấy, viết giải thuật trước thay vì lao vào code ngay.