iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 2
5
Software Development

與頂尖工程師談「追求卓越」系列 第 2

Ruby-on-Rails 實戰聖經作者 - ihower [上]

Bernard:可以跟大家 say hello 嗎?做個簡單的自我介紹。

ihower:不就只有你而已嗎?

Bernard:你要講一下你是誰,大家都知道我是誰。

ihower:你不是知道嗎?你給我的問題裡面沒有這一條。

Bernard:你也可以大概講一下。譬如說:「大家好我是 ihower ,我是愛好科技的創辦人」之類的。

ihower:大家好我是 ihower ,目前有創辦自己的公司,「愛好資訊科技」。

https://ithelp.ithome.com.tw/upload/images/20200915/20129249yfwfgJA4Gf.png

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 的推廣有些貢獻。

https://ithelp.ithome.com.tw/upload/images/20200915/20129249Jd1qlukHX5.png

Bernard:【Ruby-on-Rails 實戰聖經】 — 在台灣學過 Rails 的都該有讀過你的書吧。

ihower:還有目前手上的專案,都還算不錯的成果。

Bernard:我也希望 ...

ihower:我喜歡目前的模式。覺得能跟客戶有比較緊密的合作關係,然後每個案子都是長期開發跟合作的,可以穩定的。

Bernard:我也認為能長期合作很重要。

ihower:互相信任,覺得這樣比較開心,也比較健康。

Bernard:也是。那我們來談一下「工程師追求卓越」這個題目。很多人說,當工程師就要不斷學習。但我發現 AC 有不少校友、助教等,寫了兩年三年的 code 後,會覺得在職涯發展的路上,不知道該往什麼方向。可能對當管理者沒有很大興趣。技術上,使用的工具也差不多。有時候學習了新的技術,但因為在公司沒有用,所以學完後也沒有用。

針對學習的部分,你是那種一有新工具就去學的工具控嗎?

ihower:其實有一段時間是。雖然基本上隨年紀會變化,但是我還是蠻喜歡學以致用的感覺。就是學了什麼東西後會變強這種感覺,所以在我職涯的前十年,學非常多的技術。除了一開始的 Ruby on Rails 之外,後來學了一大堆。那陣子什麼紅,就去學習相關的工具。對不同的程式語言也很有興趣,因為社群說學習新的程式語言,有助於擴展你的知識。

Bernard:例如是什麼?

ihower: 例如這些:

  • mongodb
  • hypermedia
  • Chef, Puppet
  • haskell
  • SOA
  • android
  • iOS & objective-C
  • Titanium
  • coffeescript
  • jruby
  • postgresql
  • Erlang
  • Scala
  • Apache Spark
  • AngularJS
  • Data Science
  • Machine Learning
  • Python
  • R
  • React
  • Blockchain
  • Ethereum
  • DDD (domain-driven design)

所以一直學了非常非常多東西。

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 對話的上半段。因為訪談後發現有五千多字,就分上、下兩段發。我們明天見。

如果你對內容有任何想法或疑問,也歡迎在下面留言。


上一篇
前言
下一篇
Ruby-on-Rails 實戰聖經作者 ihower [下]
系列文
與頂尖工程師談「追求卓越」30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
1
Yenting
iT邦新手 5 級 ‧ 2020-09-15 22:00:38

也想看 Bernard 對於這段有趣訪談的看法XD

Bernard iT邦新手 5 級 ‧ 2020-09-15 22:01:55 檢舉

感謝 @Yenting 留言。在訪談後,我也會列出我個人的 takeaway.

2
pjchender
iT邦新手 3 級 ‧ 2020-09-15 23:19:44

好精彩!!

這句話深有同感XD

因為學了之後沒有用到,然後你就會忘記。

Bernard iT邦新手 5 級 ‧ 2020-09-16 09:01:16 檢舉

哈哈!很高興讓 PJ 大大有共鳴!期待 PJ 大的文章!

0
carrot7712
iT邦新手 5 級 ‧ 2020-09-16 09:26:48

哇文章斷在這裡..讓人好期待下集喔!!

Bernard iT邦新手 5 級 ‧ 2020-09-16 14:32:27 檢舉

哈哈。看美劇看多了,這種小技巧還是有學到的。感謝支持!

0
ckchuang
iT邦新手 4 級 ‧ 2020-09-16 12:25:10

花時間去學習重複的工具或技術,是一種浪費。...所以我不建議重複學。

原本還想去學學 React,看完這個建議感覺可以專注在 Vue 就好,去學更多原本不會的技術。

期待下集~

Bernard iT邦新手 5 級 ‧ 2020-09-16 14:02:22 檢舉

ihower 這個建議也讓我有所反思。我會認為,如果你在工作上需要使用 React,能馬上學以致用,那我覺得可以。

有或是你有嚮往的企業,但他們指定的框架是 React,那樣我也覺得可以。但單純為了「學習而學習」,我也覺得不必要。

ckchuang iT邦新手 4 級 ‧ 2020-09-16 14:40:02 檢舉

恩 沒錯,原本講的不夠精確,應該是指「較沒必要為學習而學習」這一點,但若是工作上有需求仍要能快速轉換

Bernard iT邦新手 5 級 ‧ 2020-09-16 14:44:20 檢舉

嗯。非常同意。在下集有補充。感謝 @CK

2
Max
iT邦新手 5 級 ‧ 2020-09-17 12:46:17

和 ihower 大大共事兩年,他的哲學完全體現在工作和帶團隊上
好有感

Bernard iT邦新手 5 級 ‧ 2020-09-17 21:28:47 檢舉

@Max 大!你出現了!We miss you /images/emoticon/emoticon07.gif

Youchi iT邦新手 5 級 ‧ 2020-09-17 23:38:20 檢舉

@Max yes we miss you!!!

我在看這個文章的時候也是覺得好有感!整個 ihower 浮出螢幕 :)

Max iT邦新手 5 級 ‧ 2020-09-23 12:04:39 檢舉

(*´∀`)~♥

0

不錯阿 這篇好啊

Bernard iT邦新手 5 級 ‧ 2020-09-27 16:27:57 檢舉

感謝!很高興你喜歡!

我也是有在寫鐵人賽,跟你的主題很類似...會不太一樣@@
https://ithelp.ithome.com.tw/users/20063465/articles

我要留言

立即登入留言