我眼中的工程师的十个特质
不想當(dāng)將軍的士兵不是好士兵,沒有好習(xí)慣的工程師無(wú)法持續(xù)進(jìn)步,今天我給大家整理在過(guò)去7年的工作經(jīng)歷中,遇到的優(yōu)秀工程師中,他們難以被模仿且又寶貴的特點(diǎn)。
1.極強(qiáng)的執(zhí)行力
新人工程師加入一家公司,剛開始主要的工作可能是修復(fù)軟件缺陷或者整理一些文檔,這時(shí)候在工作上新人既是戰(zhàn)友又是競(jìng)爭(zhēng)關(guān)系,一些有挑戰(zhàn)或者激發(fā)創(chuàng)造力的工作機(jī)會(huì)一旦出現(xiàn),在項(xiàng)目組中,往往市場(chǎng)經(jīng)理,測(cè)試開發(fā)工程師和技術(shù)經(jīng)理更傾向于給執(zhí)行力強(qiáng)的新人,因?yàn)?#xff1a;
?對(duì)于市場(chǎng)經(jīng)理,執(zhí)行力強(qiáng)的開發(fā)人員能更快交付產(chǎn)品,完成客戶簽約?對(duì)于測(cè)試開發(fā)工程師,執(zhí)行力強(qiáng)的開發(fā)人員能更快修復(fù)問(wèn)題?對(duì)于技術(shù)經(jīng)理,執(zhí)行力強(qiáng)的開發(fā)人員能更快解決問(wèn)題,留下應(yīng)對(duì)風(fēng)險(xiǎn)的時(shí)間,而且發(fā)現(xiàn)問(wèn)題,立刻解決問(wèn)題 執(zhí)行力強(qiáng),給大家會(huì)很快留下好的印象,例如充滿活力,積極響應(yīng)。
2.每天學(xué)習(xí)
?如同每天刷微信朋友圈,每天都需要分配固定的學(xué)習(xí)時(shí)間?不恥下問(wèn)(“指天資聰明而又好學(xué)的人,不以向地位比自己低、學(xué)識(shí)比自己差的人請(qǐng)教為恥”。) 軟件開發(fā)和建筑設(shè)計(jì)有很大的區(qū)別,建造完成一個(gè)房子后,除非房子有嚴(yán)重的缺陷,基本不會(huì)推倒重來(lái),而軟件開發(fā)卻很不一樣,軟件是不斷擁抱變化的,所以對(duì)于開發(fā)者而言,隨著新技術(shù),新業(yè)務(wù)的發(fā)展,都會(huì)要求開發(fā)者不斷去學(xué)習(xí)新技術(shù),例如機(jī)器語(yǔ)言-》匯編語(yǔ)言-》高級(jí)語(yǔ)言-》機(jī)器學(xué)習(xí),靜態(tài)頁(yè)面-》富交互頁(yè)面-》SPA/移動(dòng)開發(fā)-》小程序。如果開發(fā)者樹立一個(gè)在30歲前,要學(xué)完或者學(xué)好所有開發(fā)技術(shù),這本身就是一個(gè)不可能實(shí)現(xiàn)的目標(biāo),軟件開發(fā)就是終身學(xué)習(xí)的過(guò)程。對(duì)于當(dāng)前領(lǐng)域的技術(shù),例如前端開發(fā),要了解其發(fā)展的歷史,了解基本原理,例如瀏覽器引擎,開發(fā)套件,分工模式,對(duì)于前端未來(lái)的發(fā)展方向,例如ServerLEss,IOT,可視化應(yīng)用開發(fā)等等。在一個(gè)商業(yè)產(chǎn)品的研發(fā)團(tuán)隊(duì)中,即使你是一個(gè)資深的工程師,也可以常常請(qǐng)教團(tuán)隊(duì)年輕的工程師,他們又不一樣的思維,對(duì)于業(yè)務(wù)也有自己深刻的理解,對(duì)于技術(shù)領(lǐng)域的真正大師,要敢于提問(wèn),也要學(xué)會(huì)提問(wèn)。而且要學(xué)會(huì)讀書,讀書就是站在巨人們的肩膀上看世界
3. 相信技術(shù)
我經(jīng)常會(huì)想起大學(xué)Java開發(fā)的老師說(shuō)過(guò)一句話,"解決問(wèn)題方法的數(shù)量一定比問(wèn)題多",開發(fā)者無(wú)論是擅長(zhǎng)溝通的人或者內(nèi)斂的人,其實(shí)大家碰到棘手的問(wèn)題,內(nèi)心都會(huì)有點(diǎn)愁,尤其碰到自己毫不了解的領(lǐng)域,更是有點(diǎn)抓瞎,其實(shí)相比20年前的互聯(lián)網(wǎng),大家都是特別幸福的,我們有這么多解決問(wèn)題的渠道:
?更大的研發(fā)團(tuán)隊(duì)?Stack Overflow、Google、Github?業(yè)務(wù)牛人的咨詢?技術(shù)外包團(tuán)隊(duì)?開源項(xiàng)目研究?付費(fèi)的商業(yè)定制方案?書籍,論文 一定有一個(gè)方式可以當(dāng)前的業(yè)務(wù)的規(guī)模的問(wèn)題 大家在研發(fā)過(guò)程中的快樂(lè)不能僅僅通過(guò)平庸的工作,一定要通過(guò)戰(zhàn)勝一個(gè)個(gè)挑戰(zhàn),平凡人,做不平凡的事情
4. 懶惰DRY
DRY 只“Don't repeat yourself”,不要做重復(fù)的事情,有這樣一個(gè)理論,我們的工作中 80%的價(jià)值來(lái)源于 20%的工作時(shí)間,那 80%的工作時(shí)間怎么開心舒服度過(guò)呢,軟件開發(fā)者就需要學(xué)會(huì)做一個(gè)懶人,例如:
?我是一個(gè)運(yùn)維,我需要經(jīng)常登錄很多虛擬機(jī),為了每次都重復(fù)輸入快速登錄的腳本,我可以使用SecurityCRT或者ssh這樣工具或登錄方式?我是一個(gè)UE,我可以將常用的UI組件抽象成Sketch套件,減少業(yè)務(wù)涉及的重復(fù)設(shè)計(jì)?我是一個(gè)架構(gòu)師,我可以封裝一套項(xiàng)目腳手架,例如vue-cli或者SpringMVC?我是一個(gè)開發(fā)者,我可以將我的VSCODE配置或者mac程序安裝都封裝成標(biāo)準(zhǔn)的shell腳本
我們可以使用工具把重復(fù)的事情,流程化,自動(dòng)化,簡(jiǎn)化,利用我們的創(chuàng)造力,把復(fù)雜的事情都隱藏起來(lái),留下一句話就能說(shuō)明白的內(nèi)容,留下一行指令就能搞定的事情
5. 做工程師而不是搬磚師
工作中,假如開發(fā)者要求進(jìn)行某個(gè)接口的開發(fā)任務(wù),例如小明開發(fā)一個(gè)接口,用于獲取BI所有的報(bào)表,如果小明初入職場(chǎng),他的工作主要有三個(gè):1. 開發(fā)接口 2. 告訴前端調(diào)用者接口怎么用 3. 配合提測(cè),這也只是做完基本的事情,如果要想做好,就得多問(wèn)一些內(nèi)容。
?這個(gè)接口是在哪個(gè)版本上線??是否需要灰度??涉及哪些端的調(diào)用??接口無(wú)權(quán)限或者錯(cuò)誤情況下如果區(qū)分??接口文檔定義在哪能夠使新開發(fā)者也理解??提測(cè)的流程和規(guī)范是什么??。。。。開發(fā)者也許會(huì)說(shuō),不就是開發(fā)個(gè)接口,怎么還這么多事,這就是做好和做完的區(qū)別,做完只能代表你是個(gè)搬磚師,有基本的技能而已,但是做好,代表你有思考,你每次都會(huì)審視自己的工作,規(guī)避產(chǎn)品上線后的風(fēng)險(xiǎn),完善團(tuán)隊(duì)的開發(fā)方式,這樣子,你才是正式開始自己的工程師之路。
6.極客精神
Google有這樣的工作規(guī)則,開發(fā)者每周可以有20%的時(shí)間用于做一些有創(chuàng)造力的事情,幫助產(chǎn)品的增長(zhǎng),據(jù)我所知,硅谷很多公司有這樣的Hackson Day。例如紛享的前端開發(fā)工具 Alpha
7.重視技術(shù)原理和業(yè)務(wù)
在未來(lái)的賽跑中,重視技術(shù)原理和業(yè)務(wù)的人才,一定是稀缺的。
1.為什么雅虎的設(shè)計(jì)原理?這與瀏覽器的渲染引擎,http原理有關(guān)2.為什么Nodejs能做到高性能?尤其是非阻塞的模型。3.靜態(tài)資源緩存的原理?http的請(qǐng)求頭信息有關(guān)4.小程序的原理?多層渲染引擎,Worker有關(guān)5.如果提高算法性能?1. 優(yōu)化算法細(xì)節(jié) 2. 空間換時(shí)間6.JavaScript的執(zhí)行流程?詞法定義和語(yǔ)法定義 -》詞法分析-》語(yǔ)法分析-》解釋執(zhí)行7.JSAPI的原理?native bridge和js通信 很多時(shí)候,工程師確實(shí)主要參與業(yè)務(wù)開發(fā),不需要了解原理,但是技術(shù)的基本原理在做技術(shù)選型,技術(shù)改進(jìn)的過(guò)程中,就尤為重要,投入時(shí)間研究,結(jié)合自己的工作,就會(huì)有種突然發(fā)現(xiàn)桃花源的感覺。而對(duì)于業(yè)務(wù)而言,技術(shù)服務(wù)于業(yè)務(wù),業(yè)務(wù)也可以成就技術(shù)。
8. 樂(lè)于分享
開發(fā)者將自己的學(xué)習(xí)方式,業(yè)務(wù)認(rèn)知,技術(shù)理解,填坑挖坑經(jīng)歷共享出來(lái),對(duì)于開發(fā)者而言,不斷提煉自己的知識(shí)精華,鍛煉寫作的能力,對(duì)于被分享者,可以擴(kuò)展眼界,豐富自己的“人生詞典”。開發(fā)的分享方式:
?技術(shù)博客?技術(shù)社區(qū)?制作專題課程?開源框架,例如vuejs?知識(shí)匯總awsomexxx?翻譯計(jì)劃?業(yè)務(wù)團(tuán)隊(duì)內(nèi)的演講,分享?業(yè)務(wù)團(tuán)隊(duì)的WIKI
9. 謙虛:成就自己,成就他人
凡事謙虛,能讓自己走得順走得遠(yuǎn),贏得好的口碑,在團(tuán)隊(duì)之中,也是互相成就,贏得大家的支持,能做更大更難的挑戰(zhàn)
10. 保持健康
軟件開發(fā)無(wú)論是996,還是007,無(wú)論哪種工作方式,大家都需要一個(gè)健康的體魄,積極的身體狀態(tài),大家知道陸奇,扎克伯克很多知名的互聯(lián)網(wǎng)人,之所以能夠投入很多精力,一定是有好的體魄,要不然怎么能夠續(xù)航呢?例如都會(huì)每天跑步5公里,每年參加各種形式的健身
附錄:
《前端之未來(lái)》 https://www.yuque.com/zenany/up/the_future_frontend?from=groupmessage&isappinstalled=0
《重學(xué)前端》 https://time.geekbang.org/column/article/88538
總結(jié)
以上是生活随笔為你收集整理的我眼中的工程师的十个特质的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 下一代存储技术面临市场窗口期?
- 下一篇: AE粒子跟随手势特效