平凡和殿堂級(jí)程序猿差距會(huì)有多大?

程序員之間的技術(shù)一直是薛定諤的情況。

除開(kāi)那幾個(gè)憑借一己之力,即可顛覆世界的技術(shù)大神。我們普通程序員,無(wú)論是腦力,還是體力,絕對(duì)不比一般的“大神”差。尤其是年輕的程序員。

講個(gè)很長(zhǎng)的故事:兩個(gè)朋友小明和小亮,他們都是普通院校畢業(yè),可同為程序員的發(fā)展軌跡,卻截然不同,究竟為何呢?

起初,小明和小亮在剛接觸編程的時(shí)候,都是跟著書(shū)里和視頻里的教程,下框架,搭服務(wù),建據(jù)庫(kù)。兩人為了讓第一個(gè)Demo程序能跑起來(lái),皆被“天書(shū)”般的文檔和“古墓梵文”般的配置文件虐得體無(wú)完膚。

在學(xué)習(xí)的過(guò)程中,小明和小亮同樣會(huì)因某個(gè)粗心大意的錯(cuò)漏,被BUG卡個(gè)兩三天,雙手抱頭,內(nèi)心崩潰。嘗試著玄學(xué)重啟程序,雖然神奇地編譯通過(guò),但在運(yùn)行的時(shí),卻再次飆紅,那一刻,想死的心都有了。也會(huì)因?yàn)槊贿@頭腦的成功運(yùn)行,而揮舞雙手喜不自勝。

在入門編程這個(gè)階段,小明和小亮的學(xué)習(xí)過(guò)程與水平,并無(wú)太大差別。無(wú)非就是輸出渲染、增刪查改、基本業(yè)務(wù)的掌握。

真正的分水嶺,開(kāi)始于熟悉編程后,即進(jìn)階編程的階段。

在小明領(lǐng)悟了“Baidu + Googel + Ctrl+C + Ctrl+V”四騷高效大法的真諦時(shí)。小亮開(kāi)始了對(duì)技術(shù)本源的好奇之旅:

● 編程框架是如何運(yùn)轉(zhuǎn)起來(lái)并輸出“Hello World^-^”的?

于是他開(kāi)始艱難的源碼學(xué)習(xí)旅程。多方面網(wǎng)羅資料,慢慢明白了IOC容器、單例、工廠、策略、裝飾、反射和適配等諸多模式,在實(shí)際場(chǎng)景的作用。腦海里對(duì)項(xiàng)目工程的全貌,有了初步的認(rèn)識(shí)。也間接奠定了基礎(chǔ)的系統(tǒng)開(kāi)發(fā)思維,并開(kāi)始意識(shí)到“組合-解耦”對(duì)項(xiàng)目的日后維護(hù)的重要性。

學(xué)框架期間,小亮無(wú)意間觸碰到一篇名為《Mysql的20條優(yōu)化方法》的文章。這讓他驚奇的發(fā)現(xiàn),哇哦~原來(lái)優(yōu)秀的細(xì)節(jié)處理,純技術(shù)交流:737251827對(duì)提高M(jìn)ySql的性能有著如此巨大的影響。這引發(fā)他做了一次延伸思考:

● 如何讓自己更正規(guī),更有章法地使用Mysql呢?

于是他在網(wǎng)上前輩的推薦下,開(kāi)始生啃神書(shū)《高性能MySQL》,觸碰到了業(yè)務(wù)表設(shè)計(jì)、InnoDB、事務(wù)特性ADIC、索引、EXPLAIN、資源競(jìng)爭(zhēng)、主從服務(wù)、分布式、高可用、冷熱備份。知道了《數(shù)據(jù)結(jié)構(gòu)》和《算法》這兩門學(xué)問(wèn)跟數(shù)據(jù)庫(kù)的原理有一定淵緣。更重要的是,小亮開(kāi)始深刻地認(rèn)識(shí)到,數(shù)據(jù)就是技術(shù)的命根。

在書(shū)中,小亮還知曉了Nosql,諸如Redis、MonngoDB這類內(nèi)存數(shù)據(jù)庫(kù)性能極佳,值得投資學(xué)習(xí)。就計(jì)劃著偶爾抽些碎片時(shí)間,嘗試學(xué)習(xí)Reids,在此期間他萌生了一個(gè)疑惑:

● Key、Hash、List、Set、ScoreSet各自應(yīng)該用在哪些場(chǎng)景?

