0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

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

讀論文;

學習一種新的工具;

讀書;

錄屏。

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

我的成為更好的工程師的方法是建立一套訓練體系。這套體系里有一些固定的練習,我每周都會進行。設計這套訓練體系有兩個非常明確的目標:

學習解決之前不會解決的問題;

學習如何更快更好的寫程序。

訓練計劃主要是由四個練習組成的,每一個都會幫助我向上面的兩個目標前進。這四個練習是:

讀論文;

學習新工具;

讀書;

寫程序的時候錄屏。然后回顧一下,看看能不能寫得更快。

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

讀論文

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

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

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

這是因為最慢的5%的請求要比其他請求慢非常多。論文也給出了一些方法來降低長尾延遲。我發(fā)現(xiàn)這些方法,在我這邊的一些工作上也可以用。

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

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

我讀的論文主要來自于以前讀過的論文的參考文獻或者Morning Paper的封面文章。Designing Data Intensive Applications這本書的參考文獻里也有很多值得一讀的論文。

學習新工具

解決問題最簡單辦法之一就是用一個解決這種問題的工具。這個練習就是選一個工具,然后學習一下它。

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

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

讀書

我用書來補充從論文里或者學習工具無法獲得的知識。我讀過的書主題范圍比較廣。比如最近讀過的:

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

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

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

錄屏

這個訓練是我的最愛。這個練習也是對我解決問題改變最大的。運動員經(jīng)常會看自己的錄像來讓自己做的更好。

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

它可以幫助你在寫代碼的時候就測試代碼。這樣可以通過快速定位Bug來減少DEBUG方面消耗的時間。如果之前的代碼都沒有Bug,那Bug肯定是在你新寫的代碼里。

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

在開始寫代碼之前,花五分鐘決定一下方向會非常的有效。這么做有兩點好處。首先是能夠確認方向是正確的。更重要的是,這樣可以強迫自己選擇單一的方向。因為看了我的錄像后,我發(fā)現(xiàn)我在選擇實現(xiàn)方向上經(jīng)常猶豫很長的時間,其實兩個方向都還OK。

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

我做這項練習的步驟是:

記錄一些我寫程序的錄像??梢允枪ぷ髦械?,也可以是在LeetCode這種刷題網(wǎng)站上刷題的時候。

十倍速看一遍錄像,并且記錄每個時刻我在做什么。

然后統(tǒng)計一下在大的類別上分別花費的時間。比如花了多少時間DEBUG,花了多少時間寫功能。

看看花時間最長的類目。然后仔細研究下為啥花費了這么長的時間。

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

我強烈推薦寫代碼的時候錄屏。這是一種最簡單的不斷做一些小的改變來讓自己效率更高的方法。

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

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

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

    關注

    59

    文章

    1561

    瀏覽量

    68309
  • 代碼
    +關注

    關注

    30

    文章

    4671

    瀏覽量

    67765
  • 數(shù)據(jù)分析

    關注

    2

    文章

    1393

    瀏覽量

    33909

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

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    如何成為一名高級電子工程師

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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