Trở thành kiến trúc sư xây dựng công trình học tập| Bảy ngày học lập trình, phần 1
Hiểu về cách học giúp làm chủ quá trình học tập của mình
Meta learning - hiểu về cách học
Hiểu về cách học
Cùng một khối vật liệu, việc xây dựng ngôi nhà bền đẹp phụ thuộc vào việc thiết kế và thi công của căn nhà. Nếu bạn chỉ chồng những viên gạch lên nhau theo bản năng mà không ý thức về những kỹ thuật xây dựng, khả năng cao là căn nhà của bạn sẽ khó đứng vững.
Việc bỏ lượng lớn thời gian và tiền bạc để đi học, cũng giống như bạn đi mua những vật liệu tốt nhất để xây nhà. Nếu không biết cách tự xây dựng kiến thức và thiết kế lộ trình học cho bản thân, bạn sẽ là một người thợ chỉ biết cần mẫn chồng hết viên gạch này lên viên gạch khác và hi vọng một căn nhà hoàn chỉnh sẽ thành hình.
Meta-learning - hay học về cách học, là cách bạn trở thành vị kiến trúc sư và nhà thi công lâu đài kiến thức của mình. Trong đó kiến trúc sư sẽ lên kế hoạch và cung cấp bản vẽ để xây dựng căn nhà, nhà thầu thi công xây dựng và triển khai công trình phù hợp với tiến độ.
Những rủi ro khi không hiểu về cách học
1️⃣ Không hiểu về cách học là khiến bạn mất thời gian học nhưng lại không xây dựng được kiến thức cho bản thân mình.
Hồi cấp 3, mình cố gắng học tiếng anh nhưng cảm thấy tệ việc học rất khô cứng và thiếu tính hấp dẫn. Mình học không gì ra hồn cả. Mình học vẹt về về ngữ pháp mà không hiểu được bản chất nên hay bị lặp lại lỗi sai. Mình học thuộc từ mới bằng cách nhẩm đi nhẩm lại trong miệng và dù cố gắng thế nào cũng quên. Sau khi học tiếng anh trên trường, mình cũng không biết giao tiếp với người nước ngoài nên càng cảm thấy tự ti. Mình nghĩ rằng mình không có năng lực học ngoại ngữ và tìm cách tránh né học nó.
Khi mình đi làm và đi học đại học, mình tiếp cận tiếng anh một cách rất tự nhiên bằng việc thường xuyên như xem phim và You Tube. Trong quá trình học đại học, mình cần phải đọc rất nhiều văn bản bằng tiếng anh. Cứ thế, tiếng anh của mình tốt hơn. Hiện tại, mình có thể đọc được mọi loại sách và bài nghiên cứu bằng tiếng anh mà không gặp bất kỳ rắc rối gì.
Cách học tiếng anh sau khi học cấp ba của mình giống với cách tiếp cận của nhà ngôn ngữ học Stephen Krashen trong việc học ngôn ngữ. Ông đưa ra lý thuyết về Language Acquisition. Theo giả thuyết này, con người có hai quá trình học ngoại ngữ (1) Language acquisition (Tiếp thu ngôn ngữ) và (2) Language learning (Học ngôn ngữ).
Language acquisition là quá trình tiếp thu ngôn ngữ giống như một đứa trẻ học tiếng mẹ đẻ. Nó yêu cầu sự tương tác với ngôn ngữ đi kèm với những thông điệp có ý nghĩa. Việc học này nằm trong vô thức và nó dần dần xây dựng một sự hiểu tự nhiên của đứa trẻ để có thể dùng ngôn ngữ để giao tiếp [1]. Trong khi đó, language learning là việc học chính tả, ngữ pháp ở trường.
Language acquisition tạo nên nên sự lưu loát (fluency). Language learning tạo nên sự chính xác (accuracy). Language acquisition quan trọng hơn vì nó giúp người học xây dựng nền tảng ngôn ngữ, để hiểu và nghĩ bằng chính ngoại ngữ đó trước khi đi vào việc sử dụng ngôn ngữ một cách chính xác.
Stephen Krashen còn đưa ra lý thuyết Input hypothesis, trong đó, ông khuyến khích việc đọc và nghe rất nhiều những văn bản, tài liệu có độ khó hơn một chút so với khả năng học ngoại ngữ của bạn. Thông qua quá trình liên tục tiếp thụ ngôn ngữ này, người học dần xây dựng được khả năng ngôn ngữ của mình một cách vô thức.
Qua ví dụ vừa rồi có thể thấy, sự khác biệt giữa hai cách tiếp cận ngôn ngữ của mình trong năm những năm cấp 3 và những năm sau đó. Sự khác biệt trong cách tiếp cận ngoại ngữ này ảnh hưởng trực tiếp đến trải nghiệm và kết quả học ngoại ngữ của mình.
Trong việc học tiếng anh, mình cũng đã trông cậy vào sự may rủi để xây dựng lâu đài kiến thức của mình. May mắn mình tìm thấy cách tiếp cận ngoại ngữ phù hợp với bản thân. Nếu mình không được tiếp cận với internet và chỉ dựa vào hệ thống giáo dục sẵn có, có lẽ mình sẽ mãi sợ ngoại ngữ và tin rằng mình không thể học tốt được nó.
2️⃣ Không phản tư về lý do học tập, khiến bạn mất công học nhưng không thấy việc học ý nghĩa.
Không biết cách học là một chuyện, nhưng việc cố gắng học nhưng không thấy việc học có ý nghĩa lại là mang lại sử khủng hoảng tinh thần lớn hơn nhiều. Bạn có thể bỏ ra rất nhiều thời gian và công sức để đi học, nhưng suy cho cùng thì bạn lại hoàn thành một bài tập mà bạn cảm thấy nhàm chán và không hứng thú.
Đây cũng là một lý do khiến cho mình cảm thấy chán nản khi học cấp ba vì mình không thấy vẻ đẹp và lý do đằng sau mỗi môn học. Đặc biệt là trong môn văn, thay vì mình học cách diễn đạt suy nghĩ của bản thân, thì mình lại phải học phân tích theo văn mẫu. Việc này đôi lúc còn diễn ra trong việc học đại học của mình, khi mình thấy việc học trong trường đôi lúc quá hàn lâm và mình không tìm thấy giá trị thực tiễn của nó.
Trở thành kiến trúc sư xây dựng công trình học tập của bạn
Khi hiểu về cách học, nó giúp cho bạn có một sự tự do học thuật . Dù cho bạn có đang học trường lớp, chương trình giáo dục thế nào, việc biết cách tự xây dựng kiến thức giúp bạn làm chủ quá trình học của mình. Bạn có thể tự tìm kiếm tài liệu, giáo trình trên internet để tạo nên giáo án thích hợp và phục vụ cho nhu cầu và phong cách học tập của bạn.
Trong chương 4 (Meta Learning - draw learning map) sách Ultralearning - Scott Young đã đưa ra ba câu hỏi để giúp học sinh hình dung ra một bản đồ học tập.
Why | Vì sao mình nên học môn học này ?
Tương tự như khi xây một căn nhà, bạn cần ý thức về việc xây dựng căn nhà này cho ai và để làm gì?
What | Mình cần học những kiến thức nền tảng nào?
Là một người kiến trúc sư, bạn cần có hiểu biết về kết cấu của căn nhà, xây móng nhà, khung nhà, trước khi đi vào trang trí và nội thất.
How | Cần học và thực hành hằng ngày như thế nào?
Tương tự như việc lên kế hoạch cho nhà thầu triển khai xây dựng, bạn cần thực hiện những bước gì, kế hoạch thi công hằng ngày ra sao.
Với mình, đây là những câu hỏi đơn giản và dễ hiểu giúp cho bạn biết được vì sao bạn học, bạn cần học cái gì và bạn cần học như thế nào. Tuy nhiên, bạn cũng không cần trả lời hoàn hảo tất cả cả các câu hỏi. Bạn có thể dùng câu trả lời của mình như một la bàn định hướng cho việc tìm lối đi cho việc học của mình. Sau một tháng, bạn có thể cập nhật lại thông tin để xác định những bước đi tiếp theo.
Trong bài viết dưới đây, mình sẽ chia sẻ cách mình học và tiếp cận việc học với môn học hoàn toàn mới, đó là học lập trình.
Trước khi đọc nội dung mời mọi người xem một số thành quả của mình trong 1 tuần học code mình tự học và làm theo khóa Creative Coding: Making Visuals with JavaScript trên Domestika.
Bản đồ học tập cho việc học code của mình
Why - vì sao mình nên học môn học này ?
Mình mong muốn lập trình được những trang web, nơi người học có thể tương tác để họ có thể giải thích và hiểu vấn đề một cách tốt hơn. Ví dụ như trang web thể hiện cách mà Covid lây lan, cách neuron tạo ra các kết nối thần kinh và ký ức, cách một cây cầu sập vì xây dựng sai quy cách. Nhìn chung, mình không có nhu cầu làm đồ họa quá phức tạp, nhưng mình cần học cách làm đồ họa, tương tác và chuyển động 2D để làm những trang web giải thích. Trang web Brilliant | Learn interactively là một ví dụ tuyệt vời cho việc dùng đồ họa để giải thích kiến thức học thuật.
What - Xác định mình nên học kiến thức gì?
Mình mình chưa biết nhiều về bất cứ cái gì về code cần xây dựng những kiến thức nền tảng về viết code (nó là gì, nguyên tắc cơ bản của nó ra sao). Trong một tuần học đầu thì mình cứ học và làm theo hướng dẫn lớp học code trên Domestika Creative Coding: Making Visuals with JavaScript (Bruno Imbrizi) Sau khi có một hiểu biết cơ bản rồi thì mình sẽ xác định được những nội dung chính cần học hơn.
Việc chọn lựa và giới hạn tài liệu học là điều vô cùng quan trọng. Việc dành thời gian chọn lựa giúp mình tìm được chương trình học, cách tiếp cận học hợp với mình. Việc giới hạn tập trung vào một lượng nhỏ tài liệu/ giáo trình giúp mình đỡ mất tập trung và phân tán tư tưởng khi học.
Chọn lựa:
Mình chọn khóa học Creative Coding: Making Visuals with JavaScript bởi vì nó phù hợp với nhu cầu học tập của mình, khi mình không muốn học code để lập trình, mà muốn học code để làm đồ họa. Ngoài ra việc học code theo lối chính thống thì nó hơi chán khi bắt đầu, vì sẽ cần học lý thuyết cơ bản và thuộc các câu lệnh. Việc viết code để thể hiện thị giác khiến mình cảm thấy hào hứng và dễ hiểu hơn khi việc viết code tương tác trực tiếp đến hình ảnh hiển thị.
Tập trung - giới hạn kiến thức cần phải học:
Mình chọn cách ưu tiên học xong khóa học này trước khi đi vào tìm hiểu những cái khác. Internet có thể giúp người dùng tìm kiếm mọi thông tin cần thiết, nhưng việc đọc quá nhiều khiến mình rất dễ phân tâm.
How - mình nên học và thực hành hằng ngày như thế nào?
Thời gian
Nếu không có thời gian mỗi ngày thì rất khó có thể nâng cao khả năng của bản thân. Hiện tại mình đang tập luyện để chạy giải 42km, và việc hình thành cơ bắp và sức bền không phải là chuyện một sớm một chiều, mà nó được tích lũy hằng ngày. Khoảng cách giữa những người chạy nghiệp dư và chuyên nghiệp là số km mà họ chạy hằng tuần, với vận động viên thì họ thường phải chạy ít nhất 100km/ tuần cho việc tập luyện (~14km/ ngày).
Vì vậy để học code, ưu tiên đầu tiên là dành thời gian cho nó. Mình sẽ dành 2 tiếng cho việc này hằng ngày trong vòng 1 tuần. Khi coi việc học là một thói quen cần thực hành hằng ngày giúp mình có một lộ trình rõ ràng để học tốt hơn.
Về cơ bản ai cũng có thể chạy đường dài, miễn là họ tập hằng ngày và có giáo trình phù hợp.
Learning in Public (học tập cộng đồng)
Mình đăng thành quả học tập Facebook, việc này cũng giúp cho mình có nhiều động lực học tập hơn khi có những lượt like trên Facebook. Nó luôn là một cách tốt để giúp cho mình có động lực học tập hơn khi thấy sự công nhận từ người khác.
Feedback khi học
Mình dùng GTP-3 để trả lời nhanh 1 số câu hỏi khi mình không hiểu 1 đoạn code nào đó. Bạn có thể tìm hiểu thêm ChatGTP và Codex đều là những thuật toán của GTP-3 có thể giúp viết code, xác định lỗi sai. Việc sử dụng những thuật toán này giúp cho mình có feedback trực tiếp và nhanh chóng khi mình không ai để hỏi bài.
Take note khi học
Với mỗi buổi học 2 tiếng, mình sẽ ghi chép lại các đoạn code và viết ghi chú đính kèm. Mình dùng ghi chú để tách những cụm code dài thành từng phần để dễ hiểu hơn. Cũng như giải thích ngay dưới đoạn code giúp thông tin đỡ phân mảnh hơn và kiến mọi thứ dễ hiểu hơn cho người mới bắt đầu như mình.
Xây dựng kiến thức khi học
Để xây dựng kiến thức về code, có 3 phần loại thông tin/ kỹ năng cần học sau đây:
Fact - những thông tin cần nhớ
Việc viết câu lệnh một cách chính xác là thứ cần học thuộc lòng, mình ghi chép lại từng cụm câu lệnh và dùng spaced repetition để học thuộc lòng những câu lệnh này.
Concept - khái niệm cần hiểu
Khi học về câu lệnh, thì mình cũng cần biết về logic của câu lệnh đó, mình thường cố gắng viết lại các khái niệm, logic theo cách hiểu của mình hoặc vẽ các hình minh họa đơn giản để giải thích chuỗi logic của câu lệnh.
Kỹ năng - cần thực hành
Tương tự việc chạy bộ, chạy bộ nhiều thì cơ thể mình sẽ quay với việc chạy bộ, việc học cần dành thời gian cố định hằng ngày để xây dựng kỹ năng của mình. Nếu mình thực hành hằng ngày, mình sẽ thuộc lòng những câu lệnh. Quá trình viết code sẽ dần trở nên tự động hơn và dễ chịu hơn khi mình thành thục ngôn ngữ lập trình.
(Mình sẽ đi chuyên sâu vào phần này trong phần 2 của bài viết) :)
Kết luận
Việc hiểu về cách học là một trong những kỹ năng quan trọng nhất đối với học sinh vì nó giúp bạn làm chủ quá trình học tập của mình. Và bạn có thể thực hiện nó bằng việc trở thành một kiến trúc sư cho công trình kiến thức của mình bằng cách trả lời một số câu hỏi cơ bản bao gồm (1) vì sao mình học môn này (2) môn học này có những kiến thức trọng tâm nào? (3) mình cần học và thực hành hằng ngày như thế nào?
Thông qua việc này, bạn sẽ có một bản đồ học tập, giúp bạn định hướng tốt hơn khi khám phá vùng đất kiến thức đầy thú vị và thách thức. :)