關(guān)于開發(fā)學(xué)習(xí)文章摘要

首先,前五年,如果一個(gè)程序員大致能做到一下幾點(diǎn)「后面還會(huì)詳談」。

具有扎實(shí)的基本功

能快速完成領(lǐng)導(dǎo)交給你的代碼開發(fā)任務(wù)

能在遇到問(wèn)題的時(shí)候有正確的解決思路

能對(duì)公司的新人進(jìn)行一定輔導(dǎo),包括但不限于技術(shù)點(diǎn)分享、代碼評(píng)審、需求分析、表結(jié)構(gòu)設(shè)計(jì)等

那么,從第五年開始,我認(rèn)為可以、也應(yīng)當(dāng)朝更高的層次進(jìn)行邁進(jìn),前一個(gè)層次如果更多是偏重個(gè)人,那么這個(gè)層次我認(rèn)為更多應(yīng)該偏重團(tuán)隊(duì),簡(jiǎn)單羅列一下大致上應(yīng)該有。

系統(tǒng)設(shè)計(jì)能力,或許在之前給一個(gè)功能,能從 DB 設(shè)計(jì) --> 服務(wù)端開發(fā) --> 前端開發(fā)一棧把事情都做好,那么之后,在領(lǐng)導(dǎo)給出具體一塊大業(yè)務(wù),比如想做一個(gè)淘寶商場(chǎng)的會(huì)員模塊,能充分分析出整個(gè)功能并把功能拆分成一個(gè)一個(gè)的點(diǎn)、能對(duì)每一個(gè)點(diǎn)之間的交互畫出交互圖、能梳理清楚數(shù)據(jù)庫(kù)的 ER 關(guān)系圖、能把工作合理分配給同事進(jìn)行開發(fā)。

帶領(lǐng)團(tuán)隊(duì)能力,大致就是把控整體開發(fā)節(jié)奏,保證在約定時(shí)間點(diǎn)前進(jìn)行交付,不出現(xiàn)延期的情況。

大而博不如小而美,會(huì) 10 門技術(shù)、每門技術(shù)掌握到 6 分,不如會(huì) 5 門技術(shù)、2 門技術(shù)掌握到8分,我感覺(jué)整個(gè)行業(yè)什么都會(huì)一點(diǎn)的人比較多,把一門技術(shù)進(jìn)行深入研究的比較少,畢竟掌握也許只需要 1 星期,深耕或許需要1 個(gè)月甚至更久。在五年這個(gè)節(jié)點(diǎn),我認(rèn)為選擇一到兩個(gè)自己感興趣的方向進(jìn)行深入研究會(huì)是一個(gè)比較好的選擇。

這是我自己的思考,也是我在第五年開始對(duì)自己的要求,希望這一些思考也能給大家?guī)?lái)一些啟發(fā)。

五年節(jié)點(diǎn),我理解的優(yōu)秀程序員應(yīng)當(dāng)具備的技術(shù)素質(zhì)

廣告

查看詳情

網(wǎng)上有很多所謂的 Java 程序員面試經(jīng),其實(shí)看下來(lái)的感覺(jué)就是沒(méi)多大用,面試是沒(méi)有套路的,每一個(gè)面試官問(wèn)的東西也都不一樣,如果根據(jù)那些面試問(wèn)題去學(xué)習(xí)和準(zhǔn)備,那真的是只見樹木不見森林,對(duì)個(gè)人提升沒(méi)有太大提高。

那么,在五年這個(gè)階段,一個(gè)優(yōu)秀的程序員應(yīng)當(dāng)具備怎樣的技術(shù)素質(zhì)呢?按照我個(gè)人的理解,主要就是基本功 + 項(xiàng)目。

為什么之前說(shuō)針對(duì)面試題進(jìn)行學(xué)習(xí)和準(zhǔn)備作用不大,因?yàn)槲艺J(rèn)為我們關(guān)注的不應(yīng)當(dāng)是題,而是題背后的一個(gè)一個(gè)的方向,這也就是我認(rèn)為的基本功。那從基本功的角度來(lái)說(shuō),羅列一下我能想到的,包括但不限于以下內(nèi)容。

工作相關(guān)使用到的JDK類及其相關(guān)源碼、機(jī)制。

設(shè)計(jì)模式,設(shè)計(jì)模式在工作中用到了哪些,具體使用場(chǎng)景。

并發(fā)類的相關(guān)知識(shí),線程安全、鎖機(jī)制、信號(hào)量、閉鎖、柵欄、線程池等。

框架相關(guān),Spring相關(guān)機(jī)制、Spring MVC 相關(guān)機(jī)制、MyBatis 相關(guān)機(jī)制、使用的細(xì)節(jié)點(diǎn)、框架實(shí)現(xiàn)原理等。

JVM,內(nèi)存布局、垃圾識(shí)別算法、垃圾回收算法、垃圾收集器、類加載機(jī)制、內(nèi)存模型、出現(xiàn)內(nèi)存問(wèn)題時(shí)定位問(wèn)題的方法等。

數(shù)據(jù)庫(kù)的基本數(shù)據(jù)類型、索引機(jī)制、各引擎區(qū)別、鎖機(jī)制、慢 SQL 定位及優(yōu)化等。

