跳到主要內容

[職場]會寫程式還不夠,傑出軟體工程師都有的5種能力。


  曾任職於Google和Quora等公司、現任Quip軟體工程師的 Edmond Lau ,於《The Effective Engineer》一書中訪問任職於Facebook、Instagram和Google等知名網路公司的資深軟體工程師,歸納出他們眼中高生產力的傑出軟體工程師都具備的五種能力。

  一、不害怕探索陌生程式語言

  接觸新專案或是轉換工作跑道時,都有可能需要學習全然陌生的程式語言,許多人對此感到害怕,甚至未嘗試就先放棄。其中,跳脫舒適圈的恐懼往往多於學習程式,會擔心是否無法重現過去工作的好表現,甚至因此懷疑自身能力。

  不論是多厲害的工程師,一定都有起點,就像打造 Microsoft Windows 基礎的微軟資深工程師 Dave Cutler 為文組出身,沒受過正式電腦科學教育,比起同輩花更多時間在錯誤中學習。在這之中,最重要的兩個關鍵為具備「成長心態」(growth-mindset)而非「固守心態」(fixed-mindset),以及「樂於學習」(optimize for learning)的態度。

  學習陌生程式語言這項關鍵能力會越練越上手,並讓你在學習過程中成為更好的程式設計師。

  二、精通Debug

  「為什麼程式跑出來和我預期的不一樣?」是許多工程師會遇到的問題。Debug能力往往是影響工程師是否能順利完成專案的關鍵因素,卻被大部分人低估。

  Debug的系統性思考如下:
  ① 先假設造成bug的可能原因。
  ② 若假設為真,界定此假設可能導致的結果。
  ③ 試著檢視是否有和這些結果衝突的現象。
  ④ 若有衝突表示假設錯誤,要重複上述思考過程。
  
  由此可知,想加快Debug速度,要提升「提出假設」和「檢視假設」的能力。假設能力可隨著Debug經驗的累積而提升,檢視能力則需加強善用檢測工具的技能。在此過程,必須先假設所有東西都是可檢視的,並找出可用來檢測或加快檢測速度的工具或機制,千萬不要只用自己熟悉的工具。

  三、開發節省時間的工具
  減少時間做那些電腦就可做的工作,例如開發節省時間的工具和使工作流程自動化。

  曾負責Facebook軟體基礎建設團隊的軟體工程師Bobby Johnson,帶領該團隊從6人成長至超過1百人。他觀察到,團隊中表現出色的人多數寫了許多工具,這些看似和績效無直接相關的工具開發時間可能佔三分之一的工作時間,卻因此大大提升工作效率,其中包含用來部署程式、監測系統,以及其他可節省時間的工具。

  四、優化重複性工作的速度
  軟體工程師每天可能要搜尋、瀏覽函數定義很多次,善用鍵盤快捷鍵可省下可觀的時間。例如,每次搜尋需花12秒,類似的步驟每天要重複20次,若用快捷鍵可將搜尋時間縮短到2秒,一年下來即省了40個小時。其他狀況如每次Debug都需要在不同裝置測試,除了要分別打開app,還要設定測試情境,這時候就可以思考如何加快這類重複性工作的速度。

  五、發展系統性思考模式
  寫完程式碼、讓程式可運作僅是冰山一角,要產出真正有價值的程式,必須從程式本身提升到整個系統來思考。

  ■ 你的程式和其他程式庫以及其他人寫的功能是否相容?
  ■ 程式是否測試完成,並確保其他成員可執行你寫的這些功能?
  ■ 部署你的程式需要改變哪些生產環境?
  ■ 新程式對其他正在運作的系統是否有負面影響?
  ■ 客戶和使用者的新程式使用情況是否如預期?
  ■ 新程式是否達到公司期待的效果?
  ■ 從巨觀的角度思考問題,可讓你更懂得如何調配時間和精力以讓程式達到最佳效果。

這個網誌中的熱門文章

