當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 小林coding
[導(dǎo)讀]今天逛帖子的時(shí)候,看到這么個(gè)問(wèn)題: 這個(gè)問(wèn)題我曾經(jīng)也很好奇過(guò),那些成為技術(shù)大佬的人當(dāng)初是怎么學(xué)習(xí),以及怎么成長(zhǎng)過(guò)來(lái)的,因?yàn)槲蚁嘈潘麄円彩菑?0 開(kāi)始的,也會(huì)經(jīng)歷困難期之類的。

大家好,我是小林。

今天逛帖子的時(shí)候,看到這么個(gè)問(wèn)題:

這個(gè)問(wèn)題我曾經(jīng)也很好奇過(guò),那些成為技術(shù)大佬的人當(dāng)初是怎么學(xué)習(xí),以及怎么成長(zhǎng)過(guò)來(lái)的,因?yàn)槲蚁嘈潘麄円彩菑?0 開(kāi)始的,也會(huì)經(jīng)歷困難期之類的。或許,站在大佬們的“肩膀上”,可以走的更遠(yuǎn)。

然后這個(gè)問(wèn)題下面,有位“無(wú)名大佬”回答了這個(gè)問(wèn)題,我看完后覺(jué)得相當(dāng)不錯(cuò),重新排版和整理了下,分享給大家一起共勉。

無(wú)論你是在校學(xué)生,還是職場(chǎng)老鳥(niǎo),我相信這些想法和建議都會(huì)對(duì)你有所啟發(fā)。


熟悉更多業(yè)務(wù)

不管是不是你負(fù)責(zé)的;熟悉更多代碼,不管是不是你寫(xiě)的。

這樣做有很多好處,舉幾個(gè)簡(jiǎn)單的例子:

  • 需求分析的時(shí)候更加準(zhǔn)確,能夠在需求階段就識(shí)別風(fēng)險(xiǎn)、影響、難點(diǎn)。

  • 問(wèn)題處理的時(shí)候更加快速,因?yàn)橄嚓P(guān)的業(yè)務(wù)和代碼都熟悉,能夠快速的判斷問(wèn)題可能的原因并進(jìn)行排查處理。

  • 方案設(shè)計(jì)的時(shí)候考慮更加周全,由于有對(duì)全局業(yè)務(wù)的理解,能夠設(shè)計(jì)出更好的方案。


熟悉端到端

比如說(shuō)你負(fù)責(zé) Web 后臺(tái)開(kāi)發(fā),但實(shí)際上用戶發(fā)起一個(gè) HTTP 請(qǐng)求,要經(jīng)過(guò)很多中間步驟才到你的服務(wù)器(例如瀏覽器緩存、DNS、Nginx 等)。

服務(wù)器一般又會(huì)經(jīng)過(guò)很多處理才到你寫(xiě)的那部分代碼(路由、權(quán)限等)這整個(gè)流程中的很多系統(tǒng)或者步驟,絕大部分人是不可能去參與寫(xiě)代碼的。

但掌握了這些知識(shí)對(duì)你的綜合水平有很大作用,例如方案設(shè)計(jì)、線上故障處理這些更加有含金量的技術(shù)工作都需要綜合技術(shù)水平。

“系統(tǒng)性”、“全局性”、“綜合性”這些字眼看起來(lái)比較虛,但其實(shí)都是技術(shù)大牛的必備的素質(zhì),要達(dá)到這樣的境界,必須去熟悉更多系統(tǒng)、業(yè)務(wù)、代碼。


自學(xué)

一般在比較成熟的團(tuán)隊(duì),由于框架或者組件已經(jīng)進(jìn)行了大量的封裝,寫(xiě)業(yè)務(wù)代碼所用到的技術(shù)確實(shí)也比較少。

但我們要明白“唯一不變的只有變化”,框架有可能要改進(jìn),組件可能要替換,或者你換了一家公司,新公司既沒(méi)有組件也沒(méi)有框架,要你從頭開(kāi)始來(lái)做。

這些都是機(jī)會(huì),也是挑戰(zhàn),而機(jī)會(huì)和挑戰(zhàn)只會(huì)分配給有準(zhǔn)備的人,所以這種情況下我們更加需要自學(xué)更多東西,因?yàn)檎嬲鹊揭玫臅r(shí)候再來(lái)學(xué)已經(jīng)沒(méi)有時(shí)間了。

以 Java 為例,大部分業(yè)務(wù)代碼就是 if-else 加個(gè)數(shù)據(jù)庫(kù)操作,但我們完全可以自己學(xué)些更多 Java 的知識(shí),例如垃圾回收,調(diào)優(yōu),網(wǎng)絡(luò)編程等。

這些可能暫時(shí)沒(méi)用,但真要用的時(shí)候,不是 Google 一下就可以了,這個(gè)時(shí)候誰(shuí)已經(jīng)掌握了相關(guān)知識(shí)和技能,機(jī)會(huì)就是誰(shuí)的。

以垃圾回收為例,我自己平時(shí)就抽時(shí)間學(xué)習(xí)了這些知識(shí),學(xué)了 1 年都沒(méi)用上,但后來(lái)用上了幾次,每次都解決了卡死的大問(wèn)題。

