許多程序員自稱碼農(nóng),因?yàn)槊刻焓虑榭傄沧霾煌?,而這些工作也沒有給自己帶來職業(yè)上的提升,總在原地打轉(zhuǎn),自己的工作似乎隨時可被新人替換,可有可無。于是,年輕些的考慮著轉(zhuǎn)管理或者轉(zhuǎn)行,年紀(jì)大些的則被所謂的40歲危機(jī)困擾焦慮著。另一方面,有些程序員工作高效,能力出眾,每當(dāng)機(jī)會來臨時總能獲得職位上升,收入迅速的提高,個人價值的提升又從精神上給自己帶來滿足感,常常斗志昂揚(yáng),而這樣能解決復(fù)雜問題的程序員才叫工程師。本文中筆者將根據(jù)自己10多年從業(yè)經(jīng)歷談?wù)勅绾螐拇a農(nóng)升級到工程師。
事實(shí)上,互聯(lián)網(wǎng)行業(yè)的項(xiàng)目需求從來不是靜態(tài)的,項(xiàng)目是動態(tài)的、永遠(yuǎn)在不停迭代,所以即使你能力再好效率再高,也不可能讓你處在空檔期,所以,相比其他行業(yè)程序員們總是很容易處于忙忙碌碌的狀態(tài)中。另一方面,項(xiàng)目里哪怕沒有新功能了程序員自身也有很大的欲望去優(yōu)化、重構(gòu)代碼,還是忙忙碌碌。
但是,到底客戶的問題、行業(yè)的痛點(diǎn)有沒有真正解決?
項(xiàng)目給公司帶來多少收益?
我手頭的工作對公司下一步的發(fā)展有何意義?
這些通常不在程序員們的思考范圍:這與我何干?
我是專業(yè)寫代碼的,這些應(yīng)該由老板、產(chǎn)品經(jīng)理、運(yùn)營、銷售、其他業(yè)務(wù)部門去考慮,我只需要精益求精把代碼寫好寫穩(wěn)定就可以了,我預(yù)留了許多擴(kuò)展接口,到時公司需要的話去擴(kuò)展模塊就行了,我何必要知道與我工作無關(guān)的事?這個想法其實(shí)是讓許多程序員始終停留在碼農(nóng)階段,與那些卓越的工程師同等辛苦,但待遇層次總是相差甚遠(yuǎn)的罪魁禍?zhǔn)住?/p>
吳軍老師在《見識》一書中把工程師定義為5個等級,相鄰的等級間會有10倍的差距,而第五級工程師以下其實(shí)就是碼農(nóng)。
實(shí)際上,能夠到達(dá)第五級,就已經(jīng)從碼農(nóng)提升為工程師了。比如,現(xiàn)在有一個任務(wù)需要實(shí)現(xiàn)一個功能子系統(tǒng),一個第五級工程師能夠與產(chǎn)品經(jīng)理深入挖掘需求及其到底是否解決了問題,能夠用算法建模解決現(xiàn)實(shí)中的問題,能夠獨(dú)立跨部門溝通獲取所需的資源及協(xié)調(diào)其他工程師的幫助,能夠正確的使用各種開源組件保質(zhì)保量不重復(fù)造輪子,能夠解決開發(fā)過程中出現(xiàn)的各種坑,按時交付出高質(zhì)量的產(chǎn)品,這才是一個合格的第五級工程師了。
碼農(nóng)離第五級工程師到底有多遠(yuǎn)呢?大家可以觀察下身周,碼農(nóng)往往溝通技巧欠缺,不愿深入理解需求的意義,不愿深入研究某個技術(shù)或者框架的意義,或者只是深入研究某些語法糖卻不考慮維護(hù)代價,喜歡造輪子,只要接手別人的工作先不愿精讀代碼而是想著按自己最熟悉的方式重構(gòu),做到一半時各種困難下開始退縮求助,于是交付時不斷的延期再延期。。。
成為一個合格的第五級工程師,需要哪些條件呢
1、要有欲望成為高階工程師!
無欲則剛,如果內(nèi)心就不大想成為一個高級工程師,那么肯定不愿付出更多的努力,肯定不會主動的加班,也不會在不加班的時候腦袋里還在想著問題和項(xiàng)目上的事,而加班或者正常上班時敷衍的時間比例很高。從低一級邁向高一級時,若不愿意付出比同級人更多的努力,又談何升級呢?在任何領(lǐng)域,努力一定是成功的必要條件。
2、懂得做減法的學(xué)問
事務(wù)性的工作總是非常多的,同時也會接到很多需求功能以及測試提交的bug,還有興趣愛好呢?!很多想看的演唱會、連續(xù)劇、電影等著你,還有許多朋友聚會應(yīng)酬要參加,還有朋友圈要刷刷,微博大V們的文章要讀讀,股票要炒炒,理財要學(xué)學(xué),游戲要玩玩,所以,忙忙碌碌里職業(yè)技能沒有得到一點(diǎn)增長。
或者你效率奇高,但你要做的事太多了,效率不等于效能,效能是指完成的事情*事情的意義。事情要做到100%完成,而且必須是重要的事。既然你想成為高階工程師,那么請把不重要的事從你一天的計(jì)劃中移除吧。就像上圖中吳軍老師所說的,每升級到下一級,你的收入都將呈現(xiàn)10倍上漲的趨勢,這收益遠(yuǎn)遠(yuǎn)大于你去做自己并不擅長的炒股所獲取的收益(長期來看)。而所謂的應(yīng)酬、各類資訊、個人愛好,并不是只要清楚的認(rèn)識到自己想要什么就能夠正確的做減法,這需要你的認(rèn)知升級。
而在Leader分配下來的任務(wù)里,也需要你準(zhǔn)確的判斷出優(yōu)先級,一定要先把最重要的事百分百的完成。這需要你與leader間密切溝通,因?yàn)榧夹g(shù)管理者所掌握的信息量遠(yuǎn)大于你,而且信息在時刻變化著,他那里的信息及時度也超過你,唯有從你的上級那里才能快速的了解到工作的優(yōu)先級。這也需要與產(chǎn)品經(jīng)理、上下游部門間密切溝通,這樣你才能準(zhǔn)確的了解到你的工作對別人的意義,這也有助于你判斷優(yōu)先級,總之,做減法是一門學(xué)問。
3、有效的做到10000小時定律
一萬小時定律是作家格拉德威爾在《異類》一書中指出的定律?!叭藗冄壑械奶觳胖宰吭椒欠?,并非天資超人一等,而是付出了持續(xù)不斷的努力。1萬小時的錘煉是任何人從平凡變成世界級大師的必要條件。”他將此稱為“一萬小時定律”。要成為某個領(lǐng)域的專家,需要10000小時,按比例計(jì)算就是:如果每天工作八個小時,一周工作五天,那么成為一個領(lǐng)域的專家至少需要五年。這就是一萬小時定律。
顯然,并不是任何人在一個領(lǐng)域工作五年就能成為大師的。有效的做到這一萬小時的關(guān)鍵是,這一次的努力請最大程度的復(fù)用上一次努力的結(jié)果!例如當(dāng)下許多互聯(lián)網(wǎng)從業(yè)者一年就跳槽一次,先不談是不是應(yīng)該跳槽(如果只是想通過跳槽漲薪,而不是原公司沒有新的位置帶給自己職業(yè)發(fā)展,那就有問題了),首先你能感覺到跳槽之后是在最大程度的復(fù)用上一家公司里自己的努力嗎?如果一切是在從頭開始,包括新的開發(fā)工具、新的技術(shù)棧、新的業(yè)務(wù)場景、新的產(chǎn)業(yè)鏈、新的合作關(guān)系、新的同事圈子等,那么很顯然十萬小時也不夠成為專家的。
或者從另一個角度,有些人經(jīng)常換工具、框架、編程語言,如果你能夠在學(xué)新技術(shù)時,始終感覺到與自己熟悉的技術(shù)一一對應(yīng),基于此能夠輕易的舉一反三,那么這就是在高效的復(fù)用上一次的努力。反之,或者你上一個技術(shù)還學(xué)得不到家,換了新技術(shù)后很難敏感的發(fā)現(xiàn)共通性,這就很糟糕。
4、抓住關(guān)鍵節(jié)點(diǎn)
當(dāng)我們手頭有許多小功能,或者與許多團(tuán)隊(duì)有交互時,往往經(jīng)常被開會、被溝通,事情也又雜又多。此時,務(wù)必把手頭上的事在分好優(yōu)先級的基礎(chǔ)上,確認(rèn)每件工作的幾個關(guān)鍵節(jié)點(diǎn):完成時間點(diǎn),中期交付或者需要他人交付產(chǎn)品、文檔給你的時間點(diǎn),需要協(xié)調(diào)其他人啟動的時間點(diǎn)等等。抓住了這些時間點(diǎn),往往一頭亂麻的事就自然理清了。當(dāng)我們的時間非常碎片化時,一定要盡力抽出大塊整塊的時間,這能讓我們有時間思考,而且減少了任務(wù)切換的成本,而這依賴于很好的抓住關(guān)鍵節(jié)點(diǎn)。
5、常識的重要性
一個有志向的農(nóng)民和一個航空航天專業(yè)的畢業(yè)生都在做飛機(jī),其最大的不同在于常識。對于不同的程序員來說,常識并不相同。我有一些同事本不是計(jì)算機(jī)專業(yè),有些還是先做了幾年其他行業(yè)再轉(zhuǎn)過來做前端程序員。這樣,如算法復(fù)雜度、網(wǎng)絡(luò)模型等計(jì)算機(jī)科學(xué)體系里的基礎(chǔ)知識對于他們就不再是常識,而常識通常是將事情做到50%程度的關(guān)鍵。常識的缺失會導(dǎo)致與同級程序員相比做事情事倍功半,這從長期來看一定會讓你早早的觸及職業(yè)天花板,而補(bǔ)足常識的缺失相較起來還是比較容易的(畢竟這本不是什么尖端知識),但許多人長年不愿在此下功夫。
6、有后勁兒
有些人工作年限越久,競爭力越強(qiáng),職業(yè)上升空間很大,反例其實(shí)更多,而這種有無“后勁”在我看來其實(shí)關(guān)鍵在于有沒有科學(xué)的職場做事方法。比如習(xí)慣做乙方的外包程序員,轉(zhuǎn)到甲方開始做產(chǎn)品時,還是習(xí)慣于把產(chǎn)品當(dāng)成別人家的孩子,缺乏一種主人翁的精神,而在任何公司做任何產(chǎn)品,如果沒有一種把自己的產(chǎn)品當(dāng)孩子的感覺,就很容易向其他人表現(xiàn)出喜歡推諉、不肯擔(dān)責(zé)任的特點(diǎn),而缺乏主動精神往往導(dǎo)致項(xiàng)目前期準(zhǔn)備工作不足,后期疲于奔命。沒有主人翁精神,往往對整個研發(fā)鏈條自己這塊以外的部分不愿意了解,這樣沒有辦法管理好你的上游和下游,最終導(dǎo)致自己的工作困難重重,難出成績。
對自己的產(chǎn)品有主人翁精神,會讓自己保有一種使命感,進(jìn)而相對更敬業(yè)、更有激情,而這對團(tuán)隊(duì)是有正向激勵作用的。而且,有這種精神后,往往會想辦法把工作流程標(biāo)準(zhǔn)化,把知識分享給團(tuán)隊(duì)同事以提升團(tuán)隊(duì)的作戰(zhàn)能力,進(jìn)而讓產(chǎn)品更優(yōu)秀。自己的工作有一點(diǎn)提升,與同時帶動其他同事有一點(diǎn)提升,這是有量級差別的。當(dāng)有晉升機(jī)會時,主管們自然更偏愛把機(jī)會給這樣的同事。
結(jié)語:職業(yè)發(fā)展的天花板在哪?許多人說是需要認(rèn)知升級,但這太抽象了。在我看來,能做到以上6點(diǎn),從碼農(nóng)上升為優(yōu)秀的工程師(在所有互聯(lián)網(wǎng)公司都極受歡迎)并不在話下。
-
工程師
+關(guān)注
關(guān)注
59文章
1565瀏覽量
68411
發(fā)布評論請先 登錄
相關(guān)推薦
評論