如何快速掌握一门新技术/语言/框架…
前言
IT行業(yè)中的企業(yè)特點(diǎn)是都屬于知識密集型企業(yè)。這種企業(yè)的核心競爭力與員工的知識和技能密切相關(guān)。而如果你在企業(yè)中扮演的是工程師的角色的話,那么你的核心競爭力就是IT相關(guān)的知識與技能的儲備情況。而眾所周知,IT行業(yè)是一個大量產(chǎn)生新知識的地方,就拿Web前端舉例,短短的5,6年時間,Web前端已經(jīng)經(jīng)歷了數(shù)次變革,就目前來看變革還將繼續(xù)下去。從以前的div+css網(wǎng)格化布局到JavaScript的方興未艾,然后是各種JavaScript框架的百家爭鳴,HTML5和CSS3的落地,移動web沖擊下帶來的響應(yīng)式設(shè)計,jQuery,AngularJs,ReactJs等操作DOM元素截然不同的理念和方式,web component的標(biāo)準(zhǔn)化進(jìn)程……為什么現(xiàn)在企業(yè)到處都在招前端工程師?好像突然之間,前端工程師成了稀缺資源。這里的原因之一就是很多前端工程師跟不上行業(yè)變化,無法達(dá)到目前市場上對前端工程師的能力和要求。在這種大環(huán)境下,工程師能夠掌握快速學(xué)習(xí)的能力就變的至關(guān)重要。
筆者根據(jù)自身的親身體會,以及結(jié)合對周圍同事的觀察,對如何快速掌握一門新技術(shù)(這里的技術(shù)包括一門新的IT技術(shù),包括一門新的編程語言,抑或一種新的程序框架等)有著以下幾點(diǎn)指導(dǎo)。
要想快速掌握一門新技術(shù),首先有兩個先決條件。
1.首先思想要主動求變,敢于跳出的自己的舒適區(qū),對任何技術(shù)都抱有開放的心態(tài)。貪圖安穩(wěn)是人的本性。而這種本性往往會阻礙你的發(fā)展。人所能了解的知識的多少,取決于自己的舒適區(qū)有多大,舒適區(qū)越大,與外界接壤的范圍越大,就越感覺自己的無知。程序員至少要做到兩點(diǎn),不要對自己不了解的技術(shù)心存偏見,不要對自己不熟悉的技術(shù)心存恐懼。
2.要化被動式學(xué)習(xí)為主動式學(xué)習(xí)。在中國很大一批程序員每天都是在被動式學(xué)習(xí)。什么是被動式學(xué)習(xí)?就是被人、事逼著去學(xué)習(xí)。今天新啟動一個項目,技術(shù)調(diào)研不想采用新的技術(shù),開發(fā)過程中碰到難題才會去查資料,整天就是把別人的、自已以前寫的代碼復(fù)制重用,復(fù)制以后出問題了也要花好長時間解決。舉個例子,一個程序員使用了Spring好幾年,都不知道Spring的核心理念,不知道Spring框架結(jié)構(gòu),不知道Spring各個組件功能,不知道Spring新版本的新特性。這是非常可怕的,因為你不知道這些東西,就無法采納Spring的最佳實(shí)踐,出現(xiàn)問題不知道如何快速定位,項目中的某些需求就無法使用Spring早已封裝好的功能(因為你不知道Spring還能干這個)。主動式學(xué)習(xí)需要你未雨綢繆,不能臨時抱佛腳。而且要把學(xué)習(xí)看做是對自己的積累和提高,看成是對自己的長期投資,不能抱有太強(qiáng)的功利性。
3.有人說,我就是喜歡舒適區(qū),我就是不喜歡主動學(xué)習(xí),有什么好的方式和方法改變這兩點(diǎn)?說實(shí)話,我所能提供給你的幫助很有限。正如《后會無期》里的一句臺詞,“我聽過很多大道理,可依然過不好這一生”。這兩點(diǎn)還是更要靠你個人來實(shí)現(xiàn)。而接下來的一些點(diǎn),我相信可以幫助到你。
1、學(xué)習(xí)一門新技術(shù)前,先要搞清楚為什么要學(xué)習(xí)它?沒這個技術(shù)前我們是怎么干活的?有了它以后我們又是怎么干活的?它帶來了哪些改變?其實(shí)問這些問題,就是為了了解該技術(shù)解決或者簡化了那個問題域的問題,又是采用了什么方式達(dá)到了這樣的效果。就拿AngularJS為例,AngularJS最初是為了彌補(bǔ)HTML構(gòu)建應(yīng)用的不足。以前的HTML在設(shè)計時是為了展示多媒體信息,后來雖然拓展了一些動態(tài)功能,但是在應(yīng)用web化的潮流下,HTML設(shè)計上的不足就越來越突出。比如DOM元素操控太繁瑣、業(yè)務(wù)邏輯很難模塊化、可測性低、開發(fā)效率底下等。而AngularJS采用了一種全新的設(shè)計來解決該問題,它提出了一系列概念,引入了數(shù)據(jù)綁定、標(biāo)識符、路由、依賴注入等特性,大大簡化了我們開發(fā)WEB開發(fā)的工作量。通過這樣的方式能迅速建立起了對該技術(shù)的宏觀認(rèn)識,了解了其潛在的應(yīng)用場景、應(yīng)用方式以及一些局限性等。
2、接下來就要實(shí)際使用一下該技術(shù)的核心的功能,強(qiáng)化對它的認(rèn)識。方式就是參考該技術(shù)官網(wǎng)的Quick Start(快速開始)章節(jié),一步一步來。現(xiàn)在的程序員越來越珍惜時間,文檔的簡潔性、完備性、易上手都成了是否采納某項技術(shù)的指標(biāo)之一。尤其是現(xiàn)在的各種開源組件,連文檔都是開源的。所以很多文檔都是完全按照程序員的思維寫的,讀起來很清爽。再拿Spring來說,想學(xué)習(xí)Spring4.0推出的Spring boot組件,那么可以訪問其官網(wǎng),頁面上最大的按鈕就是Quick Start。點(diǎn)擊學(xué)習(xí)吧。頁面是一個簡單的例子,可能花不了你五分鐘。如果還沒過癮,右邊又列出了更多的
Getting Started Guides ,也是一步一步的教你進(jìn)階功能。有些人可能要問了,英語不好怎么辦?請學(xué)英文。英文是一個優(yōu)秀程序員的必備技能。可能也有人說,看文檔時有各種雜音咋辦。比如看Spring boot的start guide,需要之前對Spring有一定了解,需要知道tomcat、jetty是干啥的,需要有一定gradle或者maven使用經(jīng)驗…這些知識在演練Spring boot的那個小程序時都需要,但由于這些雜音的干擾,會拖慢學(xué)習(xí)的過程。擺脫這些雜音的唯一方式就是,對于那些不了解的知識點(diǎn),也花時間去學(xué)習(xí)吧。所以學(xué)習(xí)是一個良性循環(huán)的過程,學(xué)的越多,就學(xué)的越快。
3、前面兩步能夠保證你對一門技術(shù)入門,那么如何進(jìn)階那?這個階段就是讀了。從官網(wǎng)上把該技術(shù)的詳細(xì)文檔扒拉下來,使勁讀吧。通讀這些文檔能讓你進(jìn)入它的實(shí)現(xiàn)細(xì)節(jié),以及各種使用方式與場景,甚至一些最佳實(shí)踐。比如Spring boot官方文檔,詳細(xì)到了牙齒。凡是你想到的、沒想到的,文檔都貼心的列了出來。如果你想學(xué)習(xí)Scala,那么請訪問http://www.scala-lang.org/documentation/,各種文檔應(yīng)有盡有,讀完就是大半個Scala專家。一門技術(shù)最好的文檔必須是它的官方文檔,如果不是,那么這門技術(shù)火不了。注意通讀文檔的過程中一定要在項目加以運(yùn)用。如果在項目中沒實(shí)踐機(jī)會,自己可以寫一些小的demo來實(shí)踐。學(xué)習(xí)知識時實(shí)踐與理論相結(jié)合的道理恒古不變。
走完前三步,你對這門技術(shù)的理解已經(jīng)比大多數(shù)人強(qiáng)了。你可以算掌握這門技術(shù)了。那么還有進(jìn)階方式?jīng)]?當(dāng)然有,那就是把你所學(xué)、所想講出來,寫出來,暴露在公眾之下,接受批判,從而發(fā)現(xiàn)自己的不足,促使你進(jìn)步。有空給大家做幾個講座,寫幾個系列文章,那么你在大家眼中就成了這門技術(shù)的牛人。你就有了各種機(jī)會來解決使用該技術(shù)遇到的各種疑難雜癥,反過來加深和修正你的理解。沒事上上StackOverFlow,回答別人幾個問題,或者訂閱該技術(shù)的問題列表,經(jīng)常看一看。
4、還可以再繼續(xù)深入。加入國內(nèi)/國際技術(shù)社區(qū)(國內(nèi)沒這樣的社區(qū)咋辦,機(jī)會來了,趕緊自己建一個),進(jìn)一步發(fā)揮自己影響力。翻譯、編寫與該技術(shù)相關(guān)的書籍;如果該技術(shù)是開源的,那么有時間就提交修改把,自己就成了開發(fā)者一員了。這就是質(zhì)的飛躍,從使用工具進(jìn)階到創(chuàng)造工具。
5、走完5步,你已經(jīng)不是僅僅掌握這門技術(shù)了,你已經(jīng)超神了好吧!有人可能又會問,能達(dá)到這五步的肯定要花很長時間,不是一般人能夠到的高度。那當(dāng)然了,這個過程肯定很難,但并非難到登天。至少我身邊有很多這樣的例子。其實(shí)你只要完成前三步,你就比50%的程序員牛了,完成第四步,你已經(jīng)站在90%程序員的前面。
最后快速總結(jié)。重要的事情說三遍。
主動學(xué)習(xí)很重要,主動學(xué)習(xí)很重要,主動學(xué)習(xí)很重要。
官方文檔很重要,官方文檔很重要,官方文檔很重要。
實(shí)踐很重要,實(shí)踐很重要,實(shí)踐很重要。
作者:黃博文@無敵北瓜
出處:http://www.cnblogs.com/huang0925
總結(jié)
以上是生活随笔為你收集整理的如何快速掌握一门新技术/语言/框架…的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

- 上一篇: Docker-操作容器1
- 下一篇: 【SpringBoot】SpringBo