自學的學習方式探索

本文主要有三部分,第一部分和第二部分是翻譯,第三部分是自己的一些看法,黑體字表示值得關注的地方(如果不想看過多文字就看黑體字好了)
第一部分翻譯自 The Difference Between Top-Down Teaching & Bottom-up Teaching
第二部分翻譯自 Learn to code (or do anything): top down, bottom up and other approaches

學習

自上而下教學與自下而上教學的區別

有效的教學方法可能受到學校課程的限制,但教育工作者仍然可以根據學生的需求設計教學方法。有些課程通過講座更好地教授,而其他課程可能需要課堂參與,並通過實驗室和實地考察直接互動。兩種常見的教學方法被稱爲自上而下和自下而上,它們採取相反的方法爲學生提供教育

自上而下的學習

自上而下的教學風格側重於爲學生提供一個主題的大視圖,讓他們沉浸在大圖中,而無需解釋構成主題的組件。例如,在英語作爲第二語言課程中,自上而下的方法將首先讓學生沉浸在學習英語的各個方面,包括寫作,閱讀和發音。學生不會首先學習元音,名詞和代詞的複雜性,而是將他們全部學習英語,然後逐漸學習構成英語的構建基礎。

自下而上的教學

與自上而下的教學方法不同,自上而下的教學方法首先採用主題的宏觀視圖,自下而上的教學方法從主題的組成部分開始,逐漸建立到整體。例如,在ESL課程中,自下而上的方法將從諸如語音,字母,元音和音節之類的東西開始,這些是語言的構建塊。只有在學生掌握了這些特定的規則和系統之後,才能進行口語和閱讀。

方法上的區別

自上而下和自下而上的教學方法具有相同的學習目標,但實現它們的方式不同。自上而下的教學涉及激勵學生通過直接互動和沉浸來學習,並允許他們通過運用自己的經驗在主題中找到意義。自下而上的教學更多是講師驅動的,並側重於主題的細節,作爲通過重複和記憶來解碼和簡化每個組件的方式。

其他考慮因素

由於自上而下的教學強調通過語境進行教學,並且部分依賴於學生獲取知識的背景和經驗,因此它可能無法提供與自下而上教學方法相同水平的特定學科技能。相反,儘管自下而上的教學方法將加強學生對某一學科基礎的掌握,但在較大的整體環境中缺乏對學習的強調可能會限制其有效性。例如,學習單詞特定含義的學生可能無法理解該單詞的含義是如何根據使用單詞的文化而變化的。
學習

學習編碼(或做任何事情):自上而下,

自下而上和其他方法學習編碼很難。軟件工程是我們在談論“學習編碼”時最常提到的領域,它基於計算機科學和應用數學的基礎。雖然你不需要成爲一名數學家或計算機科學家來成爲一名軟件工程師,但另一個事實是,學​​習基本的編程概念對大多數人來說都很難。在本文中,我們將探討一些學習理論,以及如何將它應用於剛開始學習如何編碼的人。我將列出一些概念的優點和缺點,如自下而上與自上而下的學習方法,以及一些值得考慮的替代方案。此內容面向較新的程序員,但這些概念適用於有興趣更有效學習的任何人,即使該主題不是編程。

我已經是一名專業的程序員已經超過7年了,我開始更早地使用代碼。如果有一件事我可以自信地說這個職業,那就是學習永遠不會停止,而且永遠不會變得容易。每當你掌握一個困難的概念,你就可以確定另一個即將到來。我花了很多時間在閱讀關於編程主題的過程中,主要是以閃亮的新框架比問題的舊解決方案更好的形式。我讀到了關於我是否應該將jQuery或MooTools用於我的下一個網站項目的主題。經常感覺不到我的深度,就像我無法理解Web開發生態系統的任何重要部分(這是在前端解決方案爆炸之前)。值得慶幸的是,像我這樣的人存在,只有足夠的視角來幫助你避免陷阱和時間匯,這無助於你有效地升級爲程序員。

自頂向下和自底向上處理的概念已經應用於許多學科,但我們最感興趣的是自上而下和自下而上可以應用於學習。自上而下學習的一般定義是讓學習者沉浸在主題的完整背景中的過程。換句話說:如果你是一個有興趣學習如何游泳的人,而且我有興趣採用自上而下的方法,那麼我會把你扔進游泳池。 相反,自下而上的方法涉及一個更加細化和理論化的過程。自下而上的學習方法涉及將學習者單獨暴露於主題的基本概念。學習游泳的自下而上的方法將涉及學習流體動力學,解剖學和物理學,但不涉及池。

自底向上

自下而上的學習/教學過程只涉及特定主題的組成部分,並慢慢建立在整體上的這些組成部分。使用此方法的學習者只有在掌握了先前的必備組件後纔會轉到下一個組件。在大多數情況下,傳統的公共教育(至少在美國)採用這種方法。

自底向上的優點

