三種工程師 — Coder, Hacker and Architect


從小時候開始,工程師在我的心目中就不是一份太高尚的職業。

工程師必須要用沒人聽得懂(也沒人有興趣)的語言,去架構出能被使用的東西。這些東西可能是建築物、車子、機器、電路板、軟體等等…
一般大眾會將一樣產品的功勞歸給”計畫者”(如Steve Jobs)以及設計、行銷、管理者,而工程師似乎就是一些可以被替換的零件,沒有人會記得他們的名字,而他們所做的事情也可以被其他人所取代。

後來我自己加入了軟體工程師的行業,對於工程師的想法也有所改變,在這邊跟大家分享一下我對於「工程師」的看法。

雖然在中文裡,大家都叫做工程師(Engineer),但其實根據工程師喜歡做的事情、心中對於程式的想法,可以分成幾種類別的人。這邊簡單的以我的認知,把寫程式的工程師分成三類。

 

第一,寫程式的人(Coder、Employee、Worker)


這種類型的人單純的只是為了工作、功課、任務而寫程式,雖然職務名稱叫做工程師,但是寫程式對他們來說只是獲取成績、金錢的工具,寫程式對他們來說枯燥無味,但為了生活,他們繼續產出他們的程式碼。他們喜歡簡單的任務,最好是一看到就知道要怎麼做,最好有別人的程式碼可以直接套用。而當他們的程式可以過關,他們就開心的回家睡覺去,連一秒都不想看到程式碼。




第二,有目標而寫程式的人(Hacker、Doer、Entrepreneur)


這種類型的人並不是因為熱愛”程式”本身而開始寫程式,他們寫程式是為了要達成某些目的。這些人雖然不是天生的程式高手,但是很會用別人寫好的套件去兜出一些應用,當有一個好的點子時,他們第一件事不是去想:「我本身不是學這個的,我要怎麼樣才能找到別人來幫我做…」他們會去找既有的資源架構,嘗試做出原型(Prototype),有時候雖然做出來雖然有點破(像是下圖右方的機器人),但他們樂在其中,並且常常不眠不休的寫程式。我自己會將Mark Zuckerberg(Facebook)、Drew Houston(Dropbox)、David Karp(tumblr)這些創辦人歸在這類。

hackers-are-doers

第三,熱愛程式本身的人(Architect、Theorists、Change Maker、Geek)

這類工程師喜歡程式本身,他們欣賞程式設計的架構、可擴充性、可被測試性。他們喜歡最新的科技,並且會主動的去接觸、試用它們。他們喜歡寫有架構、能夠被別人重複使用的套件(Library)。他們樂於貢獻自己所知所學到這個世界,並且常常在想有沒有什麼最新科技、理論能夠套用到某個工具或服務上,讓這個服務更快、更大、更好。他們是三種類型的工程師中技術最高超的一群(如上圖左方的人),也常常是能夠改變整個程式世界遊戲規則的人。如jQuery的發明者John Resig、Linux發明人Linus Torvalds、個人電腦發明者Stephen Gary Wozniak,還有許許多多的Google工程師們。

寫到這裡,我忽然想要澄清一個大眾對於工程師的誤解。當大家看到一個東西、軟體不好用,或是UI、UX設計上有問題時,常常會說製作這個東西的人用”工程師思維”在設計。又或是團隊在討論一樣東西時,PM(Product Manager)或管理者常會對工程師說:「你那是”工程師思維”,站在”使用者”的角度來說…」工程師常因為大眾對自己身分的刻板印象,被弄到連發言權都沒有,或是提出的意見不被重視,但事實是怎樣呢?

如上面所說,工程師分成三種。而所謂的”工程師思維”,充其量只能形容第一種人(Coder)的所作所為

Coder的工程師思維

Coder因為只想把事情做到交差了事,因此他們每天的任務就是把上面說要做的事情完成,一分不多、一分不少。因此,假設管理者、PM在Spec、Feature中沒有把整個使用流程、步驟、使用情境全部拆解成任務,這些Coder是不會自動幫忙把UX做好的,當他們發現這個系統使用起來會有問題,他們會選擇默不吭聲,因為提出一個好的意見,只代表自己的工作會增加 — 而這是讓Coder最不開心的事情。

充滿Coder的工作環境,做出來的東西就有機會充滿”工程師思維”(不好用、UX爛),因為這些東西只是一堆Feature(Coding 任務)的結合。要營運這樣的公司必須要有很強的PM和設計者,能夠有效管理員工、定義產品,才能讓Feature拼湊出好的產品。

._.

Hacker的工程師思維

而第二種人(Hacker)是最討厭別人說他們有”工程師思維”的人,因為他們其實是普通人和第三種人(Architect)的混種。Hacker知道怎麼完成一樣事情,但技術沒有這麼高超。他們重視目的和UX,因為他們喜歡使用自己做的東西。當公司要規劃一項新產品時,他們不會因為這項新產品做起來簡單、輕鬆,工作負擔輕而開心(Coder會),相反地,他們會因為這些東西好用、創新而興奮不已。當有任務下來,Hacker不會讓使用的細節從眼前溜過,他們會默默的將設計不完整的地方補完。有時候他們甚至會和管理者爭論,這個Feature到底該不該有,因為他們認為使用者不會喜歡。

