摘要:一次語言學習體驗在我們開始學習一門語言或者技術(shù)的時候,我們可能會從一門開始。如何應用一門新的技術(shù)對于多數(shù)人來說,寫書不是一件容易的事,而應用新的技術(shù)則是一件迫在眉睫的事。而學習一門新的技術(shù)的最好實踐就是用這門技術(shù)對現(xiàn)有的系統(tǒng)行重寫。
還在繼續(xù)開發(fā)Growth(Github: https://github.com/phodal/growth)的路上,很多功能似乎已經(jīng)趨于完善,有些功能也讓我百玩不厭——如最近添加的規(guī)則引擎。接著我開始陸陸續(xù)續(xù)地添加了這么多功能。直接今天我想我需要一篇文章放在最前面來告訴用戶,你需要怎樣去學習?因此,也就有了此文。
我不是一個學霸,大學掛了六科。也沒有受過非常好的教育,上大的大學是二本倒數(shù)的。好在計算機學得比較早,也可以混點自學能力,也算混得還行。一直想著做一些有意義的事,并且可以獲得更多的用戶反饋。想法一直有的,直到有一天在整理資料的時候才想起來可以整理出一個APP。
盡管之前已經(jīng)有技能樹、成長書單和Web Developer 成長路線圖的經(jīng)驗,說到底這也是很大的挑戰(zhàn)。
一次語言學習體驗在我們開始學習一門語言或者技術(shù)的時候,我們可能會從一門hello,world開始。
好了,現(xiàn)在我是Scala語言的初學者,接著我用搜索引擎去搜索『Scala』來看看『Scala』是什么鬼:
Scala 是一門類Java 的編程語言,它結(jié)合了面向?qū)ο缶幊毯秃瘮?shù)式編程。
接著又開始看『Scala "hello,world"』,然后找到了這樣的一個示例:
object HelloWorld { def main(args: Array[String]): Unit = { println("Hello, world!") } }
GET到了5%的知識。
看上去這門語言相比于Java語言來說還行。然后我找到了一本名為『Scala 指南』的電子書,有這樣的一本目錄:
表達式和值
函數(shù)是一等公民
借貸模式
按名稱傳遞參數(shù)
定義類
鴨子類型
柯里化
范型
Traits
...
看上去還行, 又GET到了5%的知識點。接著,依照上面的代碼和搭建指南在自己的電腦上安裝了Scala的環(huán)境:
brew install scala
Windows用戶可以用:
choco install scala
然后開始寫一個又一個的Demo,感覺自己GET到了很多特別的知識點。
到了第二天忘了!
接著,你又重新把昨天的知識過了一遍,還是沒有多大的作用。突然間,你聽到別人在討論什么是這個世界上最好的語言——你開始加入討論了。
于是,你說出了Scala這門語言可以:
支持高階函數(shù)。lambda,閉包...
支持偏函數(shù)。 match..
mixin,依賴注入..
等等
雖然隔壁的Python小哥贏得了這次辯論,然而你發(fā)現(xiàn)你又回想起了Scala的很多特性。
你發(fā)現(xiàn)隔壁的Python小哥之所以贏得了這場辯論是因為他把Python語言用到了各個地方——機器學習、人工智能、硬件、Web開發(fā)、移動應用等。而,你還沒有用Scala寫過一個真正的應用。
讓我想想我來能做什么?我有一個博客。對,我有一個博客,我可以用Scala把我的博客重寫一遍:
先找一Scala的Web框架,Play看上去很不錯,就這個了。這是一個MVC框架,原來用的Express也是一個MVC框架。Router寫這里,Controller類似這個,就是這樣的。
既然已經(jīng)有PyJS,也會有Scala-js,前端就用這個了。
好了,博客重寫了一遍了。
感覺還挺不錯的,我決定向隔壁的Java小弟推銷這門語言,以解救他于火海之中。
『讓我想想我有什么殺手锏?』
『這里的知識好像還缺了一點,這個是什么?』
好了,你已經(jīng)GET到了90%了。如下圖所示:
希望你能從這張圖上GET到很多點。
輸出是最好的輸入上面那張圖『學習金字塔』就是在說明——輸出是最好的輸入。
如果你不試著去寫點博客、整理資料、準備分享,那么你可能并沒有意識到你缺少了多少東西。雖然你已經(jīng)有了很多的實踐,然并卵。
因為你一直在完成功能、完成工作,你總會有意、無意地漏掉一些知識,而你也沒有意識到這些知識的重要性。
從我有限的(500+)博客寫作經(jīng)驗里,我發(fā)現(xiàn)多數(shù)時候我需要更多地的參考資料才能更好也向人們展示這個過程。為了輸出我們需要更多的輸入,進而加速這個過程。
而如果是寫書的時候則是一個更高水平的學習,你需要發(fā)現(xiàn)別人在他們的書中欠缺的一些知識點。并且你還要展示一些在別的書中沒有,而這本書會展現(xiàn)這個點的知識,這意味著你需要挖掘得更深。
所以,如果下次有人問你如果學一門新語言、技術(shù),那么答案就是寫一本書。
如何應用一門新的技術(shù)對于多數(shù)人來說,寫書不是一件容易的事,而應用新的技術(shù)則是一件迫在眉睫的事。
通常來說,技術(shù)出自于對現(xiàn)有的技術(shù)的改進。這就意味著,在掌握現(xiàn)有技術(shù)的情況下,我們只需要做一些小小的改動就更可以實現(xiàn)技術(shù)升級。
而學習一門新的技術(shù)的最好實踐就是用這門技術(shù)對現(xiàn)有的系統(tǒng)行重寫。
第一個系統(tǒng)(v1): Spring MVC + Bootstrap + jQuery
那么在那個合適的年代里, 我們需要單頁面應用,就使用了Backbone。然后,我們就可以用Mustache + HTML來替換掉JSP。
第二個系統(tǒng)(v2): Spring MVC + Backbone + Mustache
在這時我們已經(jīng)實現(xiàn)了前后端分離了,這時候系統(tǒng)實現(xiàn)上變成了這樣。
第二個系統(tǒng)(v2.2): RESTful Services + Backbone + Mustache
或者
第二個系統(tǒng)(v2.2): RESTful Services + Angular.js 1.x
Spring只是一個RESTful服務,我們還需要一些問題,比如DOM的渲染速度太慢了。
第三個系統(tǒng)(v3): RESTful Services + React
系統(tǒng)就是這樣一步步演進過來的。
盡管在最后系統(tǒng)的架構(gòu)已經(jīng)不是當初的架構(gòu),而系統(tǒng)本身的業(yè)務邏輯變化并沒有發(fā)生太大的變化。
特別是對于如博客這一類的系統(tǒng)來說,他的一些技術(shù)實現(xiàn)已經(jīng)趨于穩(wěn)定,而且是你經(jīng)常使用的東西。所以,下次試試用新的技術(shù)的時候,可以先從對你的博客的重寫開始。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/78581.html
摘要:本文最早為雙十一而作,原標題雙大前端工程師讀書清單,以付費的形式發(fā)布在上。發(fā)布完本次預告后,捕捉到了一個友善的吐槽讀書清單也要收費。這本書便從的異步編程講起,幫助我們設(shè)計快速響應的網(wǎng)絡(luò)應用,而非簡單的頁面。 本文最早為雙十一而作,原標題雙 11 大前端工程師讀書清單,以付費的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進行了深入的交流,現(xiàn)免費分享到這里,不足之處歡迎指教...
摘要:本文最早為雙十一而作,原標題雙大前端工程師讀書清單,以付費的形式發(fā)布在上。發(fā)布完本次預告后,捕捉到了一個友善的吐槽讀書清單也要收費。這本書便從的異步編程講起,幫助我們設(shè)計快速響應的網(wǎng)絡(luò)應用,而非簡單的頁面。 本文最早為雙十一而作,原標題雙 11 大前端工程師讀書清單,以付費的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進行了深入的交流,現(xiàn)免費分享到這里,不足之處歡迎指教...
摘要:本文最早為雙十一而作,原標題雙大前端工程師讀書清單,以付費的形式發(fā)布在上。發(fā)布完本次預告后,捕捉到了一個友善的吐槽讀書清單也要收費。這本書便從的異步編程講起,幫助我們設(shè)計快速響應的網(wǎng)絡(luò)應用,而非簡單的頁面。 本文最早為雙十一而作,原標題雙 11 大前端工程師讀書清單,以付費的形式發(fā)布在 GitChat 上。發(fā)布之后在讀者圈群聊中和讀者進行了深入的交流,現(xiàn)免費分享到這里,不足之處歡迎指教...
閱讀 3442·2021-11-22 09:34
閱讀 730·2021-11-19 11:29
閱讀 1410·2019-08-30 15:43
閱讀 2292·2019-08-30 14:24
閱讀 1919·2019-08-29 17:31
閱讀 1288·2019-08-29 17:17
閱讀 2676·2019-08-29 15:38
閱讀 2851·2019-08-26 12:10