在網(wǎng)上閱讀雜文,內(nèi)容零碎,不成體系。小亮掏腰包入手《Redis IN Action》。深入閱讀后,明白了如何將不同Redis數(shù)據(jù)結(jié)構(gòu)組合起來(lái),實(shí)現(xiàn)購(gòu)物、熱榜、搜索、登錄等應(yīng)用場(chǎng)景。像RDB和AOF的機(jī)制,原子鎖,分布式鎖,鎖的粒度與時(shí)效這類技術(shù),給了他一些啟發(fā):“要用好技術(shù),需要根據(jù)場(chǎng)景,學(xué)會(huì)取舍,是一門非常細(xì)膩的活兒”。

這種對(duì)技術(shù)刨根問(wèn)底的學(xué)習(xí)方式,在幾年間,讓小亮

● 從崇拜Unix設(shè)計(jì)深追到《計(jì)算機(jī)組成原理》

● 從Http請(qǐng)求深入到握手分包

● 從sort函數(shù)深入到不同算法的時(shí)間復(fù)雜度O(n)

...

他的技術(shù)體系,向左->向右->往上->往下,連貫且有序地生根發(fā)芽,最后小亮發(fā)現(xiàn),其實(shí)不同的技術(shù),有諸多相似的原理。例如:

● 主流的編程框架都和設(shè)計(jì)模式相關(guān),特性雖繁雜,但有跡可循

● 在諸多新潮的軟件和業(yè)務(wù)處理,都能看到Unix編程哲學(xué)的身影

● 由邏輯門組成的感知機(jī),可以擬建基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)

...

再往后,小亮的技術(shù)根基越打越深,越拓越廣。對(duì)于新知識(shí)的掌握速度,就像學(xué)會(huì)了《九陽(yáng)神功》那般,慢慢能夠做到“觸類旁通”的地步。

這樣堅(jiān)如磐石的技術(shù)“底盤”。讓小亮在職業(yè)道路上,選擇權(quán)更多,也較為順利的拿到大廠的橄欖枝。

而這時(shí)的小明,則步入了中小廠工作。90后的創(chuàng)業(yè)隊(duì)伍,拉了幾輪金主爸爸,倡導(dǎo)新職場(chǎng),未曾盈利,就提倡全員高福利,這讓小明在薪資上的獅子大開(kāi)口成了真。

工作上,“四騷大法”依然犀利高效。小明有了充足的閑暇時(shí)間放放松。也不是沒(méi)想過(guò)要深挖點(diǎn)技術(shù),但沒(méi)人教,又沒(méi)現(xiàn)成的全面教程,也沒(méi)有成規(guī)模的公司業(yè)務(wù),來(lái)一波高壓驅(qū)動(dòng),靠自己,真的是看10分鐘,就腦殼暈。只能三天打魚(yú)兩天曬網(wǎng),然后不了了之。

初到大廠新環(huán)境的小亮,被其豐厚的家底和優(yōu)秀的人才隊(duì)伍秀得喜不自禁。與此同時(shí),他的新歷練也即將開(kāi)始。

一進(jìn)編制,就是入伍1000萬(wàn)用戶級(jí)別的項(xiàng)目。由于小亮以前有個(gè)小習(xí)慣,恰飯時(shí)間就看大廠的技術(shù)沙龍視頻,所以實(shí)際工作悟性很高,表現(xiàn)的還算不錯(cuò)。反倒是真真正正的海量用戶、海量請(qǐng)求、海量數(shù)據(jù)、海量日志,讓他切實(shí)的感慨到“紙上學(xué)來(lái)終覺(jué)淺”。

自此,兩人在技術(shù)世界的階級(jí)開(kāi)始慢慢分化。

小亮逐漸在工作中明白到:

● 商業(yè)大項(xiàng)目中,高并發(fā),高可用,心跳,安全,冷熱備,應(yīng)急修復(fù)不是拿來(lái)技術(shù)互吹的,是團(tuán)隊(duì)工作的基本要求。因?yàn)槌鰡?wèn)題,就是虧大錢

● 持續(xù)集成(CI)被真正地落地執(zhí)行,確實(shí)能大大提高項(xiàng)目的穩(wěn)定性

● 一個(gè)每天被請(qǐng)求上億次的API,其背后細(xì)膩的技術(shù)棧,含金量十足

● 項(xiàng)目棘手的環(huán)節(jié),有經(jīng)驗(yàn)的前輩們,是真的可以一手托天

● 名牌海龜大佬,盛名之下無(wú)虛士,也非常照顧和提點(diǎn)后輩。

...

就在這樣,在這個(gè)海量用戶+精英氛圍的“超級(jí)經(jīng)驗(yàn)房”里,小亮被各種高標(biāo)準(zhǔn),高要求日復(fù)一日的錘煉。

一晃,兩年過(guò)去了。小亮破繭成蝶,自身技術(shù)在團(tuán)隊(duì)里已然獨(dú)當(dāng)一面,成為新人口中的“亮神”。