假如在公司沒有權力,Hacker其實是角色最尷尬的人。至於尷尬在哪…,我想這個秘密就留給Hacker們了。

._.

Architect的工程師思維

而第三種人(Architect)的確是有工程師思維,但工程師思維對他們來說應該要是種稱讚。Architect的工程師思維源自於兩個面相,第一個是他們喜歡有秩序、可以永久保存、重複使用的東西,第二個是他們無私的想要貢獻自己做出的東西給這個世界。當公司或團隊在討論時程時,Architect的第一個思維會讓他想要阻止大家天馬行空的亂提點子,因為他知道這些點子拼湊在一起,程式或產品架構會是個一團亂(但這時候PM會說:「那是因為你從工程的角度去想,但使用者使用起來不會這樣覺得,你這是工程師思維」)。但實際上,一個好的產品設計,從工程上面來看應該也要是規律、優雅而有深度的。若工程設計本身具有規則,使用者在使用時是可以隱約感受到其背後令人舒適的邏輯的。因此我認為Architect喜歡秩序的工程師思維是好的。

而Architect的第二種思維 — 貢獻於整個世界,有時候對於末端使用者(也就是我們所稱的”大眾”)來說,會是一個小災難。Architect會希望把一個東西做到擁有很大的擴充性、以及很多的功能,如此一來任何一種人都可以視自己的需求,去變化使用這個東西。而這種想法最知名的例子,就是蘋果電腦的發明人沃茲尼克,曾和Steve Jobs爭論,它希望電腦上面要有很多可擴充的插槽,如此一來各類的科技人才能視自己所需去改裝電腦。(後來Steve Jobs沒讓他這樣做,沃茲尼克還小生氣了一陣)。

但Architect的第二種思維,常常是他們做出來的東西能影響這整個世界的關鍵。Internet、Linux、python、ruby、C語言…Architect創造出來的東西,無私的奉獻給這個世界,成為科技發展的基石,因此一般大眾才有機會使用簡單易懂的科技產品。

1-1212152213450-l

在我們的環境中,有太多的Coder、也有許多從Coder變成的Hacker(他們的差別只在有沒有目標,還有去實作的毅力),但比較少真正願意奉獻、熱愛程式的Architect。

至於我呢? 目前還只是個有目標的Hacker而已,距離真正厲害的工程師還有很長的一段距離。但自詡為一個Hacker,還是希望自己能夠繼續做出對世界有貢獻的東西(之前做的Timego也該繼續更新了)。

drew

當你有一個想法,並用自己的雙手實現出來,然後按下一個按鈕,讓幾百萬人都能分享你的成果。我想我們是世界上第一代能夠有此經歷的人。 — Drew Houston in “What most school don’t teach

後記:

話說這次之所以會寫這篇文章,是因為昨天想要在iPad上看第一銀行的電子書,但很不幸的,它是Flash,iPad無法觀看。而使用Puffin它竟然說網頁記憶體用量太大不讓我開,這時我想起自己是個工程師,於是就用Dropbox的公開資料夾當做伺服器,自己寫的幾行程式碼當做載具,簡單的做了一個iPad觀看版本。做完後覺得,嗯,當工程師還是有一些特殊的地方的。晚上心血來潮,就寫了這篇文章。

我想人們之所以會走向不同的工程師類型,和工作環境、投入的Project也有很大的關係,即使在Google,也有很多聰明的人因為一些因素成為單純生產Code的Coder。

希望每個工程師都能選擇自己想走的路,生活、創業、貢獻…一切都是自己的選擇

Also on SJ: 香港學生如何考進 Google? Google工程師分享面試過4關攻略

SJ 結語

大家記得工程師都有分很多種架!

原文轉載至 Sean Cheng “三種工程師 — Coder, Hacker and Architect”, StealJobs.com 獲得授權轉載。

 


StealJobs全面透露各行各業人工,工時,晉升前景,以及入行攻略,歡迎匿名提供收入資料

Employers or publishers who object to or otherwise complain about the above content please read SJ Community Guidelines and contact us via email or Facebook message. The above content is mere opinion of the submitter(s), not facts, not from an official source, and might be inaccurate.
如對本網任何內容有任何意見或投訴,請按此聯絡本網,本網會盡快為您處理問題。以上內容僅為投稿者之個人意見,不代表本網立場,並非來自官方渠道,亦可能不準確。 


立即加入StealJobs@FB 更多90後上位攻略

以下係默默支持SJ的廣告商,啱用去睇:




按下圖,立即向StealJobs匿名爆料人工資料 Submit Job Review

comments

Comments are closed.