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