而有的同學(xué),寫(xiě)了幾年的 Java 代碼,對(duì)于 stop-the-world 是什么概念都不知道,更不用說(shuō)去優(yōu)化了。

你負(fù)責(zé)的系統(tǒng)和業(yè)務(wù),總有不合理和可以改進(jìn)的地方,這些“不合理”和“可改進(jìn)”的地方,都是更高級(jí)別的怪物,打完后能夠增加更多的經(jīng)驗(yàn)值。

識(shí)別出這些地方,并且給出解決方案,然后向主管提出,一次不行兩次,多提幾次,只要有一次落地了,這就是你的機(jī)會(huì)。

例如:

  • 重復(fù)代碼太多,是否可以引入設(shè)計(jì)模式?

  • 系統(tǒng)性能一般,可否進(jìn)行優(yōu)化?

  • 目前是單機(jī),如果做成雙機(jī)是否更好?

  • 版本開(kāi)發(fā)質(zhì)量不高,是否引入高效的單元測(cè)試和集成測(cè)試方案?

  • 目前的系統(tǒng)太龐大,是否可以通過(guò)重構(gòu)和解耦改為 3 個(gè)系統(tǒng)?

  • 阿里中間件有一些系統(tǒng)感覺(jué)我們也可以用,是否可以引入?

只要你去想,其實(shí)總能發(fā)現(xiàn)可以改進(jìn)的地方的;如果你覺(jué)得系統(tǒng)哪里都沒(méi)有改進(jìn)的地方,那就說(shuō)明你的水平還不夠,可以多學(xué)習(xí)相關(guān)技術(shù),多看看業(yè)界其它優(yōu)秀公司怎么做。

我 2013 年調(diào)配到九游,剛開(kāi)始接手了一個(gè)簡(jiǎn)單的后臺(tái)系統(tǒng),每天就是配合前臺(tái)做數(shù)據(jù)增刪改查,看起來(lái)完全沒(méi)意思,是吧?

如果只做這些確實(shí)沒(méi)意思,但我們接手后做了很多事情:

  • 解耦,將一個(gè)后臺(tái)拆分為 2 個(gè)后臺(tái),提升可擴(kuò)展性和穩(wěn)定性。

  • 雙機(jī),將單機(jī)改為雙機(jī)系統(tǒng),提高可靠性。

  • 優(yōu)化,將原來(lái)一個(gè)耗時(shí) 5 小時(shí)的接口優(yōu)化為耗時(shí) 5 分鐘。

還有其他很多優(yōu)化,后來(lái)我們這個(gè)組承擔(dān)了更多的系統(tǒng),后來(lái)這個(gè)小組 5 個(gè)人,負(fù)責(zé)了 6 個(gè)系統(tǒng)。


Do exercise

在做職業(yè)等級(jí)溝通的時(shí)候,發(fā)現(xiàn)有很多同學(xué)確實(shí)也在嘗試 Do more、Do better,但在執(zhí)行的過(guò)程中,幾乎每個(gè)人都遇到同一個(gè)問(wèn)題:光看不用效果很差,怎么辦?

例如:

  • 學(xué)習(xí)了 JVM 的垃圾回收,但是線上比較少出現(xiàn) FGC 導(dǎo)致的卡頓問(wèn)題,就算出現(xiàn)了,恢復(fù)業(yè)務(wù)也是第一位的,不太可能線上出現(xiàn)問(wèn)題然后讓每個(gè)同學(xué)都去練一下手,那怎么去實(shí)踐這些 jvm 的知識(shí)和技能呢?

  • Netty 我也看了,也了解了 Reactor 的原理,但是我不可能參與 Netty 開(kāi)發(fā),怎么去讓自己真正掌握 Reactor 異步模式呢?

  • 看了《高性能 MySQL》,但是線上的數(shù)據(jù)庫(kù)都是 DBA 管理的,測(cè)試環(huán)境的數(shù)據(jù)庫(kù)感覺(jué)又是隨便配置的,我怎么去驗(yàn)證這些技術(shù)呢?

  • 框架封裝了 DAL 層,數(shù)據(jù)庫(kù)的訪問(wèn)我們都不需要操心,我們?cè)趺慈チ私夥謳?kù)分表實(shí)現(xiàn)?

諸如此類問(wèn)題還有很多,我這里分享一下個(gè)人的經(jīng)驗(yàn),其實(shí)就是 3 個(gè)詞:learning、trying、teaching!


Learning

這個(gè)是第一階段,看書(shū)、Google、看視頻、看別人的博客都可以,但要注意一點(diǎn)是“系統(tǒng)化”,特別是一些基礎(chǔ)性的東西,例如 JVM 原理、Java 編程、網(wǎng)絡(luò)編程,HTTP 協(xié)議等等。

這些基礎(chǔ)技術(shù)不能只通過(guò) Google 或者博客學(xué)習(xí),我的做法一般是先完整的看完一本書(shū)全面的了解,然后再通過(guò) Google、視頻、博客去有針對(duì)性的查找一些有疑問(wèn)的地方,或者一些技巧。


