Bernard:可以跟大家 say hello 嗎?做個簡單的自我介紹。
ihower:不就只有你而已嗎?
Bernard:你要講一下你是誰,大家都知道我是誰。
ihower:你不是知道嗎?你給我的問題裡面沒有這一條。
Bernard:你也可以大概講一下。譬如說:「大家好我是 ihower ,我是愛好科技的創辦人」之類的。
ihower:大家好我是 ihower ,目前有創辦自己的公司,「愛好資訊科技」。
Bernard:我想問什麼啊...?等一下,讓我看看我自己寫的 note 。
ihower:你就照你的問題問啊。
Bernard:現在創個業,好辛苦喔!以前簡簡單單的,把產品做好就可以了。現在還要做直播做 podcast 等什麼的。
ihower:做了幾個 interview 了?
Bernard:You are the first(你是第一個)!我希望能做到 10 個訪談。
ihower:所以我是第一個實驗?!
Bernard:你是第一位嘉賓! ... 老師你做軟體開發多久?
ihower:如果從透過寫程式賺錢開始算的話,是從大一就開始了,所以 2002 年。這樣算有 18 年了吧。如果從(大學畢業後)正式工作開始算的話,應該是 07 年開始,也是有十幾年了。
Bernard:然後你不是本科系對不對?你不是資工系畢業的。你是哪個系的?
ihower:清大數學系,但是我大學時候就對資訊很有興趣,所以修資工的輔系,還去修了一個電子商務學程。
Bernard:那個年代有電子商務了?
ihower:有已經有了。
Bernard:所以主修是數學,輔系是資工,然後同時修了一個電子商務。
ihower:清大它有一個電子商務學程,就是資工系加上一些管理的課程,最後有一個專題這樣子。
Bernard:那老師你最喜歡的 programming language 跟工具是什麼? Ruby on Rails?
ihower:對對對。
Bernard:還有什麼?
ihower:沒有什麼其他的。最喜歡就是 Ruby on Rails 了。
Bernard:為什麼?乾淨漂亮?
ihower:就是寫起來開心,我還蠻喜歡 DHH - 也就是 Rails 發明人的哲學,基本上就是一個 total solution。你用 Rails 可以做到非常多的事情,前後端一起完。然後可以說是中小型專案 CP 值最高的選擇。
Bernard:我非常同意,但老實說,連 Shopify 都還是用 Rails 的,所以其實 Rails 連超大型的專案都可以做。
ihower:沒錯。它其實比你想像中還要 scalable。大學時候最早接案是用 PHP 。
Bernard:那個年代,大家都是用 PHP 的。
ihower:我覺得大概 2000 年出頭的,那時候做 Web 都是用 PHP 比較多。
Bernard:那另一個問題:你覺得最讓你驕傲的成就是什麼?
ihower:應該啟動了 Ruby Taiwan 社群,辦了前三屆的 RubyConf Taiwan,最後順利交接出去。寫了一本公開的 Rails 的書,做了很多技術分享演講,所以算是對台灣 Ruby 與 Ruby-on-Rails 的推廣有些貢獻。
Bernard:【Ruby-on-Rails 實戰聖經】 — 在台灣學過 Rails 的都該有讀過你的書吧。
ihower:還有目前手上的專案,都還算不錯的成果。
Bernard:我也希望 ...
ihower:我喜歡目前的模式。覺得能跟客戶有比較緊密的合作關係,然後每個案子都是長期開發跟合作的,可以穩定的。
Bernard:我也認為能長期合作很重要。
ihower:互相信任,覺得這樣比較開心,也比較健康。
Bernard:也是。那我們來談一下「工程師追求卓越」這個題目。很多人說,當工程師就要不斷學習。但我發現 AC 有不少校友、助教等,寫了兩年三年的 code 後,會覺得在職涯發展的路上,不知道該往什麼方向。可能對當管理者沒有很大興趣。技術上,使用的工具也差不多。有時候學習了新的技術,但因為在公司沒有用,所以學完後也沒有用。
針對學習的部分,你是那種一有新工具就去學的工具控嗎?
ihower:其實有一段時間是。雖然基本上隨年紀會變化,但是我還是蠻喜歡學以致用的感覺。就是學了什麼東西後會變強這種感覺,所以在我職涯的前十年,學非常多的技術。除了一開始的 Ruby on Rails 之外,後來學了一大堆。那陣子什麼紅,就去學習相關的工具。對不同的程式語言也很有興趣,因為社群說學習新的程式語言,有助於擴展你的知識。
Bernard:例如是什麼?
ihower: 例如這些:
所以一直學了非常非常多東西。
Bernard:哇!
但是我還是蠻喜歡學以致用的感覺。就是學了什麼東西後會變強這種感覺
ihower:我覺得跟你剛才提到瓶頸其實一樣,因為學了之後沒有用到,然後你就會忘記。
另外,我覺得現在年輕人的瓶頸也是我的瓶頸。可能跟我職涯的方向比較有關,就是我一直都在比較中小型的企業打拼,沒有待過很大的公司。有很多技術只有大公司會用到,但是對中小公司或是新創來說,它們還沒到那個階段。像是進階 DevOps 的技術,你要處理很大流量、要蓋數十台、甚至數百台 server 才會用到。
然後有些技術是不同職種或工種才會使用到的。例如 data science 跟軟體開發是不同的工種。Data Sciencetist 更像是分析師,而不是工程師。我在學習資料科學時,學到後面發現他們的思維是不一樣的。我個人更喜歡以工程師的角度,希望能具體去解決一個問題,而不是從分析資料把問題找出來。
所以在學習時,雖然學習的過程很開心,但到後來還是會迷惘,在想學了可以幹嘛。
Bernard:瞭解。很有趣的觀察。那老師最近在學什麼?
ihower:這幾年自己開公司之後,就專注在學習商業知識。
Bernard:所以要選擇學什麼,最好是學一些你短期會用到的技術與工具,可以是直接跟工作有關,例如公司需要開啟新的 project,同時來實驗一個新的程式語言,我覺得這是一個好的理由。
是這樣子嗎?還有什麼考量點?
ihower:應該說作為軟體工程師,我覺得前幾年當然還是以專注在一種技術比較重要。你總要先有一技之長。至於前幾年你要學哪種不同的技術,有一個前輩曾經有提到,就是你要學廣跟深,但不要學重複的。什麼是重複?譬如說你學了 Rails ,就不需要再學其他類似的 web 框架,像 PHP 的 Laravel、或是 Python 的 Django。除非工作需要,例如你的新公司是使用 Node.js 與 Express,那就沒辦法。
作為軟體工程師,前幾年當然還是以專注在一種技術比較重要。你總要先有一技之長。
Bernard:為什麼?
ihower:其實花時間去學習重複的工具或技術,是一種浪費。因為最後都是 web 框架,做的事情都是一樣的,而最後成果都是一個 web application 。所以我不建議重複學。資料庫也是一樣,如果學了 MySQL ,就用 MySQL 進攻到底,不需要再學 Postgres,因為都是 SQL 資料庫。
當然我覺得稍微了解一下、增廣見聞可以。但是不需要特別深入。同時是前端框架,你要選 Vue、React 或是 Angular?其實使用不同工具最後成果都是一樣的,你不需要變成三種不同的大師。
Bernard:剛剛我們討論的都是工具。現在我們把層次拉高一點點。作為一個軟體工程師,有什麼技能是一定必須的?我想應該不是程式語言或是工具,而是更底層的東西。或是說,在你面試求職者,或是管理你的團隊時,甚至在管理自己時,你最在意的特質或是能力是什麼?
ihower:我很在乎一個人格特質,就是 ...
==========
這是我跟 ihower 對話的上半段。因為訪談後發現有五千多字,就分上、下兩段發。我們明天見。
如果你對內容有任何想法或疑問,也歡迎在下面留言。
也想看 Bernard 對於這段有趣訪談的看法XD
感謝 @Yenting 留言。在訪談後,我也會列出我個人的 takeaway.
好精彩!!
這句話深有同感XD
因為學了之後沒有用到,然後你就會忘記。
哈哈!很高興讓 PJ 大大有共鳴!期待 PJ 大的文章!
花時間去學習重複的工具或技術,是一種浪費。...所以我不建議重複學。
原本還想去學學 React,看完這個建議感覺可以專注在 Vue 就好,去學更多原本不會的技術。
期待下集~
ihower 這個建議也讓我有所反思。我會認為,如果你在工作上需要使用 React,能馬上學以致用,那我覺得可以。
有或是你有嚮往的企業,但他們指定的框架是 React,那樣我也覺得可以。但單純為了「學習而學習」,我也覺得不必要。
恩 沒錯,原本講的不夠精確,應該是指「較沒必要為學習而學習」這一點,但若是工作上有需求仍要能快速轉換
嗯。非常同意。在下集有補充。感謝 @CK
和 ihower 大大共事兩年,他的哲學完全體現在工作和帶團隊上
好有感
@Max 大!你出現了!We miss you
@Max yes we miss you!!!
我在看這個文章的時候也是覺得好有感!整個 ihower 浮出螢幕 :)
(*´∀`)~♥
不錯阿 這篇好啊
感謝!很高興你喜歡!
我也是有在寫鐵人賽,跟你的主題很類似...會不太一樣@@
https://ithelp.ithome.com.tw/users/20063465/articles