原文鏈接:Seniority
人們使用不同的方式來定義工程師的水平颤陶,有些公司粗暴的通過工作經(jīng)驗來判斷是否資深臀栈,但是什么樣的工程師才能算資深老司機?下文將列出我的判斷依據(jù)玫锋。
API 不是重點
如果你認(rèn)為老司機就是 API 記得熟蛾茉,你就錯了。
確實如果對相關(guān) API 比較熟練開發(fā)的時候你會比較快撩鹿,但是熟知一些特定的 API 并不是核心技能谦炬,因為只要有足夠的時間任何開發(fā)者都遲早會對 API 熟練。
不同的公司對于職稱的評定區(qū)別巨大三痰,有的就是單純的根據(jù)工作年限吧寺,也有更不靠譜的就看你在管理的時候和其他同事的關(guān)系處的怎么樣。
重要的不是你現(xiàn)在是什么職位散劫,在于你在團隊中怎么表現(xiàn)稚机。
技術(shù)能力通常會隨著工作經(jīng)驗逐漸變強。我更想聚焦被很多人忽略的東西:軟技能(soft kills)获搏。我把軟技能分成個人品質(zhì)和團隊協(xié)作兩塊來看赖条。
個人品質(zhì)
可靠
一定要可靠失乾,信守承諾,答應(yīng)的事能夠完成纬乍,不要失誤碱茁。
很多時候他人的工作依賴于你的進度,因此要評估一個準(zhǔn)確安全的 deadline仿贬,不要承諾的太美好最后又無法按時交付纽竣。
在提前完成了工作后,總會有一些其他的任務(wù)可以主動的找出來做茧泪。老司機不會在完成工作后被動的等待別人給他分配工作蜓氨,會主動的找打到一些事情做。
敢于承擔(dān)
只有什么都不做的人才不會犯錯誤队伟。
犯錯或者進度受阻都是很正常的事穴吹。經(jīng)驗豐富的人會知道什么時候應(yīng)該讓其他人知道遇到困難,并且不會害怕需求幫助支持嗜侮。
不要害怕承認(rèn)你的錯誤港令,是人都會犯錯,公開承認(rèn)會讓其他人更加信任你锈颗。
擁抱變化
不要局限在特定框架或者語言上顷霹。有一件事是確定的:無論你是否愿意,你的職業(yè)生涯里使用的框架會改變很多次击吱。早期職業(yè)生涯里我使用的語言很多現(xiàn)在都沒人用了泼返。
應(yīng)該要擁抱變化,強迫自己挑戰(zhàn)原有的假設(shè)姨拥,這樣會讓你少忽視其他的技術(shù)流派∏耄總是有其他可能存在叫乌。
我會經(jīng)常做業(yè)余項目,并且我有一條規(guī)則:每半年都要嘗試不同的方式實現(xiàn)徽缚。
這樣會讓我可以分辨哪個才是最好的解決方案憨奸。稟賦效應(yīng)(Endowment bias)描述的就是當(dāng)你擁有一個東西的時候,對它的價值評估會超過真實的價值(php 是最好的語言)凿试。
需要注意的是改變是有難度的也需要時間排宰。嘗試一段時間后堅持下去不要放棄。
實用主義
很多程序員只關(guān)注軟件工程的問題那婉,追求高代碼質(zhì)量板甘,然而忽略了軟件的商業(yè)意義。好的代碼并不是我們工作的真正目標(biāo)详炬。老板雇傭我們是為了他們業(yè)務(wù)解決遇到的特定問題盐类,也許是一個 APP 或者其他什么軟件,不是為了讓你寫出優(yōu)美的代碼。交付好的產(chǎn)品才是最重要的在跳。
你需要投入時間去理解業(yè)務(wù)需求枪萄,只有了解了需求后才能做出適合的選擇,聚焦在真正重要的部分猫妙。
團隊協(xié)作
憑借一己之力開發(fā)出一個軟件產(chǎn)品是很少見的瓷翻,大部分時間我們都需要和其他成員一起協(xié)作「钭梗花時間學(xué)習(xí)如何融入一個團隊齐帚,這會讓你的職業(yè)生涯產(chǎn)生巨大的飛躍。
以身作則
如果你:
- 空閑時主動去解決遺留問題
- 總是嘗試改善架構(gòu)和工具鏈
- 指導(dǎo)他人韭脊,自愿去做結(jié)對編程或者幫助他人解決問題
- 給出空間讓每個人表達他們的觀點并且進行討論
- 公平對待每個參與者
你的同事就會越來越尊敬你童谒,同時你也會對團隊文化產(chǎn)生影響。
其他成員也會受你的這些行為影響沪羔,你的團隊也會變的更有活力饥伊。
聽取他人意見
在工程里,要達到一個目的可以有很多種方式蔫饰。太容易就按部就班的就用我們習(xí)慣熟知的方式琅豆。我們需要鍛煉我們的靈活性。要樂于聽取其他意見篓吁,不要僅僅因為與你所習(xí)慣的方式不同就無視了其他人的觀點茫因。
花時間與他人討論他們的意見,更好的了解他們的方式和方案怎么工作杖剪,所有的好處和壞處等冻押。直到你可以確定哪個方案是更好的為止。
這些方案是否是一個比你資深的工程師提出的并不重要盛嘿。我從團隊里的新手工程師也學(xué)到了不少東西洛巢,他們經(jīng)常會有新穎的想法并且挑戰(zhàn)原有的假設(shè)。這里也順帶提出我另外一個重要的觀點:不要利用你是‘老人’的權(quán)力次兆。
永遠不要認(rèn)為他人“低級”稿茉。不要說出諸如“我們就這么干因為你要聽我的”,“我已經(jīng)干了多少年了就這么干”這樣的話芥炭。這樣的行為會讓人覺得這個工程師幼稚就像一個小孩漓库,一點都不專業(yè)。不要這么做园蝠。
- 用事實證明渺蒿。如果找不到理由支撐你的觀點,可能你的觀點就不是最好的
- 不要過激砰琢,討論過程中或許有沖突蘸嘶,但是老司機知道批評一件事并不是批評一個人良瞧,對事不對人
- 在回復(fù)前思考清楚,不要打斷其他人训唱。讓他們處理完手頭的工作再和他們進行討論
學(xué)習(xí)如何控制你的沖動和情緒對于你和其他人融洽相處是非常重要的褥蚯。
學(xué)習(xí)進行時間管理可以讓你保持明智。
可以看下我之前的文章:推薦幾本我認(rèn)為必讀的書况增。
成為其他開發(fā)者的導(dǎo)師
指導(dǎo)其他開發(fā)者是非常有益的一件事赞庶,同時也可以培養(yǎng)正確的團隊文化。
我希望團隊里所有成員都可以對我放心的提問澳骤。也許是某個工作應(yīng)該怎么做或者質(zhì)疑我的決定歧强。
我看到一些團隊里的成員害怕提問,因為“經(jīng)理看起來很可怕”为肮,并且把尋求幫助當(dāng)做員工能力的考核之一摊册。
應(yīng)當(dāng)鼓勵成員遇到困難尋求幫助或者遇到困難時尋求建議。
如果你想要成為一個神奇的10倍工程師(10x engineer)颊艳,幫助團隊里的其他工程師成長茅特。記住:沒有愚蠢的問題棋枕,如果有人對你的代碼有問題通常意味著你的代碼不夠簡單或者有改進的空間白修。
積極尋求方式改進現(xiàn)有方案
沒有一個方案是完美的。你應(yīng)該總是思考如何改進重斑。
如果你批評某件事兵睛,你應(yīng)該總是提出一個改進的方案。
如果你在寫代碼時發(fā)現(xiàn)一個痛點窥浪,或者觀察到你的同事有痛點祖很,思考如何解決它。
如果一件事情重復(fù)發(fā)生了兩次別急于開始寫一個庫或者工具來解決它漾脂。如果真這個問題真的存在突琳,它一定會在不同的人身上重復(fù)出現(xiàn)多次,這個時候再開始著手解決改進它符相。
iOS 社區(qū)是我見過最好的社區(qū)之一。我會鼓勵你去開源這些工具或者庫蠢琳,并且分享你解決問題的經(jīng)驗給他人啊终。把一些東西寫下來你會發(fā)現(xiàn)你還有很多不足。
可以通過訂閱社區(qū)的新聞來獲取 idea傲须,比如訂閱 iOS Dev Weekly 和 Swift News蓝牲。
拒絕不健康的團隊文化
這點我怎么強調(diào)也不過分,我看過很多人吐槽他們團隊文化好幾年泰讽,我的問題總是“那你做了些什么例衍?”昔期。
對于不健康的團隊文化你應(yīng)該勇敢的抗?fàn)帲绻憧吹侥橙说男袨椴粚Σ灰ε绿岢鰜矸鹦L岢鼋ㄗh就像平常的交流和代碼的管理一樣硼一。
我對這件事的觀點很簡單:
如果我看見某些我不喜歡的事,我會在團隊里提出來梦抢。否則團隊會變得越來越糟般贼,如果這樣我就走人
既然你反正最后都會走读拆,那為什么害怕提出來并且抗?fàn)帲?/p>
很多人會害怕講出來栓袖,尤其是少數(shù)派(黑人?)或者內(nèi)向型的人咆爽。通常這樣的人連謝謝都是私下過來對你說霞赫。
場景應(yīng)該是這樣的:
- 每個人都是平等的腮介,確保每個人都可以自由表達他的觀點,即使這些人很害羞
- 當(dāng)一個人被意外打斷的時候端衰,保證他的觀點可以繼續(xù)說完叠洗,比如“老王,你接著剛才的話繼續(xù)說”
總結(jié)
成為一個好的開發(fā)者和團隊成員比學(xué)習(xí)編程需要了解更多靴迫。你的技術(shù)水平會隨著工作經(jīng)驗的增加而提高惕味,然而如果你不注意投入時間提高你的軟技能,最后就會成為你職業(yè)生涯里的瓶頸玉锌,你甚至都沒有意識到這點名挥。
歡迎關(guān)注我的微博:@沒故事的卓同學(xué)