緩存機(jī)制,這里的機(jī)制指的是緩存加載、緩存擊穿、緩存雪崩這些機(jī)制及其相關(guān)應(yīng)對(duì)方案,用過(guò) Redis、MemCache 的最好理解一下它們的原理或者緩存提供的一些高級(jí)功能,集群如何實(shí)現(xiàn)

分布式的一些知識(shí),比如 CAP 理論、數(shù)據(jù)一致性的幾種解決方案、分布式事務(wù)如何處理,分庫(kù)分表怎么做、現(xiàn)有的相關(guān)解決方案等

NIO 的作用,epoll 模型是否知道一些,Netty 的相關(guān)機(jī)制、Netty 相比原生NIO 的優(yōu)點(diǎn)、半包拆包、斷線重連解決方案等

Web 相關(guān),Get 與 Post 的區(qū)別、轉(zhuǎn)發(fā)與重定向的區(qū)別、跨域問(wèn)題如何解決、如何保證接口冪等性等

網(wǎng)絡(luò)層相關(guān),三次握手和四次握手、全連接隊(duì)列和半連接隊(duì)列、負(fù)載均衡算法等

其他中間件,MQ作用和使用場(chǎng)景、服務(wù)化治理框架的作用和使用場(chǎng)景、配置中心的作用和使用場(chǎng)景等

數(shù)據(jù)結(jié)構(gòu),數(shù)組、鏈表、棧、隊(duì)列、樹等優(yōu)缺點(diǎn),在什么場(chǎng)景下使用什么數(shù)據(jù)結(jié)構(gòu)

Linux 相關(guān)知識(shí),基本命令的使用,查詢?nèi)罩尽⒍ㄎ粏?wèn)題,項(xiàng)目或者第三方組件的基本運(yùn)維等

坦白講,以上的這些東西全都掌握也不可能,哪怕面試官肯定也有很多不會(huì)的,但這就是基本功,能多掌握一點(diǎn)多掌握一點(diǎn),技多不壓身,至于別人如何評(píng)價(jià)你,就留給別人去評(píng)價(jià)吧,做好自己能做好的就行了。我在之前寫過(guò)的文章中反復(fù)強(qiáng)調(diào)深度 + 廣度,深度優(yōu)先、廣度次之,有了深度 + 廣度,在開發(fā)過(guò)程中我們可以盡快完成需求,在遇到問(wèn)題情況下我們可以第一時(shí)間找到應(yīng)對(duì)方案。

在三年的時(shí)間點(diǎn),能掌握上述的知識(shí)點(diǎn)我認(rèn)為已經(jīng)是非常非常優(yōu)秀的了,但這兩年的經(jīng)歷讓我意識(shí)到的是,到了五年的時(shí)間點(diǎn),如果只是具備這些硬性技能,還是不夠,這兩年更多的應(yīng)當(dāng)是在項(xiàng)目上進(jìn)行積累,也就是前面說(shuō)的項(xiàng)目,大致上應(yīng)該有。

獨(dú)立完成復(fù)雜業(yè)務(wù),或者完成一個(gè)已有項(xiàng)目中的大功能點(diǎn),這就需要有根據(jù)業(yè)務(wù)對(duì)功能進(jìn)行分解、分析的能力。

獨(dú)立排查復(fù)雜問(wèn)題,在項(xiàng)目運(yùn)行過(guò)程中,一定不可能安然無(wú)事,除開業(yè)務(wù)性的問(wèn)題,CPU 100%是否能獨(dú)立排查、內(nèi)存溢出是否能獨(dú)立排查、應(yīng)用死鎖或者 DB 死鎖能否獨(dú)立排查、API調(diào)用時(shí)間長(zhǎng)能否獨(dú)立排查,以上問(wèn)題排查完畢能否及時(shí)解決。

帶領(lǐng)團(tuán)隊(duì)的能力,可能這時(shí)候帶領(lǐng)的是 1~2 個(gè)人的小團(tuán)隊(duì),即使一個(gè)小團(tuán)隊(duì),也能考驗(yàn)帶團(tuán)隊(duì)、任務(wù)合理分配的能力。

可能上面的要求有點(diǎn)高,可能工作中未必有這樣的機(jī)會(huì),但是不要抱怨,機(jī)會(huì)永遠(yuǎn)留給有能力、有準(zhǔn)備的人,我們首先想的不應(yīng)該是等待別人交給你一件有挑戰(zhàn)性的事情,你在做這件事情的情況下去提升自己,而應(yīng)當(dāng)是先提升自己的素質(zhì),然后讓別人放心把有挑戰(zhàn)性的事情交給你來(lái)做。

回到我之前寫的,為什么16年到18年間,領(lǐng)導(dǎo)愿意給我機(jī)會(huì)去進(jìn)行嘗試,首先就是因?yàn)閭€(gè)人水平的提升。

最后的最后

我想的是,無(wú)論進(jìn)入了 BAT 還是進(jìn)入了 FLAG,都絕不是技術(shù)道路的終點(diǎn),不是可以高枕無(wú)憂地躺在過(guò)去的功勞簿上、無(wú)憂無(wú)慮過(guò)完下輩子的資本,相反,必須更努力,才能在一群同樣優(yōu)秀的人中脫穎而出。

......

?著作權(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)容

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