0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何成為更優(yōu)秀的工程師?

5RJg_mcuworld ? 來(lái)源:未知 ? 作者:易水寒 ? 2018-10-28 09:51 ? 次閱讀

來(lái)自Heap(一家主要為企業(yè)提供用戶數(shù)據(jù)分析架構(gòu)的企業(yè))早期員工Michael Malis,就如何成為一名更加優(yōu)秀的工程師給出了自己的日常訓(xùn)練方式:

讀論文;

學(xué)習(xí)一種新的工具;

讀書(shū);

錄屏。

其中第四點(diǎn)比較有趣,大家感興趣可以直接跳到第四部分,看看他是如何具體實(shí)施的。以下為正文。

我的成為更好的工程師的方法是建立一套訓(xùn)練體系。這套體系里有一些固定的練習(xí),我每周都會(huì)進(jìn)行。設(shè)計(jì)這套訓(xùn)練體系有兩個(gè)非常明確的目標(biāo):

學(xué)習(xí)解決之前不會(huì)解決的問(wèn)題;

學(xué)習(xí)如何更快更好的寫(xiě)程序。

訓(xùn)練計(jì)劃主要是由四個(gè)練習(xí)組成的,每一個(gè)都會(huì)幫助我向上面的兩個(gè)目標(biāo)前進(jìn)。這四個(gè)練習(xí)是:

讀論文;

學(xué)習(xí)新工具;

讀書(shū);

寫(xiě)程序的時(shí)候錄屏。然后回顧一下,看看能不能寫(xiě)得更快。

下面我會(huì)詳細(xì)地介紹一下我是怎么做的。我想分享一些練習(xí)的細(xì)節(jié),還有我從中獲得的收益。

讀論文

這項(xiàng)練習(xí)的目標(biāo)是拓展CS相關(guān)的知識(shí)。在這之中我發(fā)現(xiàn)有兩方面直接收益。第一是一些論文可以改變我對(duì)一些固定問(wèn)題的思考模式。舉個(gè)栗子,The Tail at Scale這篇論文驗(yàn)證了反直覺(jué)的長(zhǎng)尾延遲的本質(zhì)。

其中我認(rèn)為比較有趣的是關(guān)于在大量機(jī)器上運(yùn)行一個(gè)請(qǐng)求是怎樣影響延時(shí)的問(wèn)題。作者研究了Google一項(xiàng)服務(wù)的實(shí)驗(yàn)數(shù)據(jù)。這項(xiàng)服務(wù)將請(qǐng)求拆分,然后分發(fā)給不同的服務(wù)。

他們用數(shù)據(jù)評(píng)估了一下,將請(qǐng)求分發(fā)給100個(gè)服務(wù)的情況。作者發(fā)現(xiàn),如果你測(cè)量從100項(xiàng)服務(wù)獲得回復(fù)的時(shí)間,一半以上的時(shí)間花費(fèi)在等待最后五項(xiàng)服務(wù)的回復(fù)上。

這是因?yàn)樽盥?%的請(qǐng)求要比其他請(qǐng)求慢非常多。論文也給出了一些方法來(lái)降低長(zhǎng)尾延遲。我發(fā)現(xiàn)這些方法,在我這邊的一些工作上也可以用。

第二個(gè)好處是我發(fā)現(xiàn)讀論文可以讓我融會(huì)貫通不同系統(tǒng)的知識(shí)。舉個(gè)栗子,Google的分布式數(shù)據(jù)庫(kù)Spanner。

Spanner用了很多不同的技術(shù),比如Paxos、two phase commit、MVCC和predicted locks。通過(guò)閱讀相關(guān)論文,我就能建立對(duì)于這些不同的技術(shù)的理解。這可以讓我以一個(gè)整體來(lái)理解Spanner,并且和其他系統(tǒng)比較Spanner的利弊。

我讀的論文主要來(lái)自于以前讀過(guò)的論文的參考文獻(xiàn)或者M(jìn)orning Paper的封面文章。Designing Data Intensive Applications這本書(shū)的參考文獻(xiàn)里也有很多值得一讀的論文。

