阿里巴巴P9大佬雷卷與中間件小哥重新定義:高段位程序員的學(xué)習(xí)之道


每次看到和程序員相關(guān)的段子,我都會(huì)會(huì)生一笑:這是時(shí)代的進(jìn)步??!

上個(gè)世紀(jì),桌面時(shí)代

Bacis、6502匯編

一切都是面向?qū)ο?/p>

Turbo賽的常用編程語(yǔ)言

那時(shí)候能搞編程的基本都是家里有礦

或是家庭教育超前


90年代,web時(shí)代

個(gè)人計(jì)算機(jī)開(kāi)始流行

大洋彼岸各種語(yǔ)言打得火熱

JavaScript、ASP、PHP

業(yè)余時(shí)間可以通過(guò)做網(wǎng)頁(yè)來(lái)掙錢了

那時(shí)候?qū)W計(jì)算機(jī)的都賺到了人生的第一桶金


2000年后,移動(dòng)互聯(lián)網(wǎng)時(shí)代?

iOS和Android建立了移動(dòng)開(kāi)發(fā)者生態(tài)

除了web、系統(tǒng)開(kāi)發(fā),新增了大量的移動(dòng)開(kāi)發(fā)者

Java、C++、Swift

身邊的程序員開(kāi)始多了起來(lái)

移動(dòng)社交的普及成為各類段子迅速傳播的助推器


隨后就是這幾年的事情了,云計(jì)算、大數(shù)據(jù)、AI的流行,使得程序員這個(gè)群體越來(lái)越龐大,對(duì)社會(huì)的貢獻(xiàn)不僅僅局限在某個(gè)企業(yè)軟件,或某個(gè)手機(jī)APP上,而是影響到人們吃穿住行的方方面面。

如今,互聯(lián)網(wǎng)、云計(jì)算和大數(shù)據(jù)的普及成就了一批創(chuàng)業(yè)公司,也將程序員這個(gè)群體帶入尋常百姓家。收入較高、生活節(jié)儉、無(wú)不良嗜好的程序員成為單身女青年的優(yōu)質(zhì)擇偶群體。數(shù)不盡的段子降低了大家認(rèn)識(shí)程序員的門檻。例如:

程序猿的讀書歷程:x語(yǔ)言入門—> x 語(yǔ)言應(yīng)用實(shí)踐—> x 語(yǔ)言高階編程—> x 語(yǔ)言的科學(xué)與藝術(shù)—> 編程之美—> 編程之道—> 編程之禪—>頸椎病康復(fù)指南。

還有一系列的程序員專屬表情包、T恤、信用卡,以及程序員專屬茶葉和各類面向程序員的書籍和知識(shí)付費(fèi)產(chǎn)品,程序員這個(gè)群體一時(shí)名聲大噪。

高段位程序員的工作指南

就像醫(yī)生分外科醫(yī)生、內(nèi)科醫(yī)生、骨科醫(yī)生、耳鼻喉科醫(yī)生和中醫(yī)大夫一樣,程序員也有很多種,有開(kāi)發(fā)APP的,開(kāi)發(fā)網(wǎng)站的,做大數(shù)據(jù)的,做AI的,還有開(kāi)發(fā)中間件用來(lái)保證網(wǎng)站、APP穩(wěn)定、順暢運(yùn)行,不宕機(jī)的。如果你自己不是程序員,或者身邊沒(méi)有程序員的朋友,那么對(duì)這一群體的了解基本停留在形容我們的各種段子上,例如牛仔褲、格子襯衫,和產(chǎn)品經(jīng)理間的江湖故事。

但其實(shí)高配置的程序員的工作和生活遠(yuǎn)比我們想象中要自律的多、高效的多,并且,技術(shù)迭代太快,要保持住這種優(yōu)勢(shì)非常困難。以下整理自阿里巴巴中間件美國(guó)團(tuán)隊(duì)的資深技術(shù)專家雷卷在內(nèi)網(wǎng)分享的他的學(xué)習(xí)方式,內(nèi)容較多,但實(shí)操性很強(qiáng)。

持續(xù)學(xué)習(xí),淡化經(jīng)驗(yàn)主義

