前 Google 技術長說:「寫程式不容易」 軟體工程師聽起來是一個很美好的工作,其實不然。你知道,為甚麼嗎?

寫程式不是一項技術,而是三項能力的總合

看著軟體工程師的手指在鍵盤上飛舞,一行一行的程式嗎就傾瀉而下。感覺寫程式是一個困難的事情?錯!它是三件困難的事情。

「分析解決問題的能力,溝通能力,撰寫程式碼的能力」

寫程式碼本身只是將你整理出來的資訊在電腦上實作出來而已。這已經最後階段。在實作以前,你必須具有分析問題以及解決問題的能力。

把專案以及問題拆解成一個一個的小區塊,直到你知道要怎麼解決為止。這過程中,會面對很多複雜的邏輯以及演算法,考驗你對網路、硬體的理解。

寫程式絕對不是單打獨鬥,寫程式是團隊合作!因此溝通能力是一個優秀的工程師的必要條件。

寫程式就像蓋房子,每個人有不同的職責。當你今天要把樓梯往左移動十公尺的時候,有可能你就需要跟做地板的人說,請他跟你同步調整。更有挑戰性的是,客戶隨時會給你規格的變動,強迫改掉已經蓋到一半的房子的設計圖,這時候好的溝通技巧能讓整個團隊用最有效率的方法達成使命。

很多軟體工程師可能同時具有兩項能力,培養到同時具備「分析解決問題的能力,溝通能力,撰寫程式碼的能力」能明顯地讓你的工作順利不少。

你須要很多連貫的時間

很多工作可以把工作量切成一小塊,利用瑣碎的時間就可以完成。例如說,寫出一個文案,建立報表給客戶。

  1. 了解問題
  2. 讀關於解決問題的文件
  3. 把剛剛看過的文件實作出來(寫程式)

這一連串的流程,少則30分鐘,多則數個小時。只要產生中斷,回到原本的工作跟思緒狀態,都要花多額外的時間,最壞的情況甚至要從頭開始。因此,寫程式你必須要盡量保持工作時間的完整。

抽象化的思考

簡單來說看一個東西要看出它的本質。

例如說你看到一隻黃色的狗叫做Money,寫程式的時候你有很多種看他的方式。他可以叫做 Money, 也可以叫做狗, 也可以叫做黃色物體,也可以叫做生物,有很多不同的方式去看待這個物件。

如果擁有抽象化的觀念,可以把每一個東西的關聯性看得很清楚,亦可以簡化程式碼,提升工作效率以及程式碼執行效率。

沒有系統式的學習,且永遠沒辦法學完整

不像是物理、數學,等其他領域是有框架的。電腦科學的世界是以指數成長的。
雖然是同一種語言,每天都有新的架構誕生,永遠沒有辦法全面的學習一種語言或內容。

通常,學習的內容,只會足夠應付你須要的實作的專案。我們不可能,也沒有必要,把所有該語言的知識學會。

因為電腦科學無邊無際,所以人們讀文件的時候常常會迷失方向,做了沒有必要的事情。例如說,你沒有必要知道某一個語言它的組譯器是怎麼運作的。因此,確認好每天的目標,並確認它們的優先程度是很重要的事情。

你喜歡寫程式嗎?

大多數的軟體工程師,都覺得寫程式是一份苦差事。他就只是一份工作

不像是其他 別人的認為的「有趣」的職業,像是駐唱歌手, 軟體工程師 一天之中大多數的時間都在面對電腦,不少人覺得是一個枯燥又乏味的工作。如果你沒有打算乖乖地坐在桌子前面一整天的準備的詁,還是不要進到這一個大坑中吧。

YouTuber 「Techlead」就說過,如果你想要成為一個厲害的 Programmer 你必須去讓自己喜歡這一份工作。

其中一個很簡單的方式,就是讓自己的工作環境盡可能的舒服。讓你願意做在電腦桌前面享受工作。你可能需要一個你喜歡的鍵盤滑鼠、一個不會使眼睛疲勞的燈源(檯燈)、一杯喜歡的飲料(軟工很多很愛咖啡不是沒有原因的。)

你花在電腦前的時間越長,就會越厲害。

最後修改日期: 28 7 月 2019

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。