學(xué)習(xí)新工具

解決問(wèn)題最簡(jiǎn)單辦法之一就是用一個(gè)解決這種問(wèn)題的工具。這個(gè)練習(xí)就是選一個(gè)工具,然后學(xué)習(xí)一下它。

通常我的練習(xí)過(guò)程就是,安裝工具,練幾個(gè)教程,然后簡(jiǎn)單看看手冊(cè)。我這么學(xué)過(guò)的工具范圍從bash指令比如JQ、Sed到分布式系統(tǒng)比如Kafka、Zookeeper。

學(xué)習(xí)bash指令讓我解決日常問(wèn)題的效率提升了很多。類似的,學(xué)習(xí)不同的分布式系統(tǒng)可以讓我明白如何針對(duì)不同的問(wèn)題運(yùn)用不同的工具。

讀書(shū)

我用書(shū)來(lái)補(bǔ)充從論文里或者學(xué)習(xí)工具無(wú)法獲得的知識(shí)。我讀過(guò)的書(shū)主題范圍比較廣。比如最近讀過(guò)的:

Refactoring– 這本書(shū)讓我明白好的代碼是什么樣的,以及如何將不好的代碼轉(zhuǎn)化為好的代碼。

Getting Things Done– 這本書(shū)讓我明白如何安排工作的優(yōu)先級(jí)以及如何追蹤工作進(jìn)展。它幫我建立了一套體系來(lái)確認(rèn)優(yōu)先完成重要的工作。

The First Time Manager– 最近我剛好做了團(tuán)隊(duì)管理員,需要協(xié)調(diào)不同的團(tuán)隊(duì)一起工作,還要主持團(tuán)隊(duì)會(huì)議。這本書(shū)有助于我理解管理的基本原理。

錄屏

這個(gè)訓(xùn)練是我的最愛(ài)。這個(gè)練習(xí)也是對(duì)我解決問(wèn)題改變最大的。運(yùn)動(dòng)員經(jīng)常會(huì)看自己的錄像來(lái)讓自己做的更好。

所以我決定也這么搞一下,來(lái)提升編程能力。我從自己的錄屏里學(xué)到的經(jīng)驗(yàn)包括:

它可以幫助你在寫(xiě)代碼的時(shí)候就測(cè)試代碼。這樣可以通過(guò)快速定位Bug來(lái)減少DEBUG方面消耗的時(shí)間。如果之前的代碼都沒(méi)有Bug,那Bug肯定是在你新寫(xiě)的代碼里。

當(dāng)DEBUG時(shí),針對(duì)要DEBUG的對(duì)象專門(mén)添加函數(shù)是非常有必要的。舉個(gè)栗子,之前一個(gè)玩具的項(xiàng)目,我要寫(xiě)一個(gè)LRU緩存。寫(xiě)了個(gè)Bug,它不能清除正確的元素。這時(shí)我就可以快速地添加一個(gè)打印當(dāng)前緩存狀態(tài)的函數(shù)來(lái)看一下是哪里出問(wèn)題了。之后我就可以看一下緩存的期望狀態(tài)和現(xiàn)在實(shí)際情況的差別。這樣就可以讓我快速定位Bug。

在開(kāi)始寫(xiě)代碼之前,花五分鐘決定一下方向會(huì)非常的有效。這么做有兩點(diǎn)好處。首先是能夠確認(rèn)方向是正確的。更重要的是,這樣可以強(qiáng)迫自己選擇單一的方向。因?yàn)榭戳宋业匿浵窈?,我發(fā)現(xiàn)我在選擇實(shí)現(xiàn)方向上經(jīng)常猶豫很長(zhǎng)的時(shí)間,其實(shí)兩個(gè)方向都還OK。

所有這些經(jīng)驗(yàn)現(xiàn)在回顧的時(shí)候都很明顯。但是在我看錄像,發(fā)現(xiàn)我在哪里花費(fèi)大量時(shí)間之前都沒(méi)有能夠系統(tǒng)地將這些經(jīng)驗(yàn)總結(jié)出來(lái)。

