轉職寫程式,從哪方面下手才好?

2020/06/11閱讀時間約 4 分鐘
React 框架
常見入門款Python、統計分析用R、轉職培訓JAVA、C#、IOS用Swift、前端萬用JavaScript、學校基礎C語言、進階C++、甚至是新潮的語言go,程式語言那麼多種到底該從哪個入門好?難道從Scratch開始?
小孩子才學Scratch,我全都學!
對於初次接觸程式的人來說,眾多說法各有各的道理,大多不出以下幾種:
  1. C/C++ 從入門到放棄,建立厚實的基礎,看開後棄坑
  2. Python、JavaScript等平易近人,減少排斥感
  3. 培訓機構JAVA起手
撇開各種語言的優缺點來說,基本共通的學習內容不外乎
  • 資料型態(Data type)
  • 邏輯判斷(if、else if、else)
  • 迴圈(for loop、while loop、do while loop)
  • 函式(function)
  • 自訂資料型別(物件導向思維)
上面每一項在各自的程式語言中都有不太一樣的語法,但是觀念上都是一樣的,也才會有當了解其中一種語言後,學習其他語言會很快就上手的說法。
以我自己為例,系上開課使用Fortran77,拿去問問資工的同學還被笑說沒聽過。當時期末還差點被當掉,印象深刻隔壁同學隨便寫個hello world就呈上去了,只為了至少能讓編譯完成有個基本分數。之後修了一堂分析的課程,教授要求寫個project當做期末成績,想說反正都只要分析結果,用Excel函數寫一寫或是MATLAB總行吧?沒想到教授規定只能用Fortran,並且每個禮拜報告進度,實際看我們寫的code,順便說說以前學生時期程式碼用打卡機編譯的故事,這才稍微理出了一點頭緒。
在學期間,台大的同學推薦了我一個開放式課程網站--Coursera。那時候主要是去聽聽呂世浩教授講述的秦始皇,其中也在上面發現了不少好課程,主要都是為了內容而不為了證書,所以每一堂感興趣的課我都選擇旁聽,另一方面國外課程也順便當成聽力練習,中文用2倍速,英文則採1.5倍速掠過。隨後看到網路上推薦Coursera的Python課程--Python for Everybody,終於弄清楚寫程式是怎麼一回事,而且有了Fortran的底子後,要上手python容易許多。
相較於其他產業或科目,資訊類的資源多出許多,只是大部分優秀的資源都是英文。在Youtube上面發現哈佛大學的資訊公開課--CS50,真的是驚為天人,首先講師的語速大概是正常外國人交談的速度,因此我不太敢開加速。再來是講師的表達能力極佳,用詞講解精準到位,因此我又從C語言開始認識了一遍,開始有一些底層的債主來討技術債了,像是記憶體管理、指標等等。另外還有一個freecodecamp的頻道,把一些演算法、資料結構、資料庫、網路...等等的概念弄懂,硬要說起來算是偏向後端工程師,比較注重開發的效能跟寫法。
至於坊間開設的課程,或是大多數轉職成功例子都是偏向前端工程師為主,基本上是HTML、CSS、JavaScript組成產出一個基本的作品,也許常常會被戲稱為碼農,剪剪貼貼生出一個可以動的頁面。只是就像設計相關產業一樣,一個好的設計不一定會被重視,既使設計出來的產品有它獨有的價值。
寫到這裡,上面有些部分還是扯遠了。我想如果回歸當初剛碰程式的自己,我會告訴自己:
換個老師、換個語言,也許就會海闊天空。
哦不是,應該要說找個講解清楚,自己可以接受的課程作為入門,語言特性倒是其次。或許會常看到Python應用在資料分析、大數據、網路爬蟲,JAVA、C#用來開發系統,C/C++用來寫韌體,但是這些應用層面都不是一個完全沒接觸過程式的人首先要考慮的要點。可以用python寫遊戲、當然也可以用JAVA、C++來寫;可以用Python做網路爬蟲,當然也可以用Excel VBA來實作。舉個生活化的例子,去鹹酥雞店跟老闆說要雞排要切不要辣,老闆可能用菜刀剁一剁,也可能拿把剪刀剪一剪,得到的是同樣的結果,差別在哪? 效能!
10會員
54內容數
遇到的坑、解過的題、新知識的探索、舊時代的遺毒!? 工作後我發現,文件更新往往跟不上新需求的更迭,犯錯的歷史總是不斷重演。因此,我改變了方式,蒐集從程式上、系統上的每一次異常處理過程,好讓再次遇到相同的問題時能快速應變。此專題就是我的錯題本,期待日後不管在工作上或交流上遇到難題,都能輕鬆地應答:有什麼難的,我都踩過。
留言0
查看全部
發表第一個留言支持創作者!