程序員和醫(yī)生、律師這類職業(yè)不太一樣,醫(yī)生和律師年紀(jì)越大,越資深。是因?yàn)橥ㄟ^(guò)之前的手術(shù)案例或判例積累了豐富的實(shí)操經(jīng)驗(yàn),這是其他學(xué)習(xí)方式換不來(lái)的。但對(duì)程序員而言,由于行業(yè)的演進(jìn)速度過(guò)快,以往積累的經(jīng)驗(yàn)很快就可能不再適用。舉個(gè)例子,一位Java程序員,非常擅長(zhǎng)Struts + JSP開(kāi)發(fā),并且解決了很多Struts框架的問(wèn)題,但是如果今天仍然使用之前的技術(shù),那就會(huì)給同事和公司帶來(lái)很多技術(shù)上的負(fù)擔(dān)。再例如,以往軟件經(jīng)驗(yàn)的積累會(huì)體現(xiàn)在架構(gòu)的設(shè)計(jì)上,很多程序員會(huì)認(rèn)為經(jīng)驗(yàn)積累的多,架構(gòu)就會(huì)設(shè)計(jì)好,但就今天來(lái)說(shuō)就未必了。如今,公共云廠商提供的解決方案就已經(jīng)包含了架構(gòu)的部分,在云上,架構(gòu)設(shè)計(jì)基本都是模板化了。

談編程歷史的實(shí)際意義并不大,以往很多的經(jīng)驗(yàn)放在今天已經(jīng)不適用了,即便有,也會(huì)給其他人帶來(lái)甄別的成本。如果2-3年不關(guān)注技術(shù),基本就和編程絕緣了。

持續(xù)coding,加強(qiáng)使用編譯工具的熟練度

平時(shí)和幾個(gè)Google的工程師吃飯聊天,問(wèn)了一下他們遇到過(guò)哪些技術(shù)牛人?一哥們兒說(shuō),他的leader太牛啦,幫助他找bug,工具和debug使用的熟練程度眼花繚亂,很多工具都是他聽(tīng)都沒(méi)有聽(tīng)過(guò),而且Python腳本編寫幾乎行云流水一樣。這位leader并沒(méi)有一眼看出問(wèn)題,只是他在單位時(shí)間內(nèi)嘗試的次數(shù)特別多,很快就把問(wèn)題給找出來(lái)了。

在排查問(wèn)題和寫代碼上,如果你1個(gè)小時(shí)只能嘗試1種方法,別人卻能夠嘗試10次,別人就是比你牛。天下武功為快不破。寫demo,查問(wèn)題,工具熟練的程度會(huì)決定你學(xué)習(xí)和嘗試新事物的速度。

看海量的書,勤讀專業(yè)文檔

學(xué)習(xí)是需要系統(tǒng)化的,不是看一篇文章就能明白的,尤其我們還不是行業(yè)大拿,英文也一般的情況下。

個(gè)人強(qiáng)烈推薦

https://www.safaribooksonline.com/?

Safari應(yīng)該是出版社聯(lián)盟,你需要的IT類圖書基本都能找到,兩個(gè)小問(wèn)題:需要收費(fèi),一年大概400刀;圖書都是英文的。 Safari BooksOnline的圖書非常全,幾乎涵蓋絕大多數(shù)出版社,包括我們熟知的Oreilly, Apress, Manning, Packtpub, Addisonwiley,而且更新速度非???。另外Safari提供的Learn path也非常有用,幫助你系統(tǒng)的了解某一些技術(shù),如Blockchain, AI, Machinelearning等等。視頻資料也非常多,包括專家知識(shí)培訓(xùn)和一些技術(shù)大會(huì)的視頻


除了圖書,我們還需要關(guān)注文檔(reference)?,F(xiàn)在,很多框架和技術(shù)的參考文檔質(zhì)量已經(jīng)越來(lái)越高了,例如SpringFramework, Hibernate, Kotlin, Groovy的文檔??纯碈NCF上的項(xiàng)目,每個(gè)項(xiàng)目的文檔質(zhì)量都是非常高的。現(xiàn)在很多開(kāi)源項(xiàng)目不是1-2兩個(gè)程序員單打獨(dú)斗,而是一個(gè)團(tuán)隊(duì)加一群人,外加像GitHub等協(xié)作平臺(tái),來(lái)向外輸出高質(zhì)量的項(xiàng)目文檔。另外,一些新的技術(shù),剛開(kāi)始只有文檔,圖書還沒(méi)有來(lái)得及出版,所以你需要閱讀好文檔。個(gè)人在做Service Mesh的時(shí)候,對(duì)應(yīng)的圖書就比較少,只能閱讀Envoy +Istio的官方文檔,沒(méi)有關(guān)系,可能稍微難閱讀點(diǎn),但是多讀兩遍就可以了,畢竟我們不是天才和這個(gè)領(lǐng)域的專家。