我做這項(xiàng)練習(xí)的步驟是:

記錄一些我寫(xiě)程序的錄像??梢允枪ぷ髦械模部梢允窃贚eetCode這種刷題網(wǎng)站上刷題的時(shí)候。

十倍速看一遍錄像,并且記錄每個(gè)時(shí)刻我在做什么。

然后統(tǒng)計(jì)一下在大的類別上分別花費(fèi)的時(shí)間。比如花了多少時(shí)間DEBUG,花了多少時(shí)間寫(xiě)功能。

看看花時(shí)間最長(zhǎng)的類目。然后仔細(xì)研究下為啥花費(fèi)了這么長(zhǎng)的時(shí)間。

提出一些能夠讓我節(jié)約時(shí)間的方法。有一些辦法可以讓我把代碼結(jié)構(gòu)化,然后可以讓我少寫(xiě)一些代碼或者更快找到Bug。

我強(qiáng)烈推薦寫(xiě)代碼的時(shí)候錄屏。這是一種最簡(jiǎn)單的不斷做一些小的改變來(lái)讓自己效率更高的方法。

這套訓(xùn)練策略我堅(jiān)持差不多一年了。感受到自己發(fā)生了很大的改變。學(xué)到了很多之前沒(méi)有學(xué)過(guò)的關(guān)于系統(tǒng)和工具的知識(shí)。

現(xiàn)在解決問(wèn)題也要比之前快。希望你能考慮一下這些練習(xí),然后自己也嘗試一下。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1587

    瀏覽量

    69206
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4886

    瀏覽量

    70241
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1470

    瀏覽量

    34789

