自學程式門檻難突破? 校正 3 個心態跨越學習障礙

程式開發相比於其他技能,有非常多的網路學習資源,卻也容易讓新手迷失,先來檢視自己的學習問題!
評論
Photo Credit:Free-Photos on Pixbay
評論

本篇來自AppWorks投稿,INSIDE 經編審後出刊。作者:田育欣,Team AppWorks 原生成員,2011 年起以實習身份加入,畢業後升格為投資分析師,而後轉任AppWorks。

近年來線上課程蓬勃發展,不少學習平台如 Udemy、Udaciy、Khan Academy 等,都提供多元豐富的軟體開發課程,引領「自學程式」風潮。若是應用得當,半年以內就可以學有所成,讓沒有相關背景的新手,踏上軟體開發之路,現在,想要轉職到程式開發相關的工作,其實不需要再念四年大學或兩年研究所。

儘管如此,在 AppWorks School 過去三年多來,輔導上百人轉職成軟體工程師,其中有不少申請者都是在自學途中,遇到難以獨自突破的瓶頸,所以選擇報名參加 AppWorks School 為期16 週的免費程式課程 (目前有 Android、iOS、Web 專班)。因此,我們想從實際的觀察中,分享我們認為程式自學者應該校正的三個心態,希望能幫助更多人跨過學習障礙,早日成為心目中的軟體工程師:

一、釐清學習目標,先專注在一個領域上

首先,軟體開發新手在一開始接觸程式開發時,很容易迷失在廣大的 CS 知識中,不知道該從哪裡下手。也經常會有各種道聽途說:「聽說 Python 很適合新手」、「聽說前端比較好入門」、「聽說 Java 的工作機會最多」,在各種資訊轟炸之下,許多初心者經常會一下學 Python,一下學 JavaScript,但都侷限在很初階的程度,且往往學到一半,才發現跟自己預設的目標沒有直接相關,花費了大把的時間跟精力,卻徒勞無功。

我們建議,新手在程式開發上可以採取「目標導向式學習」,先設定一個清楚的目標,再去安排自學計畫與步驟。例如,如果想要做網頁應用,那麼應該直接從 HTML / CSS / JavaScript 入門;如果想要開發手機 App,則依開發的平台 iOS 或 Android 來選擇學習 Swift 或 Kotlin,減少繞遠路的時間成本。

如何安排自學路徑?實際上,網路上已經有不少軟體工程師的過來人,分享從事各種工作應學習的技能樹 (如下圖),新手在學習的過程中,可不時確認自己正在學習的內容,是否與目標相關,若發現偏離目標,才能即時喊停,將學習的效益發揮到最大。

前端開發技能樹 (部分擷取),清楚描繪新手的學習路徑。資料來源:GitHub

圖說:前端開發技能樹 (部分擷取),清楚描繪新手的學習路徑。資料來源:GitHub

二、檢視學習瓶頸,增加時數或深度

選擇要專注的領域後,另一個新手常見的誤區,就是經常反覆學習「已知的知識」。變成一直在新手圈裡跨不出去,我稱之為「新手舒適圈」。舉例來說,許多 Web 開發新手,經常反覆學習各種 HTML 標籤,卻遲遲做不出想要的網頁畫面;Android 開發新手,則持續練習處理靜態的畫面、簡單的按鈕互動,卻不知道怎麼串接後端資料、處理用戶的網路行為。

之所以會有這個現象,背後通常來自兩個原因。第一,許多新手都是透過影片或短期課程兼職學習,若投入練習的時數不夠,很容易學了就忘,可能前一晚看了影片,隔天有事情沒練習,後天就忘記了,只好重看一次複習,若這次又來不及複習,過幾天可能又得重來一次,就這樣無限循環,卻遲遲無法突破。

這種情形通常是練習與實作的時間不足,必須重新安排學習計畫。我們建議,若想兼職學習有成,每週至少需花 15-20 小時,一次至少安排連續兩小時的時段,例如,平日晚上需有 2-3 天晚上,投入 2-3 小時,週末兩天則需各投入 6-8 小時,才能有所累積。

第二個原因,則是當新手想挑戰較進階的題目、感到困難時,很容易會想「一定是我的基礎不夠好,才會不知道要怎麼做」。所以會反覆的觀看已經看過的影片,花時間重複學習基礎知識,但往往只能加深原有的記憶,對眼前的問題仍然一籌莫展。

在實務上,進階的問題,很可能需要進階的知識才能解決,原本的學習資源或許未能涵蓋。因此,建議這時新手該做的事情,是搜集、閱讀更多「進階知識」,甚至在這個階段,還需要觀摩前人的做法,先模仿、再理解,才有機會突破瓶頸,讓自己更上一層樓。

這不代表基礎不重要。而是要提醒,如果發現自己總是一樣的東西學了又學,或同樣的影片看了三次,卻說不出自己的成長、做不出想要的東西時,就該檢視到底是投入的時間不足,或者該學習更深入、更進階的內容。

三、多開口請教,從別人的經驗中學習