如果money允許的話,最好還是訂閱一下Safari BooksOnline的服務(wù),當(dāng)然可以一個(gè)小團(tuán)隊(duì)內(nèi)訂閱一個(gè)這樣的服務(wù),大家均分一下。另外時(shí)不時(shí)重新閱讀一下官方文檔,畢竟官方文檔還是最權(quán)威的,也是最新的。

通過(guò)視頻進(jìn)行學(xué)習(xí)

之前個(gè)人看書是比較多的,最多YouTube上看一下大會(huì)的視頻。近一年比較關(guān)注一些視頻教學(xué)。

視頻和圖書有什么區(qū)別?首先圖書編寫還是比較費(fèi)時(shí)的,圖書作者都要有一定的寫作水平,這個(gè)讓一些技術(shù)比較牛的人或者沒(méi)有非常充裕時(shí)間的人就比較麻煩。Java程序員可能都比較了解Josh Long這個(gè)人,他的《Cloud Native Java》圖書花費(fèi)他一年多的時(shí)間才出版,而期間他的視頻卻發(fā)布了很多。而且,圖書無(wú)法展示代碼的全部,只能貼一段,但在視頻中,這些代碼經(jīng)常是需要輸入的,你會(huì)發(fā)現(xiàn)作者有很多的黑科技或者黑技巧,你也能學(xué)習(xí)到。如React入門圖書中,可能只會(huì)說(shuō)明或者引用Redux,而教學(xué)視頻中,會(huì)打開(kāi)對(duì)應(yīng)的網(wǎng)站,給你列舉一些重點(diǎn)特性。

所以,圖書中可能比較容易忽略的東西,在視頻中會(huì)很好地被補(bǔ)充進(jìn)來(lái)。而且,很多視頻的制作者,本身是來(lái)自框架和技術(shù)的開(kāi)發(fā)團(tuán)隊(duì),而不是第三方的圖書作者,所以新鮮度和技巧性都非常明顯。不少人對(duì)大段文字,尤其是理論和學(xué)術(shù)很強(qiáng)的圖書,都比較過(guò)敏,很多人問(wèn)如何學(xué)習(xí)domaindriven design,但是能將DDD圖書看完2-3章不犯困的,非常困難,主要是因?yàn)槲淖痔?,沒(méi)有什么代碼和圖片,而且不像小說(shuō)那樣有情節(jié),不犯困是很難的。反之,DDD培訓(xùn)視頻就不一樣了,PPT制作的也非常好,而且有動(dòng)畫,相關(guān)的說(shuō)明貼切,所以更容易學(xué)習(xí)。


這里列舉一下比較有名氣的視頻培訓(xùn)網(wǎng)站,有Pluralsight, Lynda和Udemy等。 Udemy的視頻是需要單個(gè)購(gòu)買的,如一個(gè)3-4個(gè)小時(shí)的視頻需要10刀,如果你閱讀量比較大,那花費(fèi)就會(huì)比較多。Pluralsign是會(huì)員制,付費(fèi)會(huì)員可以看所有的視頻教學(xué)。內(nèi)容非常多也比較新,而且有一些是成系列的,對(duì)跨界學(xué)習(xí)幫助特別大。例如,在做Service Mesh的時(shí)候,可能涉及到SDN,然而我在Safari上閱讀一本SDN的圖書,我只能說(shuō)臣妾做不到,尤其跨界學(xué)習(xí)的同學(xué),難讀啊。但是Pluralsight上一個(gè)2個(gè)小時(shí)的視頻教學(xué),我就馬上知道了。再舉個(gè)例子,Java程序員要學(xué)一下ES 6 +React開(kāi)發(fā),如果找JavaScript圖書先看,然后再看React圖書,周期就太長(zhǎng)了,而Pluralsight上一個(gè)ES 6 + React Learning Path視頻教學(xué),馬上就能讓你快速入門,而且就能投入開(kāi)發(fā),然后在用相關(guān)圖書和文檔補(bǔ)充一下,知識(shí)就鞏固了。

還是money問(wèn)題,允許的話,購(gòu)買一個(gè)Pluralsight會(huì)員,每月29刀,絕對(duì)非常值得。Pluralsight的視頻基本都有英文字幕,配合作者的PPT,英語(yǔ)不好的同學(xué)學(xué)習(xí)也沒(méi)有問(wèn)題。下班沒(méi)有事情,找一個(gè)會(huì)議室,和幾個(gè)志同道合的同學(xué),搞點(diǎn)飲料,播放一個(gè)跨界或者新技術(shù)的視頻,看完20分鐘,然后大家討論一下,英文好的,有技術(shù)功底的多發(fā)表一些觀點(diǎn),其他的同學(xué)都也就都能了解了。