原文標(biāo)題:如何成為更優(yōu)秀的工程師?

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    一位優(yōu)秀的硬件工程師需要什么?

    如何成為一個(gè)優(yōu)秀的硬件工程師優(yōu)秀硬件工程師需要什么?電子發(fā)燒友網(wǎng)論壇用戶發(fā)聲,分享他的經(jīng)驗(yàn)之談。
    發(fā)表于 10-15 10:29 ?1.6w次閱讀

    如何成為一名高級(jí)電子工程師

    我是學(xué)點(diǎn)子的本科生,想請(qǐng)教各位電子工程師你們的學(xué)習(xí)之路是怎樣的,要想成為一名優(yōu)秀的高級(jí)電子工程師該學(xué)什么,怎么學(xué),具體的學(xué)習(xí)路線是什么樣的……
    發(fā)表于 01-06 00:32

    成為優(yōu)秀的Layout工程師的學(xué)習(xí)步驟是什么樣的?

    我是初學(xué)者,我現(xiàn)在很困惑不知道從哪里學(xué)起,所以誠(chéng)懇的求各位工程師給我指點(diǎn)迷津。包括要什么資料,可以的話可以推薦一下學(xué)習(xí)資料和視頻。不然,我拜你為師也可以,伙可以給報(bào)酬,真心想成為一名Layout
    發(fā)表于 03-07 18:47

    教你成為優(yōu)秀的模擬集成電路設(shè)計(jì)工程師

    教你成為優(yōu)秀的模擬集成電路設(shè)計(jì)工程師 怎么來(lái)訓(xùn)練一個(gè)剛剛畢業(yè)的工程師呢?我只能從我所從事的領(lǐng)域出發(fā),模擬集成電路設(shè)計(jì),我會(huì)提供一些在其他工程
    發(fā)表于 08-01 21:47

    電子專業(yè)本科,畢業(yè)兩年,怎樣繼續(xù)學(xué)習(xí)努力,成為優(yōu)秀的電子工程師

    電子專業(yè)本科,畢業(yè)兩年,怎樣繼續(xù)學(xué)習(xí)努力,成為優(yōu)秀的電子工程師??工作是汽車電子,但是并不是自己設(shè)計(jì),誒,感覺(jué)荒廢了
    發(fā)表于 08-10 23:01

    想去粵嵌教育成為一名優(yōu)秀的嵌入式工程師應(yīng)該具備什么樣的技能呢?

    怎么才能成為一名優(yōu)秀的嵌入式工程師?想去粵嵌教育成為一名優(yōu)秀的嵌入式工程師應(yīng)該具備什么樣的技能呢
    發(fā)表于 06-05 17:06

    優(yōu)秀的Python工程師養(yǎng)成記

    容易入門(mén),但想要學(xué)好,成為一名優(yōu)秀的Python工程師就不是那么容易的事情了,需要受到很多因素的影響,以下是成為一名優(yōu)秀的Python
    發(fā)表于 03-27 16:06

    如何成為優(yōu)秀的機(jī)械工程師

    遠(yuǎn)遠(yuǎn)不是一個(gè)級(jí)別的,機(jī)械工程師的稱號(hào)的絕不僅僅是畫(huà)畫(huà)圖而已,從方案到出樣機(jī)都能獨(dú)立完成,具有豐富設(shè)計(jì)經(jīng)驗(yàn),這其實(shí)相當(dāng)不容易。那么如何成為優(yōu)秀的機(jī)械工程師,如何提升自己的實(shí)力,有哪些值得
    發(fā)表于 09-09 08:31

    如何才能讓自己成為一名嵌入式開(kāi)發(fā)工程師?

    成為一名優(yōu)秀的嵌入式開(kāi)發(fā)工程師有哪些要求?隨著國(guó)內(nèi)嵌入式行業(yè)的迅速崛起,嵌入式人才嚴(yán)重緊缺,企業(yè)對(duì)嵌入式人才更是求賢若渴。盡管是在就業(yè)難的今天,但是各大人才招聘網(wǎng)站上,高薪招聘嵌入式開(kāi)發(fā)工程師
    發(fā)表于 11-08 07:40

    如何成為一個(gè)優(yōu)秀的嵌入式硬件工程師?

    如何成為一個(gè)優(yōu)秀的嵌入式硬件工程師?
    發(fā)表于 11-19 06:51

    工程師故事:怎樣才能成為優(yōu)秀研發(fā)工程師呢?

    工程師故事:怎樣才能成為優(yōu)秀研發(fā)工程師呢?其實(shí)三言兩語(yǔ)很難道盡工程師的成長(zhǎng)心得。多年的工作中,我們體會(huì)比較深刻的有以下幾個(gè)方面:
    發(fā)表于 03-22 16:17 ?4234次閱讀

    如何成為一個(gè)優(yōu)秀的電子工程師

    如何成為一個(gè)優(yōu)秀的電子工程師,感興趣的小伙伴們可以看看。
    發(fā)表于 08-05 16:09 ?19次下載

    如何成為一名優(yōu)秀的Linux工程師

    的個(gè)人能力有所不同,想要成為一名優(yōu)秀工程師是需要我們往相應(yīng)的方向努力的。那么,如何成為一名優(yōu)秀的Linux
    的頭像 發(fā)表于 08-21 15:40 ?3348次閱讀

    如何成為電氣工程師 還是特別優(yōu)秀的那種

    如何成為電氣工程師?特別是 如何快速成為優(yōu)秀電氣工程師? 本篇是針對(duì)電氣新手的,一些高手請(qǐng)勿噴。 所謂的快速,就是你知道,你的時(shí)間花在什么地
    的頭像 發(fā)表于 04-13 14:31 ?4389次閱讀

    優(yōu)秀電源工程師的必備技能大揭秘!

    隨著電源市場(chǎng)的不斷擴(kuò)張,開(kāi)關(guān)電源行業(yè)飛速發(fā)展,企業(yè)對(duì)電源工程師的需求日益增加,對(duì)電源工程師的技能要求也日漸提高,相信沒(méi)有一位電源工程師會(huì)錯(cuò)過(guò)讓自己變得更優(yōu)秀的機(jī)會(huì)。作為一名數(shù)字電源從業(yè)
    的頭像 發(fā)表于 12-19 08:23 ?2245次閱讀
    <b class='flag-5'>優(yōu)秀</b>電源<b class='flag-5'>工程師</b>的必備技能大揭秘!

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品