這篇文章的主要內(nèi)容主要是我今年 3 月份在騰訊做的直播,主要是想讓一些技術(shù)人員對(duì)世界有一個(gè)大體的認(rèn)識(shí),并且在這個(gè)認(rèn)識(shí)下能夠有一個(gè)好的方法成就自己。而不是在一臉蒙圈的狀態(tài)下隨波逐流,而日益迷茫和焦慮。直播完后,騰訊方面把我的直播形成文字的形式發(fā)了出來(lái),我覺得我可以再做一個(gè)精編版。所以,有了這篇文章,希望對(duì)大家有幫助。
對(duì)我來(lái)說,在我二十多年的工作經(jīng)歷來(lái)看,期間經(jīng)歷了很多技術(shù)的更新?lián)Q代,整個(gè)技術(shù)模式、業(yè)務(wù)模式也是一直變來(lái)變?nèi)ィ覀冞@群老程序員成長(zhǎng)中所經(jīng)歷的技術(shù)比今天的程序員玩的還更雜更多。我羅列一下我學(xué)過的,而且還被淘汰掉的技術(shù),大家先感受一下。
- MIS 應(yīng)用開發(fā):FoxPro,PowerBuilder,Delphi
- OA:Lotus Notes,VBScripts
- 微軟:ODBC/ADO,COM/DCOM,MFC/ATL,J++
- 服務(wù)器:AIX,HP-UX,SCO Unix
- Web:CGI,ISAPI,SOAP
- RPC:CICS,Tuxedo
- J2EE:Websphere,Weblogic
- DB:Sybase,Informix
我想說的是,無(wú)論過去還是今天,我們這些前浪和你們后浪所面對(duì)的技術(shù)的挑戰(zhàn)和對(duì)技術(shù)的焦慮感是相似的,我們那個(gè)時(shí)候不但玩 996,還玩封閉開發(fā)(就是一周只能回家一天)。當(dāng)然,唯一好的東西,就是比起今天的程序員來(lái)說,我們那個(gè)年代沒有像微信、微博、知乎,抖音這些巨大消耗你人生的東西,所以,我們的工作、生活和成長(zhǎng)都有很效率,不會(huì)被打斷、喜歡看書、Google 還沒有被封……當(dāng)然,那時(shí)代沒有 StackOverlow 和 Github 這樣的東西,所以,能完成的東西或質(zhì)量都一般。
當(dāng)然,這里并不是想做一個(gè)比較,只是想讓大家了解一下兩代程序員間的一些問題各有千秋,大同小異。在整個(gè)成長(zhǎng)過程中,其實(shí)有很多東西是相通的,其本上來(lái)說,就是下面的三件事——
第一,如果想要把控技術(shù),應(yīng)對(duì)這個(gè)世界的一些變化,需要大致知道這個(gè)世界的一些規(guī)律和發(fā)展趨勢(shì),另外還得認(rèn)識(shí)自己,自己到底適合做什么?在這個(gè)趨勢(shì)和規(guī)律下屬于自己的發(fā)揮領(lǐng)域到底是什么?這是我們每個(gè)人都需要了解的。
第二,打牢基礎(chǔ),以不變應(yīng)萬(wàn)變,不管世界怎樣變化,我都能很快適應(yīng)它。基礎(chǔ)的重要程度對(duì)于你能夠飛多高是相當(dāng)有影響的,懂原理的人比不懂原理的人能做出來(lái)的事情或是能解決的問題完全是兩個(gè)層級(jí)的。
第三,提升成長(zhǎng)的效率,因?yàn)楝F(xiàn)在社會(huì)的節(jié)奏實(shí)在太快了,比二十年前快得太多,技術(shù)層出不窮,所以我們的成長(zhǎng)也要更有效率。效率并不單指的快,效率是怎么樣更有效,是有用功除以總功(參看《加班與效率》),怎么學(xué)到更有效的東西,或者怎么更有效學(xué)習(xí),是我們需要掌握的另一關(guān)鍵。
下面是我這多年來(lái)的一些認(rèn)識(shí),希望對(duì)你有幫助。
世界發(fā)展趨勢(shì)
我個(gè)人經(jīng)歷的信息化革命應(yīng)該分成三個(gè)階段:
1990 年代到 2000 年,這個(gè)時(shí)代 MB 時(shí)代,是雅虎、新浪、搜狐、網(wǎng)易門戶網(wǎng)站的時(shí)代,這個(gè)時(shí)代就是 ISP/ICP 互聯(lián)網(wǎng)提供商,把一些資訊數(shù)字化,然后發(fā)布到網(wǎng)絡(luò)上。
2000 年到 2010 年,這個(gè)時(shí)代叫 GB 時(shí)代,或是叫多媒體或 UGC 時(shí)代,上網(wǎng)開始變得普遍了,每個(gè)人手里的數(shù)碼設(shè)備開始變得多了起來(lái),可以上傳照片,可以上傳視頻,甚至可以在網(wǎng)上做社交。
2010 年到 2020 年,這個(gè)時(shí)代叫 TB 時(shí)代,這過去的十年是移動(dòng)互聯(lián)網(wǎng)時(shí)代,移動(dòng)互聯(lián)網(wǎng)只需要手機(jī)在線,不需要依靠電腦。因?yàn)槭謾C(jī)隨時(shí)在線,所以個(gè)人的各種各樣的數(shù)據(jù)始終在被收集,只要用戶上網(wǎng)就會(huì)產(chǎn)生數(shù)據(jù),所以人的行為最終也被數(shù)字化了。
所有的硬件和軟件都是跟著需要處理的數(shù)據(jù)而演進(jìn)的,我們需要更大的帶寬,更大的硬盤,更多的處理器……大到一定時(shí)候就只能進(jìn)入分布式化的技術(shù)架構(gòu)了,再大,數(shù)據(jù)中心也頂不住了,就會(huì)要引入更為分布式的邊緣計(jì)算了。
另一方面,從業(yè)務(wù)上來(lái)看,我們可以看到整個(gè)世界就在不斷地進(jìn)行數(shù)字化,因?yàn)椋灰獢?shù)字化了,就可以進(jìn)行復(fù)制傳播和計(jì)算,只要可以進(jìn)行計(jì)算了,就可以進(jìn)行數(shù)學(xué)建模,就可以自動(dòng)化,只要可以自動(dòng)化了就可以規(guī)模化,只要可能規(guī)模化了,就可以改變整個(gè)行業(yè)。人類的近代史的大趨勢(shì)基本上都是在解決能源和自動(dòng)化的事,源源不斷的能源是讓機(jī)器不知疲倦的前提條件,用機(jī)器代替牲口,代替人類進(jìn)行工作是規(guī)模化的前提條件。
所以,技術(shù)的演進(jìn)規(guī)律基本是自動(dòng)化加規(guī)模化,從而降低成本,提升效率。這就是為什么世界變得越來(lái)越快,人類都快跟不上節(jié)奏的原因,主要是整個(gè)社會(huì)不斷被機(jī)器、數(shù)據(jù)所驅(qū)動(dòng)。
人才需求
在這個(gè)過程中,需要什么樣的人?下面是我的一些認(rèn)識(shí)——
技工,在機(jī)器和自動(dòng)化面前,肯定是需要能夠操作機(jī)器的技術(shù)工人了,這類人是有技術(shù)的勞動(dòng)力。在編程的圈子里俗稱“碼農(nóng)”,他們并不是真正的工程師,他們只是電腦程序的操作員,所以,隨著技術(shù)門檻的下降或是技術(shù)形式的變更他可能就會(huì)變得越來(lái)越不值錢,直到被淘汰掉。
特種工,這種人是必須了解原理和解決難題的一類人,他們是解決比較難的、特定的一些技術(shù)問題。當(dāng)一種技術(shù)被淘汰,他并不容易被淘汰,因?yàn)樗恚砭褪墙鉀Q問題的能力,是解決問題的套路和方法。
工程師,不但是使用技術(shù),還可以把活兒做好,他們認(rèn)為代碼更多的時(shí)間是在維護(hù),這些人使用各種各樣的手段和各種技術(shù),精益求精地持續(xù)不斷地提高代碼的易讀性、擴(kuò)展性、可維護(hù)性和重用性,這個(gè)過程似乎永無(wú)止境。對(duì)于這些有“潔癖”,有“工匠精神”,有“修養(yǎng)”的技術(shù)人員,我們稱他們?yōu)楣こ處煛_@種人做事又穩(wěn)又快,而且可以做出很多稱手的工具和方法論。
再往上是設(shè)計(jì)師和架構(gòu)人員,這些人主要是開發(fā)一些工具,框架,模式,提升軟件開發(fā)和維護(hù)效率,同時(shí)也提升用戶體驗(yàn),和提升穩(wěn)定性、性能、代碼重用等,總的來(lái)說就是為了降本增效。這類人的工作降低了技術(shù)得到門檻,他們把技術(shù)門檻降低了以后,就可以把這個(gè)技術(shù)普及開來(lái),就可以由廣大勞工、技工、特殊工人使用了。
還有一類人是經(jīng)理,經(jīng)理主要是組織團(tuán)隊(duì)、完成項(xiàng)目、創(chuàng)造利潤(rùn)。這類人中,即有身先士卒的 leader,也有高高在上的 boss,但無(wú)論怎么樣,這些人只不過是為了讓一個(gè)公司或是一個(gè)團(tuán)隊(duì)更好組織在一起的“粘合劑”,這類人只有在大公司中才會(huì)變成更有價(jià)值。
這就是我總結(jié)的世界需要哪些人才,我們了解這些東西以后大概就明白我們現(xiàn)在所處的位置有什么樣的問題,我們應(yīng)該去什么樣的地方。
Google 評(píng)分卡
接下來(lái),我們?cè)賮?lái)看看 Google 的 SRE 的自我評(píng)分卡:
0 – 對(duì)于相關(guān)的技術(shù)領(lǐng)域還不熟悉
1 – 可以讀懂這個(gè)領(lǐng)域的基礎(chǔ)知識(shí)
2 – 可以實(shí)現(xiàn)一些小的改動(dòng),清楚基本的原理,并能夠在簡(jiǎn)單的指導(dǎo)下自己找到更多的細(xì)節(jié)。
3 – 基本精通這個(gè)技術(shù)領(lǐng)域,完全不需要?jiǎng)e人的幫助
4 – 對(duì)這個(gè)技術(shù)領(lǐng)域非常的熟悉和舒適,可以應(yīng)對(duì)和完成所有的日常工作。
對(duì)于軟件領(lǐng)域 – 有能力開發(fā)中等規(guī)模的程序,能夠熟練和掌握并使用所有的語(yǔ)言特性,而不是需要翻書,并且能夠找到所有的冷知識(shí)。
對(duì)于系統(tǒng)領(lǐng)域 – 掌握網(wǎng)絡(luò)和系統(tǒng)管理的很多基礎(chǔ)知識(shí),并能夠掌握一些內(nèi)核知識(shí)以運(yùn)維一個(gè)小型的網(wǎng)絡(luò)系統(tǒng),包括恢復(fù)、調(diào)試和能解決一些不常見的故障。
5 – 對(duì)于該技術(shù)領(lǐng)域有非常底層的了解和深入的技能。
6 – 能夠從零開發(fā)大規(guī)模的程序和系統(tǒng),掌握底層和內(nèi)在原理,能夠設(shè)計(jì)和部署大規(guī)模的分布式系統(tǒng)架構(gòu)
7 – 理解并能利用高級(jí)技術(shù),以及相關(guān)的內(nèi)在原理,并可以從根本上自動(dòng)化大量的系統(tǒng)管理和運(yùn)維工作。
8 – 對(duì)于一些邊角和晦澀的技術(shù)、協(xié)議和系統(tǒng)工作原理有很深入的理解和經(jīng)驗(yàn)。能夠設(shè)計(jì),部署并負(fù)責(zé)非常關(guān)鍵以及規(guī)模很大的基礎(chǔ)設(shè)施,并能夠構(gòu)建相應(yīng)的自動(dòng)化設(shè)施
9 – 能夠在該技術(shù)領(lǐng)域出一本經(jīng)典的書。并和標(biāo)準(zhǔn)委員會(huì)的人一起工作制定相關(guān)的技術(shù)標(biāo)準(zhǔn)和方法。
10 – 在該領(lǐng)域?qū)戇^一本書,被業(yè)內(nèi)尊為專家,并是該技術(shù)的發(fā)明人。
SRE 需要自評(píng)如下這些技術(shù)或技能。
– TCP/IP Networking (OSI stack, DNS etc)
– Unix/Linux internals
– Unix/Linux Systems administration
– Algorithms and Data Structures
– C/C++
– Python
– Java
– Perl
– Go
– Shell Scripting (sh, Bash, ksh, csh)
– SQL and/or Database Admin
– Scripting language of your choice (not already mentioned) _____________
– People Management
– Project Management
這個(gè)評(píng)分卡是面試 Google 前需要候選人對(duì)自己的各種技術(shù)進(jìn)行自評(píng),也算是一種技術(shù)人員的等級(jí)的度量尺,其把技術(shù)的能分成 11 個(gè)等級(jí),我用顏色把其它成四大層級(jí),希望這個(gè)評(píng)份卡能夠給你一個(gè)能力提升的參考標(biāo)準(zhǔn)。
認(rèn)識(shí)自己
認(rèn)識(shí)了世界是怎么發(fā)展的,也知道技術(shù)人員的種類和層級(jí),那么還要了解一下自己,因?yàn)槿绻涣私庾约海敲茨阋矡o(wú)法找到自己的路和適合自己的地方。
我覺得,一個(gè)人要認(rèn)識(shí)自己就需要認(rèn)識(shí)自己的特長(zhǎng)、興趣、熱情、擅長(zhǎng)等,下面是一個(gè)認(rèn)識(shí)自己的標(biāo)準(zhǔn)方法:
特長(zhǎng)。首先你要找得到自己特長(zhǎng)。你要認(rèn)識(shí)自己的特長(zhǎng),找到自己的天賦,找到你在 DNA 里比別人強(qiáng)的東西,就拿你的 DNA 跟別人競(jìng)爭(zhēng)就好了。所以你要找到自己可以干成的事,找到別人找你請(qǐng)教的事,你身邊人找你請(qǐng)教就是說明你有特長(zhǎng)。這是找到自己特長(zhǎng)非常非常重要,揚(yáng)長(zhǎng)避短。
興趣。如果你沒有找到自己特長(zhǎng),就找自己有興趣有熱情的東西。什么叫興趣?興趣是再難再累都不會(huì)放棄的事。如果你遇到困難就會(huì)放棄不叫興趣,那叫葉公好龍。不怕困難,癡迷其中,就算你沒有特長(zhǎng),有了這種特質(zhì),你也是頭部的人才。
方法。如果你沒有特長(zhǎng),沒有興趣和熱情就要學(xué)方法。這種方法就是要有時(shí)間觀念,要會(huì)做計(jì)劃,要懂統(tǒng)籌、規(guī)劃對(duì)于做過的事情,犯過的錯(cuò)誤多總結(jié),舉一反三,喜歡自己找答案,自己探究因果關(guān)系,這是一些方法,自己總結(jié)一些套路。
勤奮。如果你沒有特長(zhǎng),沒有興趣,也沒有方法,你還能做的事就是勤奮,勤奮注定會(huì)讓你成為一個(gè)比較勞累的人,也是很有可能被淘汰的人隨著你的年紀(jì)越來(lái)越大,你的勤奮也會(huì)越來(lái)越不值錢。因?yàn)槟贻p人會(huì)比你更勤奮,比你更勤奮、比你斗志更強(qiáng),比你能力更強(qiáng),比你要錢更少的人會(huì)出現(xiàn)。勤奮最不值錢,但是只要你勤奮至少能夠自食其力。
以上就是為了應(yīng)對(duì)未來(lái)技術(shù)變化,作為個(gè)人必須要從特長(zhǎng)、興趣、方法一層一層篩選挖掘,如果沒有這些你就要努力和勤奮。就只能接受“福報(bào)”了。
從我個(gè)人而言,我不算是特別聰明的人,但自認(rèn)為對(duì)技術(shù)還是比較感興趣的,難的我不怕。有很多比較難啃的技術(shù),聰明點(diǎn)的人啃一個(gè)月就懂了,我不行,我可能啃半年。但是沒有關(guān)系,知識(shí)都是死的,只要不怕困難總有一天會(huì)懂的。最可怕是畏難,為自己找借口,這樣就不太好了。
打好基礎(chǔ)
最前面提到我學(xué)的各式各樣的被淘汰的技術(shù),會(huì)讓你感覺很迷茫,或是迷失。但前面也提到了“谷歌評(píng)分卡”,在這個(gè)評(píng)分卡中,我們看到了許多基礎(chǔ)原理方面的內(nèi)容,其實(shí)要應(yīng)對(duì)未來(lái)的變化,很重要的一點(diǎn)就是無(wú)招勝有招,以不變應(yīng)萬(wàn)變。
變化都是表面的東西,內(nèi)在的東西其實(shí)并沒有太多的變化。理論層面上變得不多,反而形式上的東西今天一個(gè)花樣,明天一個(gè)花樣,所以如果要去應(yīng)對(duì)這種變化,就一定要打牢自己的基礎(chǔ),提升內(nèi)功修養(yǎng)。比如像編程的一些方式和套路,修飾模式原理本質(zhì),解耦,提升代碼的重用度等。提升代碼重用度必須解耦,要跟現(xiàn)實(shí)解耦,提升抽象,這些都是一些技術(shù)基礎(chǔ)。無(wú)論用什么語(yǔ)言,都是這么做的。
打牢基礎(chǔ)就可以突破瓶頸,不打牢基礎(chǔ)沒有辦法突破瓶頸。在技術(shù)世界不要覺得量變會(huì)造成質(zhì)變,這是不可能的。技術(shù)這個(gè)東西就像搞建筑砌磚頭,砌磚頭砌的再多也不可能讓你能成為一個(gè)架構(gòu)師的,因?yàn)槟悴欢恚欢茖W(xué)方法,你就不可能成長(zhǎng)上去的,就像學(xué)數(shù)學(xué)一樣,當(dāng)你掌握了微積分這種大殺器后,你解題的能力是無(wú)所披靡,而微積分這種方式絕對(duì)不是你能“量變”出來(lái)的。
所以你必須學(xué)習(xí)基礎(chǔ)的理論知識(shí),如果不學(xué)這些基礎(chǔ)理論知識(shí),還要學(xué)習(xí)解題思路和方法,如果你只學(xué)在表面,那么當(dāng)這個(gè)技術(shù)的形式有變化,就會(huì)發(fā)現(xiàn)以前學(xué)的都沒用了,要重頭學(xué)一遍。掌握技術(shù)基礎(chǔ)可以讓自己找到答案和知識(shí),基礎(chǔ)是抽象和歸納,很容易形成進(jìn)一步的推論。我們學(xué)的很多技術(shù)實(shí)現(xiàn)都逃不脫基礎(chǔ)原理,不管是 Java,還是其他語(yǔ)言,只要用 TCP 用的都是相同的原理,逃不出范圍,只要抓住原理,舉一反三,時(shí)間一長(zhǎng)了,甚至還可以自己推導(dǎo)答案。對(duì)于技術(shù)的基礎(chǔ),我會(huì)把其它成四類:
程序語(yǔ)言:語(yǔ)言的原理,類庫(kù)的實(shí)現(xiàn),編程技術(shù)(并發(fā)、異步等),編程范式,設(shè)計(jì)模式……
系統(tǒng)原理:計(jì)算機(jī)系統(tǒng),操作系統(tǒng),網(wǎng)絡(luò)協(xié)議,數(shù)據(jù)庫(kù)原理……
中間件:消息隊(duì)列,緩存系統(tǒng),網(wǎng)關(guān)代理,調(diào)度系統(tǒng) ……
理論知識(shí):算法和數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)庫(kù)范式,網(wǎng)絡(luò)七屋模型,分布式系統(tǒng)……
這些知識(shí)其實(shí)就是一個(gè)計(jì)算機(jī)科學(xué)專業(yè)的學(xué)生他所要學(xué)習(xí)的原理,但可惜的是,我們的一些學(xué)校教得也很糟糕,不但老師能力不足,而且放著世界上最優(yōu)秀的教課書不用了,一定要自己寫一本。講也講不全,還有各種錯(cuò)誤,哎……總之,如果你學(xué)習(xí)用用到的教材不行,那么可以肯定的是你的學(xué)習(xí)效率一定是很糟糕的。這就是為什么我們大學(xué)上完了,還是跟個(gè)傻瓜一樣,還要在工作中再重新自學(xué)。
不過,就算自學(xué),這些基礎(chǔ)技術(shù)大概需要四五年的時(shí)間堆疊。我工作二十年了,這二十年來(lái)基本還是這些原理沒變,無(wú)論形式怎么變,但是核心永遠(yuǎn)還是這些,理論創(chuàng)新很難,這是以不變應(yīng)萬(wàn)變。
學(xué)習(xí)效率
談到學(xué)習(xí)效率,就需要拿出這張學(xué)習(xí)金字塔的圖來(lái)了。從圖可以看到學(xué)習(xí)方法分布兩層,一種是被動(dòng)學(xué)習(xí),也是淺度學(xué)習(xí),聽講,閱讀,視聽,演示都是在被動(dòng)學(xué)習(xí),而與人討論,自己動(dòng)手實(shí)踐,教授給別人是主動(dòng)學(xué)習(xí)。主動(dòng)學(xué)習(xí)我們稱之為深度學(xué)習(xí),如果你不能深度學(xué)習(xí),你就不能真正學(xué)到東西。這也是你會(huì)經(jīng)常有“學(xué)那么多干什么,不用就忘了”,這就是淺度學(xué)習(xí)的癥狀了。
下面,我給出一些我自己覺得不錯(cuò)的學(xué)習(xí)經(jīng)驗(yàn):
1、挑選一手知識(shí)和信息源。對(duì)于學(xué)習(xí)方法:第一我們一定要到知識(shí)源去挑選知識(shí),知識(shí)信息源非常關(guān)鍵,二手信息丟失太大了,譚浩強(qiáng)寫的書就丟失太多信息了。目前計(jì)算機(jī)一手知識(shí)基本都是國(guó)外的,所以英文非常重要。我鼓勵(lì)大家一定讀第一手的資料。如果你英語(yǔ)有問題,至少要看翻譯過來(lái),最好是原汁原味翻譯的,不要我理解了給你講那種,那種也是被別人嚼一遍再講給你你沒有體會(huì),是別人帶著你,別人的體會(huì)會(huì)影響你,也許你的體會(huì)會(huì)比他更好,因?yàn)槭悄阕约嚎偨Y(jié)出來(lái)的東西,所以知識(shí)源很重要。
2、注意原理和基礎(chǔ)第二要注重基礎(chǔ)原理。雖然可以忘記這個(gè)技術(shù),但是原理記在心里,我可以徒手實(shí)現(xiàn)出來(lái),而且通過原理可以更快學(xué)習(xí)其他類似的技術(shù)。所以原理很重要!當(dāng)你學(xué)會(huì)C、C++要學(xué) Java 和 GO 都很快。
3、使用知識(shí)圖譜一定要學(xué)會(huì)使用知識(shí)圖,把知識(shí)結(jié)構(gòu)化。從一個(gè)技術(shù)關(guān)鍵點(diǎn)開始不斷地關(guān)聯(lián)和細(xì)化下去,比如:關(guān)于 TCP 協(xié)議,首先第一個(gè)要記住狀態(tài)圖,怎么建立連接,怎么斷連接,狀態(tài)怎么變遷。TCP 沒有連接,是靠狀態(tài)維護(hù)連接的。其次,要了解 TCP 怎么保證可靠性,就是丟包以后怎么重傳,重傳有哪些技術(shù)點(diǎn)。然后,重傳會(huì)讓你聯(lián)想到擁塞控制,擁塞控制到滑動(dòng)窗口……。這基本就是 TCP 的所有東西了,找到關(guān)鍵點(diǎn),然后順著這個(gè)脈絡(luò)一點(diǎn)點(diǎn)往下想,通過知識(shí)圖關(guān)聯(lián)就可以進(jìn)行順藤摸瓜。我們不需要記所有知識(shí),那些手冊(cè)的知識(shí)不需要記,你知道在哪里能找到就可以了。你腦子里面要有地圖,學(xué)一個(gè)東西就跟在城市生活一樣,閉上眼睛就知道地圖,A點(diǎn)到B點(diǎn)怎么去大概方向要知道。我在北京我去廣州,廣州在南邊,我大概坐飛機(jī)還是火車要心里有數(shù)。。
4、學(xué)會(huì)舉一反三。就是用不同方法學(xué)一個(gè)東西,比如說學(xué) TCP 協(xié)議,看書是一種方法,編程是另外一種方法,還有用做 Debug 去看的,用不同方法學(xué)一個(gè)東西會(huì)讓你更加熟悉,你學(xué)一個(gè)知識(shí)的同時(shí)把周邊也學(xué)了。比如說學(xué)前端能不能把 HTTP 學(xué)一下,比如說長(zhǎng)連接、短連接,包括 hp1、hp2 有一些不一樣的東西。
5、總結(jié)和歸納。只有學(xué)會(huì)總結(jié)和歸納,才能形成自己的思維框架、自己的套路、自己的方法論,以后學(xué)這個(gè)東西應(yīng)該怎么學(xué)。就像學(xué)一門新的語(yǔ)言,不管 GO 語(yǔ)言,還是 Rust 語(yǔ)言,第一件事情就是了解內(nèi)存是怎么管理的,數(shù)據(jù)類型什么樣,第二是泛型怎么搞,第三是并發(fā)怎么弄。還有一些抽象怎么弄,比如說怎么解耦,怎么實(shí)現(xiàn)多態(tài)?套路這種東西只有學(xué)的多了以后才能形成套路,如果你只學(xué)會(huì)一門語(yǔ)言不會(huì)有套路,你要每年學(xué)門語(yǔ)言,不用學(xué)多精,你思考這個(gè)語(yǔ)言有什么不一樣,為什么這個(gè)這種有玩法,那個(gè)有那種玩法,這些東西思考多了套路方法論就出來(lái)了。比如說 Windows 和 Linux 有什么不同,Linux 和 Unix 又有什么不同?只有總結(jié)自己的框架、套路和方法,這些才永遠(yuǎn)不會(huì)被淘汰。
6、實(shí)踐和堅(jiān)持。剩下就是多做多練,多堅(jiān)持,只有實(shí)踐才會(huì)有經(jīng)驗(yàn),只有鍛煉了才能夠把自己的脂肪變沒,所以,要把知識(shí)變成技能必須練,就像小學(xué)生學(xué)會(huì)加減乘除,還是要演練,必須多做題,題目做得多了,自然掌握得好。要挑選好的知識(shí)源,注重原理技術(shù),有一些原理的基礎(chǔ)的書太枯燥,但是我告訴你學(xué)習(xí)這些基礎(chǔ)太值得投入時(shí)間,搬磚賺幾十元不值得,因?yàn)橘嵉氖切量噱X,老了就賺不了,必須要賺更有能力的錢,這是學(xué)習(xí)投資。
小結(jié)
好了,該到這篇文章收尾的時(shí)候了,小結(jié)一下,如果你想更好的把握時(shí)代,提升自己,你需要知道這個(gè)時(shí)代的趨勢(shì)是什么,需要什么樣的人,這些人需要什么樣的能力,這些能力是怎么獲得的,投入到基礎(chǔ)知識(shí)的學(xué)習(xí)就像“基建”一樣,如果基礎(chǔ)不好,不能長(zhǎng)高,學(xué)習(xí)能力也是需要適應(yīng)這個(gè)快速時(shí)代的重要的基礎(chǔ)能力,沒有好的學(xué)習(xí)能力,很快就會(huì)掉隊(duì)被淘汰。
這些東西,是我從業(yè)二十年來(lái)的總結(jié)和體會(huì),希望對(duì)你有用。
-
編程
+關(guān)注
關(guān)注
88文章
3683瀏覽量
94884 -
TCP
+關(guān)注
關(guān)注
8文章
1397瀏覽量
80415 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30270
發(fā)布評(píng)論請(qǐng)先 登錄
用MSP430F149的SPI0與ADS1291進(jìn)行通信,發(fā)送讀寄存器后收到返回值都是00,DRDY一直是高電平,為什么?
阿里云升級(jí)通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補(bǔ)充

UCD3138A64/UCD3138128程序員手冊(cè)

機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長(zhǎng)沙·中國(guó)1024程序員節(jié)開幕
90后程序員的職業(yè)成長(zhǎng)漫談

京東上萬(wàn)程序員都AI用它!

程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

助力程序員告別困擾已久的夢(mèng)魘-Bug

大模型時(shí)代,程序員當(dāng)下如何應(yīng)對(duì) AI 的挑戰(zhàn)

評(píng)論