看技術(shù)新聞、關(guān)注大牛的twitter,參加行業(yè)內(nèi)知名的技術(shù)會(huì)議

前面介紹的圖書,文檔和視頻教學(xué),讓我們可以了解和深入某一項(xiàng)技術(shù),對(duì)付我們的工作應(yīng)該沒(méi)有問(wèn)題。但是如果要緊跟潮流,能夠獲取靈感,那還需要關(guān)注一些技術(shù)新聞,follow twitter上的技術(shù)大牛。


每一個(gè)人都是有惰性的,大牛也不例外。有時(shí)候他們可能也不會(huì)給你寫文章,文檔或者拍視頻,只會(huì)隨意說(shuō)一下。例如我第一次了解SpringFu這個(gè)技術(shù)時(shí),是在Twitter上。那時(shí)項(xiàng)目還沒(méi)有啟動(dòng),Kotlin + Spring的核心團(tuán)隊(duì)就開(kāi)始不經(jīng)意的在Twitter上透露一些信息,你可能就會(huì)由此獲得不錯(cuò)的想法。通常,大牛也會(huì)轉(zhuǎn)發(fā)一些技術(shù)新聞,這些新聞都經(jīng)過(guò)他們過(guò)濾過(guò)的,所以你挑選技術(shù)新聞的成本也就低了很多。

