為什麼成為一名工程師這麼難?從程式新手到準工程師的必經之路

2015-03-30 11:53

? 人氣

因素1:資源密度 Resource Density

[啟動LINE推播] 每日重大新聞通知

(圖/INSIDE)
(圖/INSIDE)

在第一階段中有提到,當零經驗零基礎的你開始學習寫程式時,身邊有著無數的資源跟工具等著你來運用。到 Google 搜尋打「Learn to Code」你會查到超多程式學習平台、教學文、教學影片、甚至經驗談,讓你感到萬分的親切及溫暖,其「手牽手心連心蜜月期」的稱謂當之無愧。

(圖/INSIDE)
(圖/INSIDE)

然而到了第二階段時,這些教學資源的數量將大為驟減,任何一個剛脫離初學者的程式學習者都能夠證實我此言不假。初學者一開始遇到的障礙都是「一般常見問題」,教學文、教科書裡就會註明了;後期由於作業難度以及個人需求,問題才漸漸複雜起來,要從 Stack Overflow 或是一些程式人的部落格中去找尋解題線索。一直到在你遇到的問題已經棘手到網路上根本找不太到線索的時候,你便進入了下一個階段。

第三階段:絕望沙洲

要了解進入第三階段的關鍵,就要了解另一項影響著各階段變化的重要因素:知識廣度。

因素2:知識廣度 Scope of Knowledge

(圖/INSIDE)
(圖/INSIDE)

「知識廣度」也就是度過每個階段你所必備的知識領域範圍。剛開始時你需要吸收的知識很集中,不管用哪種程式語言、不管功能是什麼,首先都要學會變數型態、宣告語法、迴圈及條件判斷式等等,這時隨便請一個工程師教你都是一樣的,因為「重要須知」就是這幾點而已。

然而學完基本功後,你所需的知識領域會一下子擴展很多,像是開始學習物件導向或是著重演算法的效率,你會需要扎實的電腦科學背景來應付,而且每一個應用都可以牽扯出更多的變化... 相信我,這不是幾堂 MOOC 課程就能救得了你的。

在這個時期,萬能的 Google 也只會丟給你更多你不懂的東西,根本查不到相關的線索!最糟的是你根本不知道你什麼不知道。(You don't know what you don't know.)。於是「學也學不完、越學越不懂」的無力感排山倒海而來,進入最最難熬的第三階段 –– 「絕望沙洲」。

這個階段顧名思義像是在橫越沙漠般,是一段非常長且寂寞的旅程,讓你有不知何年何月才能走出來的絕望感。在一望無際的沙漠裡,根本搞不清楚東西南北,資料查了半天毫無斬獲,還不時被海市蜃樓(錯誤資訊或看似可行的解決方案)給誤導,搞得灰頭土臉、頭昏眼花,在這個階段曬死、渴死、絕望死的有為青年更是不計其數。

(圖/INSIDE)
(圖/INSIDE)

但只要在絕望沙洲裡熬下去,接下來就會自在許多了!累積足夠的經驗,程式的錯誤就會大量減少、達到一定知識水準,就能準確判斷問題的方向切入核心,工作效率因而有所增進,知識廣度也會慢慢聚焦。等你拖著一身的疲憊終於走出這荒漠時,就進入了最後的階段。

第四階段:創傷後的恢復期

踩著千萬人的屍體成功橫越了沙漠,你的自信心開始回升,Google 功力也可以說是神人的等級。到了這個時候,Hacker News 的新聞以及超硬的 MOOC 課程都不成問題,你也選定了某個程式語言跟框架來專研,而且有能力製作出可以正常運作的應用程式了。

但你心裡深處總有著隱隱的不安,覺得程式能「用」但其實程式碼凌亂無章,工程師的頭銜下其實是誤打誤撞進這行的半調子,雖然你似乎具備了一切就職條件,卻總害怕面試官發現你根基薄弱的電腦知識... 你正在經歷「創傷後的恢復期」。

在飛越困惑之崖、橫越絕望沙洲之後,你應該已經學會該學的、做了該做的,成為一個名符其實的工程師,卻總覺得自已資質平庸根基不穩,雖然有成功打造出一個個專案而信心回升,但老是感嘆自己與心目中「專業工程師」仍有一大段差距...,這些都是「冒牌者症候群」(Impostor Syndrome)在作祟!

在這創傷後的恢復期中,你可能會經常自我懷疑,但只要順著這波效率提升信心也回升的潮流繼續努力,在能力與自信達到一個程度時... 恭喜你:You Are Job Ready!

(圖/INSIDE)
(圖/INSIDE)

本文經授權轉載自INSIDE

關鍵字:
風傳媒歡迎各界分享發聲,來稿請寄至 opinion@storm.mg

本週最多人贊助文章