[娛樂]最終未能「蟻人鑽肛門」,保羅苦笑喊「沒機會」。

  保羅路德最近正在宣傳 Netflix 最新影集「麥斯 2.0」,最近上節目「First We Feasts Hot Ones」時再度提到自己主演的漫威英雄「蟻人」在「復仇者聯盟:終局之戰」當中,未能一如眾多網友開玩笑的傳聞一樣,最後鑽入薩諾斯的肛門內擊倒他,然則保羅路德之前宣傳電影時已經揶揄這個傳聞多遍,如今再提往事,依舊脾氣極好的再度自嘲。   保羅路德在節目上說:「我真的覺得失去了一個機會。」隨後他在說完這句話之後立刻大笑,表態他在開玩笑,不過外界覺得最為誇讚的是他脾氣極好,早從去年宣傳「復仇者聯盟:無限之戰」、「蟻人與黃蜂女」時就不厭其煩想梗回應,如今再度提及此事,相當逗趣。   其實看過「復仇者聯盟:終局之戰」結尾的影迷都知道,最終是「鋼鐵人」犧牲自己來救助全世界,讓所有漫威影迷都非常喜歡這個結局,也有網友開玩笑說,看來保羅路德可以釋懷了。

[動畫]《一拳超人》第三季動畫的埼玉英雄視覺圖、特報影片、製作團隊和聲優情報公開。

  以 ONE 與村田雄介所創作的超級英雄題材動作漫畫《一拳超人》為原作,第三季電視動畫公開了主角埼玉視覺圖、特報宣傳影片、製作團隊和聲優陣容等情報。   《一拳超人》電視動畫第一季由 MADHOUSE 製作,於 2015 年 10 月開播;第二季改由 J.C.STAFF 製作,於 2019 年 4 月開播。2022 年 8 月宣布動畫第三季製作消息。目前已知第三季店是動畫將與第二季同樣由 J.C.STAFF 擔綱製作。   由 ONE 擔任原作、村田雄介負責作畫的漫畫作品《一拳超人》,描述就職過程中找不到出路的主角「埼玉」,遭遇到要奪走一位少年生命的螃蟹異變人後,回憶起年少年時「想要成為英雄」的想法,於是奮起戰鬥並救下了少年。重拾對於成為英雄的志向後,埼玉苦練了三年、以掉光所有頭髮為代價,化身成毫無弱點的超級英雄,只需一拳便能輕鬆地擊敗怪獸。之後他與弟子傑諾斯一起加入了英雄協會,開始了與眾多英雄對抗各種怪物的生活。

[科技]前Google實習生告訴你:如何進入Google實習、面試流程是什麼、實習生每天都在幹嘛?

  去Google工作是很多人的夢想,而大學時期能去Google實習更是為自己鋪平了成功之路。到底什麼樣的人才能進入Google實習?在Google實習是什麼樣子?傳聞中的那些Google福利是真是假?   日前,Fast Company 發表了一篇前 Google 實習生的日記,日記中詳細敘述了自己在Google實習的體驗。日記中說,讓他感觸最大的一點就是:「當 Google 尋找未來的員工時,除了簡歷裡的成就,他們更看重求職者是一個怎樣的人。」   過去二十年,Google 對我們的日常生活產生了巨大的影響——Android系統成為地球上最常用的系統,與此同時,它還不斷地在探索新興的硬體技術,包括 VR 頭戴裝置和無人機。   當人們談及科技行業的工作機會時,Google 總是在他們夢想加入的公司的榜首——這一點兒也不奇怪。根據 Vault 年度排名,在過去兩年,Google 一直是實習生最夢寐以求的公司,沒有之一。可是,怎樣才能得到 Google 的實習機會呢?下面就是去年夏天在 Google 實習過的史丹佛研究生 Kerry Wang 的經驗談。   在Google的角色。   我今年20歲,剛從史丹佛大學畢業。2016 年的夏天,我來到 Google 的新總部——加州山景城,開始了我的實習。實習共10周,從6月持續到8月。   我是「建立領導與發展機會(BOLD)計劃」的實習生。具體來說,我在 Google 的線上合作業務團隊擔任產品銷售負責人,主要工作是與業務團隊和工程團隊合作,在AdSense 平台上開發及推出產品。我喜歡與跨職能團隊合作,更喜歡解決他們提出的獨特問題。這些都得益於我在人類生物學和電腦科學方面的背景。   如何發現 Google 的實習機會?   BOLD 實習的申請是在我大一的時候開始的。當時,我看到一張 BOLD Discovery 的傳單,介紹說這是 Google 專門為本科生而設的計畫,地點在紐約。我決定立即申請。得知申請被透過時我簡直超級激動。在這趟包吃包住的紐約旅行中,我們用了三天時間,在 Google 總部,詳細的去瞭解公司的文化和業務。我喜歡這趟旅程中學到的東西,所以當 BOLD Discover y的招聘人員在兩年後開始招收 BOLD 實習生時,我立即提交了我的簡歷和申請。 ...