簡(jiǎn)評(píng): 程序員的工作不是寫(xiě)代碼,而是解決問(wèn)題庭呜。成為高級(jí)工程師后滑进,如果不做管理者,你還能做什么呢募谎?
你做程序員已經(jīng)有好幾年并且已經(jīng)晉升過(guò)一兩次扶关,最終升任了高級(jí)工程師或一些其他的同等職位,在此之前近哟,你的職業(yè)道路簡(jiǎn)單明了:你學(xué)會(huì)如何獨(dú)立工作驮审,然后一步步升任為高級(jí)工程師。
現(xiàn)在的你開(kāi)始思考自己職業(yè)生涯的下一步是什么吉执,如果你還沒(méi)有明確的規(guī)劃,問(wèn)自己幾個(gè)問(wèn)題:
- 你是否成為了一個(gè)管理者且不再編程地来?
- 僅僅學(xué)習(xí)新技術(shù)戳玫,你是否覺(jué)得不夠?
- 你的目標(biāo)是什么未斑?
本文我想提出一個(gè)職業(yè)發(fā)展的替代方案咕宿,一個(gè)能給你更多自主權(quán)和討價(jià)還價(jià)能力的替代方案。與成為管理者不同的是蜡秽,它仍然允許你編程府阀。
從寫(xiě)代碼到解決問(wèn)題
作為程序員的工作到最后是解決問(wèn)題,而不是編寫(xiě)代碼芽突,解決問(wèn)題需要這些步驟:
- 發(fā)現(xiàn)和確認(rèn)問(wèn)題
- 提出解決方案
- 實(shí)施解決方案
這里面的每一個(gè)都可以被認(rèn)為是一種技能樹(shù):一組可以單獨(dú)和并行開(kāi)發(fā)的相關(guān)技能试浙。但是在實(shí)踐中,你通常會(huì)從使用第三個(gè)技能樹(shù)開(kāi)始寞蚌,在變得更有經(jīng)驗(yàn)的時(shí)候田巴,才逐個(gè)添加其他技能。
Randall Koutnik 把這些描述為一種職業(yè)頭銜挟秤,一個(gè)職業(yè)發(fā)展走向:實(shí)施者壹哺、解決者和發(fā)現(xiàn)者。
作為實(shí)施者艘刚,你是一名沒(méi)有經(jīng)驗(yàn)的程序員管宵,你的任務(wù)由其他人定義:你只需實(shí)現(xiàn)小的、明確指定的代碼塊。
假設(shè)一下箩朴,你在一家為養(yǎng)寵物的人搭建網(wǎng)站的公司工作岗喉。你在上班的時(shí)候會(huì)接收到一個(gè)任務(wù):“在這里添加一個(gè)下拉菜單,列出所有的鬣蜥疾病隧饼,你可以從 IGUANA_DISEASE 表中獲取這些疾病沈堡。選擇一個(gè)菜單項(xiàng)應(yīng)重定向到適當(dāng)?shù)捻?yè)面⊙嘌悖”
你不知道用戶為什么會(huì)需要列出鬣蜥疾病诞丽,也不必花費(fèi)太多時(shí)間來(lái)弄清楚如何實(shí)現(xiàn)它,照吩咐去做就行了拐格。
當(dāng)你變得更有經(jīng)驗(yàn)時(shí)僧免,你就成了一個(gè)解決者:你能夠?yàn)椴惶鞔_的問(wèn)題想出解決方案。
當(dāng)你遇到一個(gè)問(wèn)題:“我們需要在網(wǎng)站上添加一個(gè)部分捏浊,讓寵物主人知道自己的寵物是否生病了懂衩。”你先獲悉自己擁有什么數(shù)據(jù)金踪,可以使用哪些 API浊洞,然后與設(shè)計(jì)師一起設(shè)計(jì) UI,創(chuàng)建一個(gè)實(shí)現(xiàn)計(jì)劃胡岔,最后編寫(xiě)代碼法希。
最終你會(huì)成為一個(gè)發(fā)現(xiàn)者:你開(kāi)始自己發(fā)現(xiàn)問(wèn)題并找出其根本原因。
你會(huì)去和你的經(jīng)理談鬣蜥:幾乎沒(méi)人擁有鬣蜥靶瘸,為什么它們?cè)陧?yè)面上和貓狗有一樣的空間苫亦?更不用說(shuō)給鬣蜥編寫(xiě)特定的代碼,這完全是在浪費(fèi)時(shí)間怨咪,難道不是應(yīng)該編寫(xiě)適用于所有動(dòng)物的通用代碼嗎屋剑?
經(jīng)過(guò)一番討論,你發(fā)現(xiàn)必須重做網(wǎng)站架構(gòu)诗眨、業(yè)務(wù)邏輯和設(shè)計(jì)唉匾,這樣就不必在每次添加新動(dòng)物的時(shí)候都編寫(xiě)新代碼。如果你提出正確的架構(gòu)辽话,使得添加一個(gè)新的動(dòng)物只需要花一個(gè)小時(shí)肄鸽,公司就可以以低成本服務(wù)于許多動(dòng)物利基市場(chǎng)。你將與整個(gè)團(tuán)隊(duì)一起合作完成解決方案的設(shè)計(jì)和實(shí)施油啤。
成為發(fā)現(xiàn)者的好處
許多程序員最終停留在解決者這個(gè)角色典徘,不知道下一步該做什么。如果你不做管理益咬,那么成為一個(gè)發(fā)現(xiàn)者是一個(gè)很好的選擇逮诲,原因有兩點(diǎn):自主性和生產(chǎn)力帜平。
Kutnk 的主要觀點(diǎn)是,這三個(gè)階段每走向下一步都會(huì)給你更多的自主權(quán)梅鹦。作為實(shí)現(xiàn)者裆甩,幾乎沒(méi)有自主權(quán),作為解決者,會(huì)擁有稍多的自主權(quán),作為發(fā)現(xiàn)者惶楼,你擁有非常多的自主權(quán):你被賦予一些模糊的目標(biāo)和約束滑凉,由你自己來(lái)決定做什么坡慌。這會(huì)帶來(lái)很多樂(lè)趣。
除此之外,還有一個(gè)好處:從 Implementer 到 Solver 再到 Finder,你將變得更有生產(chǎn)力堪澎,因?yàn)槟闼龅牟槐匾墓ぷ髯兊酶佟?/strong>
- 如果你只是在執(zhí)行別人指定的解決方案,可能會(huì)陷入低效的工作味滞。
- 如果你只看到問(wèn)題的表面就提出一個(gè)解決方案樱蛤,那最終解決的可能不是真正的問(wèn)題。
你越擅長(zhǎng)診斷和發(fā)現(xiàn)潛在的問(wèn)題剑鞍,提出解決方案昨凡,并與他人一起工作,你就越少做不必要的工作蚁署,你就會(huì)更有效率土匀。
利用你的生產(chǎn)力
如果你是一個(gè)發(fā)現(xiàn)者,你的工作效率就會(huì)大大提高形用,這會(huì)讓你成為一個(gè)更有價(jià)值的員工。擅長(zhǎng)挖掘高價(jià)值問(wèn)題的人能發(fā)現(xiàn)那些無(wú)人知曉的障礙证杭,發(fā)現(xiàn)客戶真正想要的東西田度,你會(huì)成為他們中的一員。
這意味著你有更多的談判優(yōu)勢(shì):
- 協(xié)商加薪更容易成功解愤。
- 可以找到更好的工作镇饺,即使這個(gè)工作涉及到你不了解的技術(shù)。
- 甚至可以申請(qǐng)為期三天的周末送讲。
因此奸笤,如果你想在繼續(xù)編程的同時(shí)事業(yè)上也取得進(jìn)步,就從現(xiàn)在開(kāi)始去尋找問(wèn)題吧哼鬓。一旦專門(mén)去注意這件事情监右,你會(huì)發(fā)現(xiàn)問(wèn)題無(wú)處不在。
原文鏈接:The next career step for Senior Software Engineers (that isn’t management)
推薦閱讀:AI 的下一個(gè)重大挑戰(zhàn):理解語(yǔ)言的細(xì)微差別