對(duì)于技術(shù)新聞,沒(méi)有很好的平臺(tái)進(jìn)行統(tǒng)一管理,相對(duì)凌亂一些,你需要有自己的搜索和歸類方法,不然找尋成本會(huì)比較高。很多人喜歡 Hacker News (https://news.ycombinator.com/?),但沒(méi)有歸類功能,而?https://thenewstack.io/?就提供了比較好的歸類功能。 Google Reader關(guān)閉后,個(gè)人轉(zhuǎn)投到Feedly,保留了訂閱blog的習(xí)慣。

Medium (https://medium.com/?)非常不錯(cuò), a place to read and write big ideasand important stories,很多技術(shù)牛人會(huì)在Medium上發(fā)文章,不少技術(shù)公司的blog也都在medium上有文章,據(jù)說(shuō)還有付費(fèi)的會(huì)員,個(gè)人沒(méi)有嘗試過(guò),強(qiáng)烈推薦。 Reddit可以歸類一些topic,關(guān)注一下。如果你持續(xù)關(guān)注某一技術(shù),最好加入一下該技術(shù)的Slack或者Gitter討論群,大家都會(huì)在群里將相關(guān)的好的新聞或者技術(shù)文章進(jìn)行分享,例如,我在的KotlinSlack中就了解了非常多新的框架和關(guān)聯(lián)技術(shù),畢竟大家還是樂(lè)意分享的。


關(guān)于技術(shù)大會(huì),如果時(shí)間和費(fèi)用都允許的話,個(gè)人建議可以多參加一下。在2-3天的會(huì)議期間,你可以圍繞你感興趣的話題,和眾多同行在一起深入交流,和分享講師深入探討,這個(gè)感覺(jué)是不同的,你需要堅(jiān)信你找對(duì)了一個(gè)方向,讓你更有動(dòng)力深入的了解下去。

Twitter上技術(shù)大牛follow一下,關(guān)注一下對(duì)應(yīng)的技術(shù)新聞和blog,平時(shí)逛逛Slack和Gitter,盡可能的參與一些行業(yè)內(nèi)的知名技術(shù)大會(huì),保持技術(shù)敏感度。

做項(xiàng)目,寫Demo,看源碼

前面說(shuō)了學(xué)習(xí),但是程序員不寫Demo是不行的。項(xiàng)目中可以考慮嘗試新的技術(shù),我們現(xiàn)在推行微服務(wù),所以技術(shù)棧還是有自由度的,就看你能否hold住了。不一定所有的技術(shù)都是能用到項(xiàng)目中,有些是啟發(fā)性的或者觸類旁通的,你需要寫Demo,磨磨刀沒(méi)有錯(cuò)的。文章前面說(shuō)過(guò),工具什么要非常熟練,不然一個(gè)Demo花掉一個(gè)小時(shí),不值得。讀了很多,看了很多,如果用代碼輔助一下,就更好了。我不是說(shuō),這些知識(shí)都是為代碼的,不少是為了架構(gòu)的。例如,你學(xué)習(xí)ES 6 + React,如果沒(méi)有代碼,我很難想象如何掌握這個(gè)知識(shí)。


看源碼,這個(gè)是非常重要的一個(gè)技能,至少你code review技能提升了,但是確實(shí)成本高。個(gè)人是對(duì)Kubernetes還算比較了解,但是讓我看Kubernetes源碼,這個(gè)壓力就很大了,尤其是對(duì)你不擅長(zhǎng)的領(lǐng)域。看Istio和Envoy源碼,壓力也很大,但是你如果決定投入啦,看源碼還是幫助很大的。


項(xiàng)目中多嘗試一下學(xué)到的新知識(shí),不能老是慣性使用熟悉的技術(shù)。要知道,熟悉的東西很快會(huì)被淘汰的,當(dāng)被淘汰的時(shí)候再調(diào)整,來(lái)不及了。多寫一些Demo,磨磨刀。對(duì)你本行業(yè)的技術(shù),一些源碼還是要能看懂的,是需要的。例外的情況是,跨界的技術(shù),閱讀源碼要量力而為,讓Java程序去看JS框架源碼或者C++源碼,還是要有心理準(zhǔn)備的。

閱讀,少瀏覽,聽(tīng)點(diǎn)音樂(lè)

看到Y(jié)ouTube上一個(gè)技術(shù)人員講述閱讀的觀點(diǎn),還是比較獨(dú)特的。移動(dòng)互聯(lián)網(wǎng)時(shí)代,閱讀量其實(shí)是比之前的多的,你每天打開(kāi)手機(jī),各種新聞、文章、視頻和朋友圈等,但相較于圖書或電子書,這些知識(shí)生命周期較短,娛樂(lè)性大過(guò)內(nèi)容本身,這也是為何大家覺(jué)得花在信息獲取的時(shí)間上多了,但閱讀卻少了的原因。就技術(shù)人員來(lái)說(shuō),xx頭條,xx新聞等APP對(duì)你在技術(shù)積累上的幫助非常有限,這些新聞可以幫助你找找聊天話題,作為飯后談資,但會(huì)占據(jù)你大量的時(shí)間,并且導(dǎo)致注意力下降,無(wú)法聚焦。而且現(xiàn)在的推送新聞都有智能算法,保證能黏住你。

音樂(lè)是不錯(cuò)的,有專門針對(duì)程序員編碼的音樂(lè),個(gè)人不是發(fā)燒友,但還是推薦一下。

在你的開(kāi)發(fā)設(shè)備上多一點(diǎn)投入

進(jìn)入辦公室,看一下同事的電腦,大概就能甄別各自的開(kāi)發(fā)語(yǔ)言了。用13寸的MacBook Pro或者Air,絕對(duì)不是Java程序員。如果是Golang或者C++程序員,一定不會(huì)用JetBrains的IDE工具,基本都是Editor類等。

這里的硬件配置建議,僅僅適用于Java類的程序員,配置高點(diǎn)是讓你的coding速度更快,效率勝過(guò)一切。蘋果最新的MacBook Pro 2018確實(shí)非常不錯(cuò),終于有32G的內(nèi)存了,大家可以節(jié)衣縮食一下,考慮入手。建議可以找蘋果員工幫忙購(gòu)買一下,有8.5折優(yōu)惠,對(duì)于4500刀的筆記本來(lái)說(shuō),還是省了不少的。

小編總結(jié)

多讀書,看文檔,閑來(lái)無(wú)事做開(kāi)源

看視頻,挖技巧,聽(tīng)點(diǎn)古典和爵士

多動(dòng)手、多實(shí)踐,編程工具爛于心

跑跑會(huì),聊聊天,保持技術(shù)靈敏和Sense

攢點(diǎn)錢,買個(gè)高配Mac和Pad

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,812評(píng)論 25 709
  • 用兩張圖告訴你,為什么你的 App 會(huì)卡頓? - Android - 掘金 Cover 有什么料? 從這篇文章中你...
    hw1212閱讀 13,918評(píng)論 2 59
  • 1、通過(guò)CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫(kù)組件 SD...
    陽(yáng)明AI閱讀 16,172評(píng)論 3 119
  • 搜集并總結(jié)的一些React書寫規(guī)范,幫助使用React開(kāi)發(fā)者更好的構(gòu)建項(xiàng)目中的代碼。 基本規(guī)范 每個(gè)文件只寫一個(gè)模...
    阿波羅程序猿閱讀 2,202評(píng)論 2 8
  • 業(yè)績(jī)是要求出來(lái)的, 能力是逼迫出來(lái)的, 成功是決定出來(lái)的, 人生是規(guī)劃出來(lái)的, 快樂(lè)是營(yíng)造出來(lái)的!
    張三峽閱讀 124評(píng)論 0 1

友情鏈接更多精彩內(nèi)容