跳到主要內容

發表文章

學APCS程式檢定對未來有用嗎?

有些朋友問我,學APCS除了升學以外,對未來就業之類的有用嗎? 我的觀點是 學APCS有用,只學APCS沒用 會發出這種疑問的,多半對APCS的題型有相當了解了,因為APCS要考滿級分真的很難,對於演算法要有相當深刻的理解,而這樣的熟練度,大多數的電腦工程師在他的職業生涯都用不到。 大部分的工程師不需要把Dynamic Programming、Greedy Algorithm玩得很熟練,能夠在30min之內解一題;只需要在程式效能不足時,知道有這個概念,然後去翻翻書,花個幾天去解它都沒關係。甚至大部分工程師,只要有能力寫一些”膠水”,把幾個現成的元件”黏”起來就好了,高深的演算法很多都有現成函式庫了,不太需要自己寫。 別誤會,我不是說這樣的工程師很遜。相反的,有能力用現成的元件,有效率的組成一個有用的系統,不要重複發明輪子,才是正確解決問題的方式。 所以學APCS對未來有用嗎?學到實作三級一定是用的到的,如果你有天分隨手考到實作五級當然很棒,但不是人人都有必要硬上五級,時間是世界上最貴的東西,應該花在更有意義的目的上面。 找到真實世界的問題,寫程式來解決,才是真正有用的能力 我 前面一篇文章 有提到,寫一個”口罩地圖App”就是很好的例子。若我要帶一組中學生來做這件事,大概有以下步驟 發掘問題 用戶訪談,確認需求 詳列規格書,把功能定義明確 小組分工,開發以下元件  使用政府開放的口罩資訊API  使用Google Map API  設計使用者介面  使用Web技術(JavaScript、CSS、HTML5),將以上黏成一個系統  利用一些工具,把Web系統包成App  宣傳這個App,讓更多人知道來使用它  收集用戶回饋,持續改善  只學APCS的學生,辦不到這件事,不學APCS的學生,也辦不到這件事。 開發”口罩地圖App”是一個簡單的例子,但真實世界裡面,光是”發掘問題”都不簡單。舉例來說,譬如參加棒球社的同學,能不能開發一個系統,把球員的數據輸入進去,幫助教練排出最有效的棒次?譬如說家裡開餐廳的同學,能不能開發一個系統,安排桌椅跟行動路線,發揮最高的坪效?社區偶爾有陌生人闖入,能不能開發一個AI系統,辨識陌生人並發出警訊? 程式能力只是解決問題的一部分,其他我講的部分,學校的老師都沒有辦法教

最適合高中生選的科系是什麼?

個人申請已經成為高中生進入大學最重要的管道,大約7成的入學名額都來自於此,個人申請有個特色是,只能選六個志願校系,六個都沒中就是落榜。有人會說:「我就是興趣廣泛啊,不能選100個志願校系嗎?多元入學怎麼這麼不多元。」 有喔,可以在分科測驗填100個志願,不過一則分科只佔約2成的入學名額,二則個人申請先舉行,不幸沒有錄取的話還是可以考分科,一般的學生都不會放棄個人申請。 個人申請這麼小氣的只開放六個志願,背後的原因是要倡導「適性發展」,如果學生早點確定興趣科系的話,再依照學測成績來做預估,六個志願不會太難填。 問題就在於,九成的高中生都不知道自己的興趣科系是什麼? 沒有提早佈局而去走個人申請的話,非常吃虧。 在學測通過門檻的情況下,個人申請還是有7成的機率會落榜。 舉例來說,一個高中生一直都把時間花在念學科,要填志願時,想想對多媒體還算感興趣,就填了大眾傳播相關科系,兩手空空的去參加甄試;另一個高中生,已經累積製作了數十則youtube影片,並有數千名訂閱者。顯然的,後者被錄取的機會高太多了。 可是如果真的不知道興趣在哪裡的話,該往哪個科系去佈局呢? 我會推薦資工、資管科系 主要有以下幾個原因 資工、資管是一個相對好念的科系: 一般大學裡面,理學院學的東西比較抽象,通常是最多人念不下去、被退學的科系;電機系的三電一工也是一堵高牆。相較資工學的東西,通常有一定邏輯就能理解,比較不抽象而且應用性高。從另一個面向看,物理系念的東西,是在想辦法理解上帝的發明,而資工系是在理解人類的發明,後者當然好懂很多。 資工 、資管 是最好找工作的科系之一: 資訊業界有相當多非本科系的人,由於他們的本科系畢業之後不易找工作,自學轉職成電腦工程師,可見電腦領域的人力是供不應求的,本科系畢業的當然極為吃香。電腦相關的工作很多而且很廣,從不太寫程式的MIS(資訊管理)、需要大量溝通的PM(產品或專案經理)、專門寫程式的programmer、軟硬整合的Maker等等,資工畢業的人即使各人強弱項不同,都還是能在資訊產業找到適合的工作,是學有所用比例很高的科系。 一台電腦發大財: Google、Microsoft、Apple、Facebook這些科技巨頭的創辦人有什麼共通的特色?他們都是電腦科系的中輟生,書唸到一半發現更有價值的事就離開學校了。寫軟體有個特色,只