trying

這個(gè)步驟就是解答前面提到的很多同學(xué)的疑惑的關(guān)鍵點(diǎn),形象來(lái)說(shuō)就是“自己動(dòng)手豐衣足食”,也就是自己去嘗試搭建一些模擬環(huán)境,自己寫(xiě)一些測(cè)試程序。

例如:

  • JVM 垃圾回收:可以自己寫(xiě)一個(gè)簡(jiǎn)單的測(cè)試程序,分配內(nèi)存不釋放,然后調(diào)整各種 JVM 啟動(dòng)參數(shù),再運(yùn)行的過(guò)程中使用 jstack、jstat 等命令查看 JVM 的堆內(nèi)存分布和垃圾回收情況。這樣的程序?qū)懫饋?lái)很簡(jiǎn)單,簡(jiǎn)單一點(diǎn)的就幾行,復(fù)雜一點(diǎn)的也就幾十行。

  • Reactor 原理:自己真正去嘗試寫(xiě)一個(gè) Reactor 模式的 Demo,不要以為這個(gè)很難,最簡(jiǎn)單的 Reactor 模式代碼量(包括注釋)不超過(guò) 200 行(可以參考 Doug Lee 的 PPT)。自己寫(xiě)完后,再去看看 Netty 怎么做,一對(duì)比理解就更加深刻了。

  • MySQL:既然有線上的配置可以參考,那可以直接讓 DBA 將線上配置發(fā)給我們(注意去掉敏感信息),直接學(xué)習(xí);然后自己搭建一個(gè) MySQL 環(huán)境,用線上的配置啟動(dòng);要知道很多同學(xué)用了很多年 MySQL,但是連個(gè)簡(jiǎn)單的 MySQL 環(huán)境都搭不起來(lái)。

  • 框架封裝了 DAL:可以自己用 JDBC 嘗試去寫(xiě)一個(gè)分庫(kù)分表的簡(jiǎn)單實(shí)現(xiàn),然后與框架的實(shí)現(xiàn)進(jìn)行對(duì)比,看看差異在哪里。

  • 用瀏覽器的工具查看 HTTP 緩存實(shí)現(xiàn),看看不同種類的網(wǎng)站,不同類型的資源,具體是如何控制緩存的;也可以自己用 Python 寫(xiě)一個(gè)簡(jiǎn)單的 HTTP 服務(wù)器,模擬返回各種 HTTP Headers 來(lái)觀察瀏覽器的反應(yīng)。

還有很多方法,這里就不一一列舉,簡(jiǎn)單來(lái)說(shuō),就是要將學(xué)到的東西真正試試,才能理解更加深刻。

印第安人有一句諺語(yǔ):I hear and I forget. I see and I remember. I do and I understand ,而且“試試”其實(shí)可以比較簡(jiǎn)單,很多時(shí)候我們都可以自己動(dòng)手做。

當(dāng)然,如果能夠在實(shí)際工作中使用,效果會(huì)更好,畢竟實(shí)際的線上環(huán)境和業(yè)務(wù)復(fù)雜度不是我們寫(xiě)個(gè)模擬程序就能夠模擬的,但這樣的機(jī)會(huì)可遇不可求,大部分情況我們還真的只能靠自己模擬,然后等到真正業(yè)務(wù)要用的時(shí)候,能夠信手拈來(lái)。


Teaching

一般來(lái)說(shuō),經(jīng)過(guò) Learning 和 Trying,能掌握 70% 左右,但要真正掌握,我覺(jué)得一定要做到能夠跟別人講清楚。

因?yàn)樵谥v的時(shí)候,我們既需要將一個(gè)知識(shí)點(diǎn)系統(tǒng)化,也需要考慮各種細(xì)節(jié),這會(huì)促使我們進(jìn)一步思考和學(xué)習(xí)。

同時(shí),講出來(lái)后看或者聽(tīng)的人可以有不同的理解,或者有新的補(bǔ)充,這相當(dāng)于繼續(xù)完善了整個(gè)知識(shí)技能體系。

這樣的例子很多,包括我自己寫(xiě)博客的時(shí)候經(jīng)常遇到,本來(lái)我覺(jué)得自己已經(jīng)掌握很全面了,但一寫(xiě)就發(fā)現(xiàn)很多點(diǎn)沒(méi)考慮到。

組內(nèi)培訓(xùn)的時(shí)候也經(jīng)??吹?,有的同學(xué)寫(xiě)了 PPT,但是講的時(shí)候,大家一問(wèn),或者一討論,就會(huì)發(fā)現(xiàn)很多點(diǎn)還沒(méi)有講清楚,或者有的點(diǎn)其實(shí)是理解錯(cuò)了。

寫(xiě) PPT、講 PPT、討論 PPT,這個(gè)流程全部走一遍,基本上對(duì)一個(gè)知識(shí)點(diǎn)掌握就比較全面了。

免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。文章僅代表作者個(gè)人觀點(diǎn),不代表本平臺(tái)立場(chǎng),如有問(wèn)題,請(qǐng)聯(lián)系我們,謝謝!

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