每個資工系學生都知道這套流程。你拿到一份作業,用 localhost 在筆電上寫程式,把資料夾壓成 zip,然後在午夜前交出去。只要你的畫面上能跑,就拿 A 然後繼續下一個。
接著你開始實習,或是嘗試為真實使用者做一個真正的應用程式,現實就會狠狠打臉你:
在學校,你的程式碼是暫時的;在真實世界裡,你的程式碼必須活下去。
實習和開發全端軟體,讓我在六個月內學到的實務工程,遠比多年課堂講授還多。以下是大學從來沒告訴我的 5 個簡單事實。
在大學裡,只要你的程式在筆電上能跑,事情就完成了。
但在真實世界裡,把程式寫出來只完成了一半。 把它放上網路(部署)才是真正工作的開始。
我第一次嘗試部署專案時,整個東西全壞了:
學校教你如何在本機寫程式。業界教你如何真正把那些程式放到網路上,而且不把它搞壞。
大學作業給你的都是乾淨的資料。每個模擬使用者都會正確輸入姓名、欄位不會空白,而你的資料庫呼叫也從不失敗。
真實使用者可不是這樣:
做真實應用程式教會我寫出防禦式程式碼。你必須建立載入畫面、錯誤提示,以及備援方案,這樣你的應用程式才不會在真實使用者一碰到的瞬間就崩潰。
大學很愛複雜的數學和巧妙的演算法。這會讓你覺得「好程式碼」一定要看起來很複雜。
但在真實工作裡,聰明的程式碼是場惡夢。
沒有任何資深工程師想讀一個十行的函式,卻被包成一行令人困惑的 JavaScript。他們想要的是命名清楚、一下就看得懂的程式碼。如果別人(或半夜 2 點的未來你)沒辦法輕鬆讀懂你的程式,那它就不是好程式碼。
在學校,每個專案都從空資料夾開始。你知道每一行是什麼,因為都是你自己寫的。
在真實世界裡,你會被丟進一個有幾千行程式碼的大型程式碼庫,而那些寫程式的人兩年前就離職了。
學會如何打開既有專案、追蹤資料怎麼流動,以及在不弄壞其他三個功能的情況下修掉 bug,這是一項超重要的能力。大學幾乎從來不會為這件事做準備。
學校會讓你很害怕犯錯,因為一個 bug 會拉低你的 GPA。
但在真實世界裡,弄壞東西才是成長的方式。
我最大的突破,不是來自作業拿高分,而是來自把建置弄壞後,冷靜應對、翻查 logs 找出問題、修好它,並確保自己之後不會再犯同樣的錯。
資工學位會給你穩固的基礎,但把真實專案上線,才會讓你成為工程師。
如果你還在大學,卻在擔心成績和實際能力之間的落差:別再等課程跟上了。去做小專案、嘗試部署它們、找一份實習,然後不要害怕把東西弄壞。
照片由 <a href="https://unsplash.com/@domlafou?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Dom Fou</a> 拍攝,刊登於 <a href="https://unsplash.com/photos/people-sitting-on-chair-in-front-of-computer-YRMWVcdyhmI?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText">Unsplash</a>
原文出處:https://dev.to/maame-codes/localhost-is-a-lie-everything-uni-missed-about-real-world-tech-66n