其間,他突出的表現(xiàn),勤奮的態(tài)度,良好的口碑,也讓他被領(lǐng)導(dǎo)相中,委任為新項(xiàng)目的技術(shù)Leader。

在一線開(kāi)發(fā)人員的圈子里,小亮的水準(zhǔn)算基本畢業(yè)了。因?yàn)閷?duì)自己手頭的工作,既熟悉又高效。這讓小亮開(kāi)始有閑暇的時(shí)間,思考自己往后的職業(yè)發(fā)展:

● 努力奮斗,在大廠的體制內(nèi)上升,拿更高的薪水福利

● 聯(lián)系獵頭,利用大廠的名聲,尋找優(yōu)秀的創(chuàng)業(yè)團(tuán)隊(duì),憑技術(shù)入股

● 分享經(jīng)驗(yàn),幫助更多的新人少走彎路,積攢業(yè)界名望

● 投資未來(lái),緊跟技術(shù)的新趨勢(shì),為以后鋪路

...(省略無(wú)數(shù)選擇)

此時(shí),另一邊的小明,輾轉(zhuǎn)數(shù)家公司,不是閑得慌,就是遇上不死不活的項(xiàng)目,在邊角業(yè)務(wù)上忙個(gè)不停,膩到?jīng)]辦法了就跳。

起初小明還是很信奉“跳槽香,越跳槽越香”的網(wǎng)傳。但今年,在跳槽找工作的過(guò)程中,小明漸漸感受到了一個(gè)殘酷的現(xiàn)象 - 程序員的人才市場(chǎng)競(jìng)爭(zhēng)愈發(fā)激烈。大批應(yīng)屆生和培訓(xùn)人員蜂擁而入,這股新鮮的血液,讓自己的競(jìng)爭(zhēng)力有些大不如前了。

后來(lái),小明還是找到了一份新工作,但似乎薪資并不如預(yù)期。而且有點(diǎn)糟心,公司項(xiàng)目不知經(jīng)手多少人(有可能是野外包)。老舊的技術(shù)棧交錯(cuò)纏繞,過(guò)萬(wàn)行的文件比比皆是,老板性子又急躁。每天上班戰(zhàn)戰(zhàn)兢兢,一有需求改動(dòng),工作就像進(jìn)入古墓探險(xiǎn),一個(gè)不小心,搬開(kāi)某塊磚頭,整個(gè)人就被瞬間崩壞的古墓直接深埋,從晚上直至天亮才勉強(qiáng)鉆出...

后記

學(xué)好技術(shù)的竅門,在于將日常工作會(huì)用到的,卻不懂其原理的技術(shù)“小黑箱”,逐一拆開(kāi),認(rèn)真剖析學(xué)習(xí)。每天一點(diǎn)點(diǎn),每天一點(diǎn)點(diǎn)。1年后,你的技術(shù)水平必然大幅提升。

沒(méi)有前輩咨詢,可以多主動(dòng)加入技術(shù)交流群。

沒(méi)有職業(yè)路線,可以多關(guān)注大神的公號(hào)來(lái)借鑒其想法和經(jīng)驗(yàn)。

沒(méi)有學(xué)習(xí)資料,可以多買幾本行業(yè)的經(jīng)典讀物少喝幾杯飲料。

目標(biāo)明確,思路清晰,資料齊全,技術(shù)儀式感營(yíng)造得當(dāng),學(xué)起來(lái)會(huì)舒坦很多。

千萬(wàn)不要輕信程序員遇到好項(xiàng)目,是靠運(yùn)氣的。要知道,大多數(shù)好項(xiàng)目都是由優(yōu)秀的人才做出來(lái)的,有幸進(jìn)去的程序員,能力一般不會(huì)差到哪里去。

技術(shù)是一個(gè)努力與回報(bào)成正比的行業(yè)。它公平公正的對(duì)待著每一位從業(yè)者。那些被的尊稱為“大神”的佼佼者,必然有著常人無(wú)法想象的刻苦學(xué)習(xí)和辛勞付出。

程序員就像一位劍客,他必須流下汗水,去磨利他的“技術(shù)”佩劍;消耗精力,去專研劍的招式;付出青春,去探索劍的真意。只有這樣,他才能在這個(gè)危險(xiǎn)與機(jī)遇并存的互聯(lián)網(wǎng)江湖,謀得一席之地,抑或是勇攀巔峰。

希望能對(duì)程序你有所幫助。

————————————————

版權(quán)聲明:本文為CSDN博主「AI引路星」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明。

原文鏈接:https://blog.csdn.net/Java_rich/article/details/119572445

最后編輯于
?著作權(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)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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