Học lập trình rất khó, không có nghi ngờ gì về điều đó cả. Nếu đã từng có người rỉ tai bạn rằng “Ồ, lập trình vô cùng đơn giản” thì đừng vội tin! Họ là những người đã có quá nhiều năm kinh nghiệm trong nghề nên mới có thể biến một việc khó nhằn như code thành dễ dàng không khó khăn. Sẽ rất bình thường nếu bạn cảm thấy choáng ngợp khi mới tiếp xúc với lập trình, bởi có quá nhiều thứ cần học, và có thể bạn sẽ quên đi những kiến thức đó rất nhanh sau khi học chúng. Đây cũng vẫn là chuyện bình thường
Tuy nhiên, bình thường không có nghĩa rằng điều đó không gây bực bội và nản lòng. Sự thật mà nói, học lập trình có thể cực kỳ căng thẳng nếu bạn không tiếp cận nó với những suy nghĩ và thái độ đúng đắn.
Vậy làm cách nào để nhớ được một ngôn ngữ, thư viện hoặc framework mới một cách nhanh chóng và lâu dài? Cùng theo dõi nhé!
Chắc chắn rồi, nhồi nhét kiến thức là cách tồi tệ nhất để học lập trình. Thử nhớ lại xem, nhồi nhét có lẽ là cách học tập của bạn suốt quãng thời gian học sinh lẫn thời sinh viên đại học. Đó là cách duy nhất bạn biết làm thế nào để học.
Tuy nhiên, nhiều nghiên cứu đã chứng minh rằng: càng cố nhồi nhét thì càng nhớ được ít đi. Đó là điều đúng cho bất kỳ chủ đề học vấn nào và đặc biệt chính xác khi nói đến lập trình.
Nhận định này xuất phát từ một nghiên cứu vào năm 2008 của Đại học California, San Diego:
"Sinh viên sẽ có kết quả tốt hơn khi họ sắp xếp các buổi học của mình thành nhiều phiên hơn là khi họ cố gắng nhồi nhét mọi thứ vào bộ não của mình cùng một lúc."
"Hiệu ứng vị trí nối tiếp (serial position effect) là xu hướng một người sẽ chỉ nhớ rõ phần đầu tiên và phần cuối cùng trong một chuỗi còn các phần ở giữa thì không nhớ kỹ."
Nói cách khác: trong bất kỳ buổi học nào, bạn thường có khả năng nhớ rõ các thông tin học được ở phần đầu và kết thúc buổi học và quên các thông tin ở giữa buổi.
Vậy mục tiêu là ta cần tối đa hóa số lượng kiến thức của những giai đoạn bắt đầu và kết thúc. Đó là lý do tại sao sẽ là tốt hơn khi bạn chia nhỏ buổi học thành nhiều phiên ngắn, nó sẽ giúp cho bạn ghi nhớ và tiếp thu kiến thức mới được tốt hơn.
Lần tới khi bạn ngồi xuống để học code, hãy chỉ học một chủ đề vào một thời điểm và có một vài phút nghỉ ngơi ngắn giữa mỗi chủ đề. Tuy nhiên, hãy lưu ý đừng để khoảng thời gian nghỉ ngơi đó làm bạn rơi vào trạng thái lười biếng trì hoãn việc học.
Thêm một lý do nữa chứng minh học nhồi nhét không thể giúp bạn ghi nhớ kiến thức lâu dài là ký ức thường bị mờ nhạt theo thời gian.
Điều quan trọng nhất cần nhớ khi học lập trình: sẽ không thể nào đủ nếu bạn học một chủ đề chỉ bằng một lần hoặc hai lần. Bạn phải xem lại nó hàng chục hoặc thậm chí hàng trăm lần. Mỗi lần xem lại như vậy sẽ giúp bạn khắc sâu chủ đề đó vào bộ não thêm một chút.
Điều này có thể khó thực hiện nếu bạn là một người có thói quen học nhồi nhét. Tuy nhiên, hãy thay đổi thói quen học không tốt đó, bạn sẽ ngạc nhiên vì lượng kiến thức trong đầu sẽ được lưu giữ lâu hơn thông qua những nỗ lực xem lại và thực hành nó đều đặn.
Khía cạnh khó khăn nhất của lập trình, nhất là đối với những lập trình viên mới vào nghề đó là các chi tiết và sắc thái cần phải tiếp thu. Cho đến khi kiến thức hoàn toàn được tiếp nhận, bạn sẽ rơi vào trạng thái vò đầu bứt tóc rất nhiều.
Tùy thuộc vào ngôn ngữ, bạn sẽ cần phải nhớ hàng trăm quy tắc cú pháp bao gồm từ khóa, dấu chấm phẩy, khoảng trắng... Một số ngôn ngữ có yêu cầu rất chặt chẽ, một số khác đơn giản hơn, còn có những ngôn ngữ có cách tiếp cận độc đáo của riêng mà cú pháp bạn đã học trước đó không sử dụng được. Tất cả điều này có thể gây nhầm lẫn, rối rắm nếu bạn chưa có kinh nghiệm lập trình trước đó.
Có một khái niệm khá hay ho trong lập trình được gọi là Debug bằng vịt cao su - Rubber Duck Debugging. Đây phương pháp debug code nhưng không phải kiểu làm trên các IDE mà là bạn sẽ cầm theo một con vịt cao su và giải thích code cho nó, giải thích từng dòng, nói chuyện với nó khi gặp code khó hiểu cũng như trút giận lên khi code có lỗi.
Lợi ích của Rubber Duck Debugging là giúp bạn hiểu rõ vấn đề hơn. Khi xử lý một đoạn code hay đọc một chủ đề, có thể bạn nghĩ là đã hiểu về vấn đề đó rồi, nhưng thật ra chưa chắc đâu. Chỉ khi nào bạn có thể tự mình giải thích lại đoạn code đó một cách rõ ràng theo cách bạn hiểu thì mới được coi là thành công.
Các bạn có thể thực hiện phương pháp giải thích code với một người bạn nào đó, nhưng vấn đề là không phải lúc nào mọi người cũng rảnh mà nghe bạn giải thích nên việc dùng một vật tượng trưng như con vịt sẽ hợp lý hơn. Lúc đầu có thể cảm thấy hơi ngớ ngẩn, nhưng bạn sẽ nhận ra rằng nó vô cùng hiệu quả để ghi nhớ kiến thức.
Phương pháp này được gọi là học tập bằng cách giảng dạy và về cơ bản là một biến thể của kỹ thuật Rubber Duck Debugging nói trên.
Ngoài ra, còn nhiều cách để làm điều này. Bạn có thể viết bài đăng trên blog giải thích các khái niệm mới học, ghi lại video giải thích điều gì đó bạn đã tìm hiểu. Mỗi lần làm vậy sẽ củng cố sự kiến thức cũng như phơi bày lỗ hổng trong sự hiểu biết giúp bạn nhanh chóng bổ sung kiến thức.
Cách bạn thực hành như thế nào quan trọng hơn nhiều so với lượng thời gian bạn dành cho việc thực hành.
Đọc sách là thụ động. Xem các video hướng dẫn trên YouTube cũng là thụ động. Lắng nghe các podcast cũng là thụ động. Là một newbie thì bạn có thể bị cám dỗ và nhảy hết từ hướng dẫn này sang hướng dẫn khác, ngâm cứu hết chủ đề này sang chủ đề khác nhưng không thực sự áp dụng bất kỳ những kiến thức đó một cách thiết thực. Hãy cưỡng lại sự cám dỗ này.
Nếu bạn muốn tăng tốc độ quá trình học tập của mình, thì bạn phải sẵn sàng học tập ở thế chủ động thay vì thụ động. Thực hành tích cực sẽ quyết định đến kết quả cuối cùng.
Hãy thử thách bản thân với các dự án cá nhân. Nghĩ về một vài ý tưởng dự án mà bạn muốn thực hiện. Nếu là một newbie mới học lập trình, bạn có thể tạo ra một trò chơi kiểu Tic-Tac-Toe hoặc Hangman. Đối với các lập trình viên dày dạn thì cố gắng tìm hiểu một framework mới, hay thử code một mobile app hoặc web game đơn giản. Miễn là nó tạo ra hứng thú, hãy thực hiện nó!
Với phương pháp này bạn sẽ thu được hai lợi ích.
Không ai có thể nhớ được tất cả mọi thứ mình đã học. Ngay cả khi bạn có làm việc với một thư viện hoặc framework cụ thể trong một thời gian, thì cũng không phải hiểm nếu tự nhiên quên một vài hàm hay cú pháp.
Trong thực tế, việc cố gắng ghi nhớ tất cả mọi thứ chỉ sẽ chỉ tốn thời gian và công sức của bạn mà thôi. Các tài liệu tham khảo tồn tại là cũng bởi lý do này. Tại sao lại phải nhồi nhét toàn bộ kiến thức bách khoa toàn thư vào bộ nhớ khi bạn có thể lật mở nó ra bất cứ khi nào bạn cần nó?
Vậy thì khi nào nên ghi nhớ và khi nào nên tham khảo?
Đối với các khái niệm thì bạn nên ghi nhớ về chúng. Đối với tất cả những thứ khác chẳng hạn như tên gọi cụ thể các function, danh sách tham số... thì không nhất thiết phải ghi nhớ chi tiết. Hãy lưu giữ chúng trong các tài liệu tham khảo để khi nào không nhớ bạn có thể mở ra đọc lại dễ dàng.
Phải khẳng định lại lần nữa: học lập trình rất khó và chuyện bình thường nếu bạn phải vật lộn với nó. Đừng dằn vặt chính mình nếu không thể nhớ được kiến thức khi mới học. Tiến về phía trước và không ngừng học hỏi. Hy vọng những lời khuyên trên phần nào có ích với bạn.
--------------------
STANFORD – ĐÀO TẠO VÀ PHÁT TRIỂN CÔNG NGHỆ
Hotline: 0963.723.236 – 024.6275.2212
Website: https://stanford.com.vn/