“一周一語言”是如何做到的?

精益創(chuàng)業(yè)中推崇的是最小可行產(chǎn)品MVP(minimum viable product), 找到痛點,計算出最簡原型,轉為最小可行產(chǎn)品,在用戶的反饋下不斷做迭代。在產(chǎn)品從0到1的階段,'最小可行產(chǎn)品'MVP非常實用。

在我們學習新知識時也一樣,從0到1應以'學以致用'為主。將我們的最終目標簡化到讓它能夠跑起來的配置,再用最快的速度搞定這些配置讓它跑起來,之后再折騰什么也有個依托,這樣就不致于變成孤立的知識點,轉身就忘掉。

單純的語言本身學習起來不難,主要是語法,函數(shù),作用域。要掌握它們,一個月足夠了。

對小白來說,對于新知識體系是沒有感知的,只覺得最全最詳細的最好。但真正去學的時候,大而全的體系會讓人找不著北。一個個新知識蜂擁而上,消化不掉很容易放棄。

假如我們還是按填鴨式教育那樣學習。買一本從入門到'精通'的書,從第一章順序往下看。很有可能學到一半就放棄。就像是在用大石頭畫一幅巨圖,在下面堆石頭的人不知道現(xiàn)在畫到什么程度了,一開始推石頭還挺輕松,堆多了之后就不行了。

一門從入門到'精通'書籍,描述的是一個最終態(tài)。必需每一章都頂配,才能構建出這個最終態(tài)。而'最小可行系統(tǒng)'只要求最簡配置就能跑起來,得到一些正反饋后再去強化升級。如果跟著書一章章學習,驗證和反饋機制太漫長,學習效率就慢下來了。

'最小可行體系'是為了掌握某個新知識所需要的最簡環(huán)境。每款游戲都有最小配置要求,你要做的就是配好最簡環(huán)境,讓你的知識先跑起來。只要它跑起來,慣性使它短時間不會停下來,然后再慢慢添加配置,最終達到穩(wěn)定。

如何找到'最小可行體系'?

  1. 學習這個知識體系的目標是什么?
  2. 最短時間內到達目標需要那些知識點?
  3. 排好優(yōu)先級
  4. 專注,一次只學一個知識點

舉個例子:

打算學PHP,目標是做一套系統(tǒng),提供API給移動端使用。

隨便找本從入門到精通的PHP書,你會看到這樣的學習路線

Paste_Image.png

如果按步就班的去學,那學習周期會非常長,如果還是業(yè)余學習,很容易就擱置了。

我們得篩選出最最簡配置,PHP基礎語法得學,最基本的數(shù)據(jù)結構以及函數(shù)。目標是為了提供API給移動端,可以暫時不用提供web端,前端內容都pass掉。數(shù)據(jù)庫可以暫時優(yōu)先級放低,先能讓移動端調用到API,靜態(tài)假數(shù)據(jù)都足夠用了。再來就是部署到服務器,不用管分布式,也不用加cache,買個帶PHP環(huán)境的vps,直接ssh部署就好了。

最最簡配置(含優(yōu)先級):語法,靜態(tài)API,部署,RESTful API,數(shù)據(jù)庫,權限

這是最核心內容,只要這些配置跑起來了,接下來就是不斷往里面添加配置或者豐富配置。(怎么豐富我們在后續(xù)的文章中詳細描述)

再看打算學Android,目標是以此找份工作。

Paste_Image.png

看,Android知識體系,東西不少對吧。假如一個個學過來,容易懵逼,整個UI component就得花一個月時間來學。反饋的太慢,越學越?jīng)]有信心。

換個最簡配:環(huán)境搭建,最小可行app(列表頁,詳情頁,設置頁),網(wǎng)絡,緩存,權限

事實上,如果已經(jīng)熟練掌握一門語言,其他語言的部分知識體系是重復的。例如網(wǎng)絡,緩存,線程,權限設計等。無非是那些語言wrapper出來的API不一樣罷了。

這樣一周就能完成'最小可行體系',體驗過后才能知道自己是否喜歡這個語言,是否想要深入下去。

其實我們學習時也是一個個'最小'知識節(jié)點,但它們是零散的,無法交織成體系。'可行體系'不是孤立知識點的堆積,而是對它們結構性的整合和組織。

從0到1的階段,別盲目的聽別人的建議,容易困惑。比如:

"java有什么好學的,PHP才是最好的語言。"
"Android要學的東西太多了。插件化,Material Design,Retrofit,Rxjava,lambda,gradle,ndk。還是學iOS吧,iOS簡單"
"現(xiàn)在都不興OC了,學swift吧"

假如你對什么語言感興趣,設想一個'最小可行產(chǎn)品'場景,把需要的內容列出來,轉換成需要的用到的知識點,碰到不會的再針對性的問google,問大神。Stay通過這個方法,陸續(xù)入門了OC Swift Ruby PHP Python。離全干工程師還有一個JS的距離。

學以致用,從0到1,相信你一定可以。

但有了'最小可行體系'還遠遠不夠,這只是快速評估該語言是否適合你的開始。如果你還想讓這個小體系變成一張知識結構網(wǎng),就需要不斷地圍繞著它做優(yōu)化,直到它能夠成為你技術變現(xiàn)的一個出口。

如何優(yōu)化,如何深入學習,如何將語言輸出變現(xiàn)?這些大家怎么看呢?不妨討論下吧。

本文為開篇,Stay會陸續(xù)出一個系列來展開自己的觀點。希望和大家一起交流,尋找最佳算法。

?推薦閱讀:
還需要再學習一門語言嗎?
還在用應試教育那一套學編程?
程序員在'抽象化的OOP世界'里該如何發(fā)展?

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,552評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 文:鐲耳 我的故鄉(xiāng)在東北鄉(xiāng)村,故鄉(xiāng)有一種野菜,很多人都叫它是蒲公英,在家鄉(xiāng),人們管它叫“婆婆丁”。每年春月,婆婆丁...
    鐲耳閱讀 750評論 1 3
  • 今早抽到了寶劍十,逆位~ 讀牌一:一位男士趴在地上,他的頭部有血流出,流淌在地上。他的頭朝向了光明,估計他閉著眼睛...
    Verafan閱讀 384評論 0 0
  • 說到筆記本,就不得不提到豆瓣小組的鎮(zhèn)組之寶熊谷正壽的《筆記本圓夢計劃》,想當初為了找這本京東、當當、亞馬遜統(tǒng)統(tǒng)缺貨...
    顏言家顏顏閱讀 2,260評論 6 14