通常初心者都有 1-2 個工程師朋友,當初也可能是受到他們的啟發所以想學習程式。但是在自學的過程中,卻往往不敢開口請教,以為是自己讀得還不夠多,所以不好意思麻煩別人,卻導致在一個問題上花費了過多的時間,累積不必要的挫折感,終至放棄學習。

舉例來說,許多開發環境都有系統 Bug,若待機久了運作上會失常,即使是沒有缺失的程式碼,也有可能跑不出應有的結果。此時有經驗的工程師,會試著「重新開機」或著手解決系統的問題,不到 10 分鐘問題就解決了,但缺乏實務經驗的初心者,通常不會想到原來不是程式碼的問題,糾結許久卻苦無頭緒,可能要等到兩、三天後,意外將開發環境關掉重開,問題才突然解決。

這種心態,與其說是「怕麻煩別人」,通常往往是「怕自己問了笨問題」。但問題本身其實是中性的,越是去評價問題的優劣好壞,越容易讓自己陷入不敢提問的困境。反之,若能將每一個問題單純視為學習的機會,越快解決問題,就越快累積經驗值,才越有機會成為合格的軟體工程師。

當然,靠自己的能力解決問題,會有很大的成就感,但若發現自己已經困在同一個問題好幾個小時了,不妨開口向工程師朋友請教,透過他們的經驗,幫助自己更快速成長。如果真的覺得朋友很忙,網路上的技術討論社群如 Front-End Developers TaiwanAndroid Taipei[email protected] 等,都很歡迎新手張貼問題,也會有熱心的工程師前輩幫忙解答。

總結來說,拜網路產業開源風氣之賜,程式開發相比於其他技能,有非常多的網路學習資源,卻也容易讓新手迷失,希望以上三點提醒,能夠幫助初心者檢視自己的學習問題,進而有所突破。

責任編輯:Anny
核稿編輯:Mia


亞洲.矽谷 x AIdea 徵案成果:新創解決「香水百合價量預測」、「動態足壓影像辨識」AI 模型

國發會亞洲・矽谷計畫執行中心幫助「台北花市」、「阿瘦皮鞋」兩家企業數位轉型,成功導入 AI 應用以提升企業產能及附加價值。
評論
Photo Credit:亞洲・矽谷計畫執行中心
評論

國發會亞洲.矽谷計畫執行中心與工研院 AIdea 人工智慧共創平臺合作「產業出題、 AI 解題」徵案,協助台北花卉公司(台北花市)及阿瘦皮鞋兩家企業出題,題目分別為「香水百合價量預測」、「動態足壓影像辦識」,前後歷經半年的徵案與解題,並邀請資料專家診斷和協助,吸引超過 700 名團隊參與。此次解題優異的新創公司包括:台灣資料科學、庭躍、羅伯斯特及索妮婭四家新創團隊。

亞洲.矽谷計畫執行中心李博榮行政長表示,執行中心持續以「完善創新創業生態系」及「推動物聯網創新研發」為兩大主軸,本次徵案集結了資料科學家與輔導團隊進行訪視企業,從前期的釐清企業需求、檢視企業的數據資料,到最後定義題目與公開解題。活動對企業數位轉型做了一個很好的示範,成功借外部創新能量,導入 AI 應用,以提升企業產能及附加價值。

此次參與出題的台北花卉公司副董事長呂瀅瀅表示,台北花卉公司一直在尋求如何解決花卉的價量問題,擺脫過往農產品容易發生價格過高或是崩盤的情況,如過年期間花卉的需求波動高,預測非常困難。台北花卉希望能夠透過 AI 預測模型,維持花卉的價量,並且穩定造福農民。這次「香水百合價量預測」的準確度高達 7 成,也是非常不容易,之後不排除再找其它的花種進行價量預測,期待在未來能夠將此套 AI 預測導入花卉公司價量預測的標準流程。

阿瘦皮鞋的「動態足壓影像辨識」,參與解題的隊伍能充分利用電腦視覺的技術,來預測足型的最高點及最低點。在第一名的模型中,每個點的平均距離誤差只有 4 個像素,是非常好的結果。未來應用落地後,將大幅提升標註精準度,對於後續的數據應用賦予更高價值,同時也符合阿瘦皮鞋帶給客戶足下與生活美好的企業理念。

工研院巨資中心副組長洪淑慎強調,企業若要推行 AI 應用,首先資料的收集是很重要的步驟,因為 AI 需要大量且正確的資料來學習,達到分析預測的結果;其次是需要企業管理的高層支持,才能由上而下地順利推動,成功率較高;最後則是跨領域的共同合作,由各個不同的領域專家與 AI 專家一起合作,才能達到最佳效果。

後續亞洲.矽谷計畫執行中心與 AIdea 團隊,將安排解題優異的新創隊伍與兩家出題企業進行媒合,以落實企業注入外部創新能量,實現 AI 數位轉型的目標。

本文章內容由「亞洲.矽谷計畫執行中心」提供,經關鍵評論網媒體集團廣編企劃編審。