在信息技術(shù)高速發(fā)展的今天,程序員已經(jīng)成為炙手可熱的職業(yè)。然而,并非每個(gè)程序員都能在激烈的競(jìng)爭(zhēng)中脫穎而出。
那么,究竟是什么特質(zhì)區(qū)分了普通程序員和優(yōu)秀程序員呢?
1.新領(lǐng)域的學(xué)習(xí)能力
在評(píng)估一名程序員的能力時(shí),我們首先需要關(guān)注的是他們?cè)谛骂I(lǐng)域的適應(yīng)和學(xué)習(xí)速度。
例如,如果一個(gè)人之前沒(méi)有使用過(guò)Go語(yǔ)言,那么他需要多長(zhǎng)時(shí)間才能用Go語(yǔ)言實(shí)現(xiàn)一個(gè)功能?面對(duì)一個(gè)全新的代碼庫(kù),他們實(shí)現(xiàn)一個(gè)需求需要多長(zhǎng)時(shí)間?當(dāng)他們加入一個(gè)新公司或新部門,完成第一個(gè)項(xiàng)目又需要多長(zhǎng)時(shí)間?
我認(rèn)為這一點(diǎn)至關(guān)重要,不僅因?yàn)榧夹g(shù)的更新?lián)Q代非???,需要我們不斷學(xué)習(xí)新技能,更因?yàn)榈谝挥∠蟮闹匾浴?/p>
2.深厚的領(lǐng)域知識(shí)
當(dāng)負(fù)責(zé)的產(chǎn)品出現(xiàn)異常行為(bug)時(shí),你能否迅速判斷出問(wèn)題可能出現(xiàn)在哪里?當(dāng)同事遇到類似問(wèn)題時(shí),你是他們尋求幫助的第一人選嗎?
舉個(gè)例子,以前我遇到一個(gè)嚴(yán)重的bug,我花了半個(gè)小時(shí)調(diào)試卻毫無(wú)頭緒,于是我向老板匯報(bào)。老板立刻指出問(wèn)題可能出現(xiàn)在A、B或C三個(gè)地方,C是最不可能的,讓我先去檢查C。結(jié)果問(wèn)題很快得到解決,我也能按時(shí)下班。
對(duì)系統(tǒng)架構(gòu)和代碼邏輯的深入理解,能夠幫助我們快速定位問(wèn)題,節(jié)省寶貴的時(shí)間和精力。
3.出色的問(wèn)題解決能力
優(yōu)秀程序員是天生的問(wèn)題解決者。他們能夠從紛繁復(fù)雜的信息中抽絲剝繭,找到問(wèn)題的根源并提出有效的解決方案。
比如在調(diào)試時(shí),如果有人在論壇上討論你們產(chǎn)品的異?,F(xiàn)象,你能根據(jù)討論直接找出bug嗎?這需要你對(duì)產(chǎn)品架構(gòu)和用戶行為有深入的理解,并具備從海量信息中提取關(guān)鍵信息的敏銳洞察力。
面對(duì)性能優(yōu)化的目標(biāo),你會(huì)如何著手找出瓶頸?這需要你熟練掌握性能分析工具,并對(duì)系統(tǒng)架構(gòu)和代碼執(zhí)行效率有深刻的理解。
面對(duì)一個(gè)開(kāi)放問(wèn)題,你如何簡(jiǎn)化問(wèn)題?這需要你具備清晰的邏輯思維能力和抽象思維能力,能夠抓住問(wèn)題的本質(zhì),并將其簡(jiǎn)化到可以解決的程度。
4.領(lǐng)導(dǎo)力
領(lǐng)導(dǎo)力不僅僅是領(lǐng)導(dǎo)層的能力,領(lǐng)導(dǎo)自己也是一項(xiàng)領(lǐng)導(dǎo)力。
比如在負(fù)責(zé)的項(xiàng)目中,你能自信地做出正確的技術(shù)決策嗎,甚至能說(shuō)服領(lǐng)導(dǎo),還是必須請(qǐng)示領(lǐng)導(dǎo)怎么做決定?你能規(guī)劃好項(xiàng)目的時(shí)間表,給出準(zhǔn)確的時(shí)間預(yù)估嗎?你知道下一步應(yīng)該做什么嗎?
特別優(yōu)秀的程序員在接到任務(wù)后,老板就可以放心等待成果了。如果每天都需要告訴程序員今天該做什么,做完第一步永遠(yuǎn)想不到下一步,作為領(lǐng)導(dǎo),雖然這種程序員也能干活,但帶領(lǐng)起來(lái)確實(shí)很累。
5.團(tuán)隊(duì)協(xié)作溝通能力
比如你的領(lǐng)導(dǎo)和團(tuán)隊(duì)是否了解你的進(jìn)度和進(jìn)展是否順利?你能處理與團(tuán)隊(duì)成員的沖突嗎?當(dāng)你和領(lǐng)導(dǎo)或團(tuán)隊(duì)意見(jiàn)不一致時(shí),你如何處理?
你能推動(dòng)跨部門合作嗎,跨部門的溝通是否順暢?你能帶領(lǐng)新人并培養(yǎng)他們嗎?你能在緊急情況下承擔(dān)責(zé)任嗎?你能帶領(lǐng)團(tuán)隊(duì)嗎?
優(yōu)秀程序員是團(tuán)隊(duì)中不可或缺的一員。他們能夠與團(tuán)隊(duì)成員保持良好溝通,及時(shí)同步項(xiàng)目進(jìn)度,有效處理團(tuán)隊(duì)沖突,并積極推動(dòng)跨部門合作。
6.對(duì)產(chǎn)品/業(yè)務(wù)的認(rèn)識(shí)
你知道你的部門做什么產(chǎn)品和業(yè)務(wù)是有意義的嗎?當(dāng)產(chǎn)品提出不合理的要求時(shí),你能有理有據(jù)地反駁,并且讓高層覺(jué)得你更有道理而不是產(chǎn)品更有道理嗎?你有能力和客戶直接溝通需求嗎?
一個(gè)優(yōu)秀的程序員,尤其是級(jí)別特別高的,由于對(duì)領(lǐng)域非常熟悉,會(huì)參與很多與產(chǎn)品相關(guān)的決策,很多時(shí)候會(huì)與產(chǎn)品管理重疊。
因此,市場(chǎng)調(diào)研、客戶訪談、需求分析等,即使不比產(chǎn)品經(jīng)理做得更好,至少會(huì)做,不會(huì)被不靠譜的產(chǎn)品經(jīng)理帶入誤區(qū)。即使不跳槽,也能在同領(lǐng)域內(nèi)擔(dān)任比平均水平高的產(chǎn)品經(jīng)理,沒(méi)有太大難度。
------
希望每一位程序員都能以此為目標(biāo),不斷精進(jìn),在職業(yè)道路上越走越遠(yuǎn)!