自下而上的方法具有許多優點。我認爲其中最重要的是學習者能夠完全理解該主題,只要他們花時間掌握每個組成部分。自下而上也很容易構建:將問題分解成小的,連貫的片段,這有助於組織。計劃自下而上的課程方法的教師必須將他們的材料組織成小的主題。在編程領域,理解任何語言,框架或工具的重要部分是一個漫長而艱難的過程。在學習新語言時,自下而上的方法對於需要在高層次理解概念的學習者來說是有用的,以便對繼續學習另一個概念充滿信心。例如,使用自下而上的方法學習JavaScript的基礎知識可能需要學習原始值,如數字,字符串,布爾值,數組和null / undefined,然後轉到對象和函數,最後轉到範圍和控制流程。理想情況下,每個概念都將建立在之前的概念之上,以創造一個很好的進展

自底向上的缺點

自下而上方法最明顯的缺點是使用這種方法的學習者將缺乏關於他們所學習的概念的任何有用的背景。這種隔離導致無法以任何有意義的方式應用所學習的概念。如果我們回到游泳示例片刻,似乎常識不管你對流體動力學,解剖學和物理學有多少了解,如果你從未真正嘗試過游泳,那麼你就不會真的做個好游泳運動員。這也是爲什麼你幾乎從未見過任何類型的(好的)現代編程資源,至少不包括某些類型的實際部分。

自頂向下

自上而下的學習方法包含一個宏觀導向的實踐過程,讓學習者沉浸在主題中。自頂向下方法的優先級是提供問題或主題領域的更廣泛視角,而不必詳細說明特定組件如何協同工作。應用於編程的自頂向下學習的一個很好的例子是,給新開發人員一個他們需要使用不熟悉的語言或工具集完成的項目。自上而下的方法不是依賴於孤立組件的掌握,而是讓學習者通過探索和實驗來理解各個部分。

自頂向下的優點

對於一些編程學生來說,自上而下的學習方法特別有利,因爲有機會看到一切都在一起工作是令人興奮的。就個人而言,我對編程的興趣是由資源激發和維護的,這些資源可以讓我實現我自己的完整(主要)工作項目。最初,這是通過腳本進行命令行測驗和向遊戲添加功能的混亂,但這裏的共同點是,如果學習的唯一方法是一次一步,我可能不會感到困擾。除了提供學習動機外,自上而下的方法也很實用。對於許多學習者而言,目標是僅學習理解或實施非常具體概念所必需的內容。在這種情況下,自下而上的過程可能會過度,甚至可能浪費時間。

自頂向下的缺點

自上而下學習也有缺點。一般來說,自上而下的學習將細節留給學生,這很多時候會導致對概念的不完整理解。學習者可以掌握足夠的“讓它工作”,沒有動力或明確的途徑來理解基礎組件如何協同工作。當我編寫第一個命令行測驗時,我不瞭解字符串和數字等原始值之間的差異,所以當像1 +“1”這樣的語句導致11時,我感到非常困惑。

雖然自上而下和自下而上的方法都有其自身的優點,但我相信像許多事情一樣,簡單的二分法並不代表所有可行的選擇。這有點陳詞濫調,但我確實認爲最好的方法位於中間位置。
在這裏插入圖片描述

個人的一些看法

困惑的來源

如何能快速的學習一項技能或知識?這種問題格式是不是很熟悉——知乎體。在大學畢業後的自學過程中有各種各樣的“30分鐘***”、“**從入門到精通”這類的博客文章或書籍深深吸引着我,天真的我以爲認真看完就能搞定以後遇到的問題了(至少不會四顧茫然)。然而現實卻是看完這樣的一片博客或學完這樣的一本書後仍然茫然的反問自己:這些懂了嗎?相關的問題都能處理嗎?

問題的探索

一項有價值、需要學習才能獲取的技能或知識肯定不是一個30分鐘或者一本30多頁的書籍或者一串連續的文章就可以讓你“一覽衆山小”的,至少對於我來說是這樣。接觸到自上而下和自下而上這兩種學習方式後才明白,學校的教育就是自下而上的學習方式:從每個小內容學起,一步接一步,學到最後你纔有可能明白自己學的是什麼。而畢業後的自學更多的就是自上而下的學習方式:總覽整體,通過一個個主題探索深入學習。
學校式教育從我高中時代的開始就被我所拋棄,因爲始終有個疑問縈繞在我的腦中:我學習這些東西有什麼用?處於這種想法開始了自我探索,最終確定啓發式學習纔是我適合我的:從一個興趣點開始,逐步深入展開。大學畢業後一直實踐這一學習方式,效果卻沒有想象中的好,因爲隨着逐步展開過程中會有許多磕磕絆絆,有些可以解決,有些無法逾越,到最後“漏網”太多。
對於自上而下的學習也探索過,但是一直有個梗,就是學習的過程中有很多東西讓你感覺很基礎但是卻不知道,跟啓發式學習一樣,有一種重回學校把基礎知識擼一遍的衝動

我的總結

進行高中大學般的自下而上的學習已經不太可能了,原因很簡單:要喫飯,但是這個過程是必不可少的。而最適合自學的學習模式就是以自上而下爲開端,達到初步瞭解全局的程度,再結合啓發式的興趣引導,最後在完成自上而下的初步遍歷後開展自下而上的補充式學習
上面有句譯文非常值得與君共勉:每當你掌握一個困難的概念,你就可以確定另一個即將到來。
所以,翻滾吧,阿信!
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章