如何成為高級(jí)程序員?

原諒我多少有些標(biāo)題黨了,這不是一篇教你如何成為高級(jí)程序員的行動(dòng)指南。只是今天看了一篇文章,感觸頗深,希望分享一下。原文地址如下:

高級(jí)程序員與初級(jí)程序員差別在哪里?

讀完文章的我茅塞頓開,彷佛醍醐灌頂。其實(shí)我自己也經(jīng)常思考這個(gè)問題,究竟和高級(jí)程序員的差距在哪里?可是我雖然知道了差距,但是卻無從下手,不知道該從哪里改進(jìn)自己。

作者列舉了如下的幾點(diǎn),對(duì)這個(gè)問題進(jìn)行了回答:

  • 初級(jí)多在寫代碼,高級(jí)多在設(shè)計(jì)代碼;
  • 初級(jí)多在解決一個(gè)問題,高級(jí)多在解決一類問題;
  • 初級(jí)多在考慮技術(shù)問題,高級(jí)還要參與業(yè)務(wù)上的需求;
  • 初級(jí)工程師只管接需求,導(dǎo)致自己忙不過來,高級(jí)工程師會(huì)砍需求, 用自己得經(jīng)驗(yàn)告訴產(chǎn)品這個(gè)需求不需要,告訴設(shè)計(jì)師這個(gè)交互沒必要;
  • 初級(jí)工程師可能做完一個(gè)項(xiàng)目就完了,高級(jí)工程師可能會(huì)封裝幾個(gè)組件,整理一個(gè)腳手架出來。

我讀這每一條都非常有感觸,完完全全就是自己的真實(shí)寫照。尤其是后面的兩條,我真心覺得是自己和高級(jí)程序員的差距所在。

Photo by Daniel Novykov on Unsplash

誤區(qū)一:接到需求就做

很多次我都是接到需求,簡(jiǎn)單的參與了一下需求討論會(huì),覺得差不多可以做,然后就動(dòng)手了。等到做到一半,發(fā)現(xiàn)踩到了各種稀奇古怪的坑之后,又開始找產(chǎn)品重新討論。有時(shí)候臨近迭代尾聲,這種突發(fā)狀況真的讓人手忙腳亂。

反觀我的師傅和其他一些經(jīng)驗(yàn)較為豐富的同事,他們?cè)趨⒓有枨笥懻摃?huì)的時(shí)候,就會(huì)積極的參與和產(chǎn)品、交互、后端之間的討論,會(huì)事先將可能存在的風(fēng)險(xiǎn)拋出來,一起尋找應(yīng)對(duì)方案。即便在討論結(jié)束后,也不會(huì)立即打開編輯器寫代碼,而是通過分解任務(wù)的方式將整個(gè)功能的實(shí)現(xiàn)拆解成模塊,再對(duì)模塊進(jìn)行細(xì)分的設(shè)計(jì)。這當(dāng)然需要經(jīng)驗(yàn)的積累,以及對(duì)于代碼的熟悉程度。不過養(yǎng)成這樣的習(xí)慣,能利于提前發(fā)現(xiàn)問題,而不是等到火燒眉毛了,發(fā)現(xiàn)某個(gè)功能模塊實(shí)現(xiàn)上存在缺陷,導(dǎo)致整個(gè)項(xiàng)目都無法上線。

誤區(qū)二:功能做完就完了

這個(gè)我覺得真的是理念上的差距,而不是技術(shù)上的差距了。當(dāng)你有一種得過且過的心態(tài)的時(shí)候,最終的目的就是將需求做完,盡快交差。如果不是以這種應(yīng)付的態(tài)度,而是一種分享的態(tài)度的話,也許我可以更多的思考思考這次開發(fā)的過程中有沒有碰到什么難題值得分享?有沒有哪個(gè)組件可以進(jìn)行復(fù)用?我是不是可以把它的接口設(shè)計(jì)的更好一點(diǎn)?這些其實(shí)都是有價(jià)值的,不僅僅是實(shí)現(xiàn)了某個(gè)功能,更多的可能是給身邊的人帶來了價(jià)值。

事實(shí)上,去年除了對(duì)于分組樹組件和選擇器組件的優(yōu)化,我很少在這方面作出自己的貢獻(xiàn)。希望自己能在新的一年里,保有這種心態(tài),在功能完成之后,還能再進(jìn)一步地思考思考,琢磨琢磨,切莫得過且過,放走可能成長(zhǎng)的機(jī)會(huì)。

誤區(qū)三:羞恥于求助

這是文章里沒有提到的一點(diǎn),我覺得可能大部分的初級(jí)程序員可能都會(huì)有這樣的誤區(qū):害怕開口求助,求助等于承認(rèn)自己技術(shù)不行,會(huì)讓別人覺得這么簡(jiǎn)單的問題根本不值得回答。

其實(shí)不是這樣,問題是沒有貴賤之分的,我的師傅也會(huì)經(jīng)常請(qǐng)教我一些代碼上的細(xì)節(jié)。聞道有先后,術(shù)業(yè)有專攻,沒有人是全知全能的,所以有問題很正常。這時(shí)候要做的,不是將問題憋著,一直等到臨近 deadline 才支支吾吾說出來,而要積極主動(dòng)的去尋求可能的幫助,共同去解決問題。更何況,如果你的問題對(duì)別人也有了很大的啟發(fā)作用,那何嘗不是一件雙贏的事情呢?


我的思考

以上是我在讀完文章后反觀自身的一些思考,也讓自己能正視自身存在的一些問題。其實(shí),歸根結(jié)底,初級(jí)程序員和高級(jí)程序員之間最大的差別并不在技術(shù)上,而是人生的態(tài)度上。他們?cè)诿鎸?duì)問題時(shí),表現(xiàn)得更加積極,更加樂于思考問題背后的本質(zhì),更加富有一種奉獻(xiàn)團(tuán)隊(duì)的精神。

子曰:“見賢思齊焉,見不賢而內(nèi)自省也?!敝懒俗约号c他們的差距所在,要做的自然是向他們看齊啦~

最后編輯于
?著作權(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ù)。

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