回應業界部份人士對 Coding Bootcamp 常見之質疑
筆者由開始在Coding Bootcamp一行創業以來,固然在教學上得到不少滿足感,始終這一行是為了幫助同學轉行而存在的,因此當同學成功找到一份軟件工程師的工作,滿足感的確是無與倫比。 然而,在這趟旅程之上,常常都收到不少質疑,絕大多數更是來自於業界同行。 因此,本文就集中回應一下,解答一下大家的疑惑。
質疑一:「十五星期四個月時間太短!學Design Pattern 、Algorithm、 Data Structure都唔夠啦!點學得到寫程式!」
筆者認為要解答這個疑問,首先我們要將上面提到的Design Pattern
、Algorithm
、Data Structure
分別準確定義一下。
如果Design Pattern
是指Erich Gamma等作者著作中的所有內容的話,那筆者認同你的看法,四個月不足以學
習所有Design Pattern
,但反過來想,又有多少電腦科學系畢業的軟件工程師在剛畢業時候就可以靈活運用Decorator
、Facade
、Observer
呢?將對高級工程師的要求,放到初級工程師身上,不是很滑稽嗎?
Data Structure
與Algorithm
難有一本經典作為定義,姑且使用維基百科的條目List of Data Structures及相對應的List of Algorithms: Array
、Map
、Set
、Tree
等當然很重要。但問心吧,有多少在職軟件工程師,能夠在不查參考下寫出Priority Queue
呢?Heapsort
的Big O
又是甚麼呢?
A* Search Algorithm
又應該怎樣寫呢?這些都是Data Structure
與Algorithm
的一部份,但大家記得住嗎?記不住的話,還是要重新Google重讀參考,那與一個Coding Bootcamp
畢業生又有何分別呢?
強如Homebrew
的作者,都不記得怎樣Invert
一條Binary Tree
了,難道他也是一個壞Software Engineer
嗎?
質疑二:「不是正規CS畢業,在Bootcamp讀幾個月,點做到Programmer?」
其實Tecky Academy三位創辦人,本身已有兩位不是傳統電腦科學系畢業的,但亦無礙我們本身成為軟件工程師及創辦自己的初創企業。究其原因,正是因為軟件工程師根本沒有牌照制度。比起傳統專業行業如土木工程師、律師、醫生等有牌照考試之行業非常不同。其中原因在於資訊科技發展過於迅速,新舊技術來來去去,根本難以為軟件開發一行定下有意義的考核。因此,在軟件開發世界,從來都是Portfolio為王
,能夠完成project
的軟件工程師,就達至行業最低入行標準。正因如此,僱主才會聘請我們Tecky的畢業生,正因有實際專案作為佐證。
有趣的是,往往口出批評的業界人士,自己也從來沒有經歷過任何牌照考試的洗禮,最接近的考核,也大概只有求職面試時的Code Test
。自己在業界中打滾多年,卻要求後來者要符合正規CS畢業的要求,才算是一個「正統」的軟件工程師,而眾所周知的是,完成一個CS學位起碼須時四年(兼讀制需要八年),這難道不是強人所難嗎?
請注意,筆者並不反對資訊科技界需要發牌制度,只是筆者很懷疑,如果資訊科技界真的有發牌制度的話,不是為難了在職的Expert Beginner
嗎?