想「轉行」靠寫程式吃飯嗎?一個自學程式語言幾乎將自己逼瘋的親身經歷 – 軟體工程師 Quincy Larson

Quincy Larson 現在是線上程式語言學習平台 Free Code Camp 的軟體工程師,前陣子他發表了一篇文章描述他自學程式語言而幾乎被逼瘋的過程,也在最後給真心想「轉行」的程式新手們一些過來人的意見。
評論
評論

軟體工程師薪水正在逐年攀升中,2014 年軟體工程師的平均年薪達 $97098 美元(台幣三百萬)之高 1,學習寫程式的熱潮更是席捲全球,下自 8 歲上自 80 歲每天都有人「Hello World!」一下,看著矽谷創業公司迅速崛起、一夜致富的空前盛況,相信許多人都正在考慮學寫程式、轉行當軟體工程師。

人人都能學寫程式,這點毋庸置疑。只是在你「轉行」之前,也許你會想聽聽 Quincy Larson 從朝九晚五上班族「轉行」軟體工程師的親身經歷。

Quincy Larson 現在是線上程式語言學習平台 Free Code Camp 的軟體工程師,前陣子他發表了一篇文章描述他自學程式語言而幾乎被逼瘋的過程,也在最後給真心想「轉行」的程式新手們一些過來人的意見。

在此分享 Quincy Larson 的文章 《A Cautionary Tale of Learning to Code. My own.》,本文非逐字翻譯,內文細節可能有筆者多加琢磨或改寫以便閱讀,請勿見怪。

一個學寫程式的警世故事 —— 我的親身經歷

我是一個普通的上班族,平時穿西裝、坐辦公室,過著朝九晚五的生活,但腦裡一直有個模糊的創業想法。有一天我無意間在酒吧聽到隔壁桌的客人大肆討論著他藉由「Ruby」來自動化他的日常工作、大大提高了工作效率。我心想:「『Ruby』,是吧?」回家後我立馬上網搜尋「Ruby」,十五秒後我已經開始學起程式語言 Ruby 了。

一個星期後,我參加了人生中第一個駭客空間(Hackerspace),聽大家討論著程式語言像是 Scala、Clojure 跟 Go,太多新知需要吸收了,當天我抱了三本厚厚的程式語言書回家看,每本都看了 50 頁左右。

身邊的一個朋友聽到我在學程式語言,他建議我應該要先把 Emacs 學好,在我學 Emacs 時,另一個朋友走過我身邊發現我在用 Emacs,他跟我說:「你怎麼會選用 Emacs 呢?!難道你不知道 Vim 比較好?」

於是我開始記 Vim 的鍵盤指令,這個時候的我覺得「下指令下得越快= 寫程式寫得越快」,還甚至因此換了 Dvorak 鍵盤 —— 程式開發者公認最有效率的鍵盤。

一段時間後,我已經用 Linux 作業系統用得很順手,還在 Udacity 上學習 Python。經過七個月的自學,我應徵上人生第一個「軟體工程師」職位。

公司那時決定用 Ruby on Rails 來構建他們的產品,雖然我不會 Ruby on Rails,但公司認為我既然能自學 Python 跟 Django 並贏了一次駭客松,我自然也有能力學好 Ruby on Rails。

前幾個星期對我而言非常的難熬,並不只是因為我要學習一個全新的程式語言、熟悉一個全新的開發環境 RubyMine(整合開發環境,IDE)、而且跟一個陌生的團隊合作,真正讓我覺得痛苦難熬的是:

我發現過去是我自己選了一條特別艱難的路來折磨自己

在自學的那段時間,我花了幾個月獨自坐在圖書館跟咖啡廳裡專研如何在命令列環境下安裝工具、debug Linux 系統問題,有時因為一個漏寫的括號、分號而卡了老半天,我修了無數個 MOOC 課程,但一直到了第五個月我才真正有點「作品」可以放到網路上,這些過程讓我相信程式開發是個永無止境的掙扎之路。

結果看看我身邊的同事們,他們幾乎很少因為語法錯誤、打錯字、漏了個符號這種小事而卡關,因為他們的 IDE 都先把這些錯誤抓出來了;當遇到問題掙扎幾分鐘還解不出來時,他們會直接把問題丟給朋友,互相幫忙 debug;在開發程式時,他們總是在對方的位子隨性的來來去去互通有無。

我的隊友他們十分忠於「自己的一套工具」,當然在許多場合(例如駭客松)裡他們應該都曾玩過許多不同語言、不同框架,但 他們主要專注於精進自己現有的工具技能,對於能夠允許進入他們腦中「程式庫」的知識,他們的態度相對保守

就跟 ThoughtBot 等平台一樣,開發者只固定用少數但有效率的工具鏈(在這個例子裡,Rails, Vim, Postgres 跟 Redis),當開發者們只要全心全意的「用好」幾種關鍵工具時,他們全都成了可以互相合作溝通無障礙的專家。

所以我真正的問題是,如果限制一個團隊的軟體工程師使用同樣幾種固定工具可以讓他們擁有超高生產力,那學習寫程式的新手不也是在只學固定幾樣工具的時候能夠學得最好嗎?

其實線上的各種程式語言學習平台、程式營也是這樣教的,雖然聽起來理所當然,但是當你是一個人去面對這麼多的選項時,真的很難選擇該學哪一樣!我懂,因為我就是這樣經歷過來的,像是小狗在十字路口追逐來來往往車子一樣,追著一台又去追另一台,不斷的在原地漫無目的地橫衝直撞。

一名真正優秀的軟體工程師,他的知識領域應該是「T」字型的 —— 對任何領域都稍有涉獵但至少在某一方面專精到底。

結果在幾個月的埋頭苦幹之下,我發現我自己是條底線「_」...。

在我遇過跟我一樣情形的程式自學者們(我遇到非常多),其中大概多數人都在這樣的過程中喪失信心、迷失方向,甚至放棄了成為軟體工程師的目標,我不希望這些情況發生在你們身上。

學程式語言需要你「一心一意」

廢話就不多說,在此分享幾個我認為程式新手最容易犯的錯誤給你們參考:

  • 語言、框架、工具,一個換過一個,而且妄想著自己能夠每樣都精通。
  • 死守著自己「特製」的開發環境,死都不肯嘗試一些「現代工具」—— 被發明來方便開發者們合作交流程式碼、還可以自動除錯、自動填寫的神器。
  • 在還沒把基礎打好時,就想嘗試一些新興的工具,像是 Docker 或 Famo.us 等。

如果以過來人的身份給你們一個最重要的建議,那就是:「請一心一意」。

我也想問,如果你正在學程式的話,你認為你的學習計畫夠「一心一意」嗎?如果你的答案是肯定的,那就不用再往下看下去了,快回去唸書實行你的計畫吧!因為我並不想給一些會影響你現在計畫的建議。如果你的答案是否定的,那沒關係,好消息是你可以從現在開始「一心一意」。

首先,你得先做出一些決定來起頭:

  1. 選一種你希望能作為未來職業的軟體開發領域:Web、Mobile、Gaming、還是 Embedded?我個人會推薦走 Web 網頁端,因為比較靈活彈性,不過如果你沒興趣走網頁端的程式開發,那就去 Google「Getting started in ____ development」然後完全的投入你的身心吧!
  2. 選一種程式語言來學:JavaScript、Ruby 或 Python,每種程式語言有各自的網頁端開發工具(分別是 Node.js、Rails 跟 Django),除非你有特別的偏好,不然我會推薦學 JavaScript,因為 JS 是最普遍最受歡迎的程式語言。
  3. 選一個線上平台/課程來跟著學,這邊也推薦你幾個選擇:學 JavaScript 可以到 FreeCodeCampNodeSchool ;學 Ruby 到 TheOdinProjectTreehouse;學 Python 可以用 Udacity。要相信設計這些課程的專家們,而且依照推薦的流程循序漸進,不要跳來跳去。
  4. 選一個:買一台新的或二手 MacBook,不然就在你現有的電腦裡安裝 Ubuntu Linux。其他工具就按照你課程的需求跟著安裝就好,不要下載安裝一大堆有的沒的。

最後,當你做出上述四項抉擇後,前方的路就只有一條了,請保持清醒,忽略你在這條路上看到的新工具、新語言,他們是會逼瘋你、迷惑你的妖魔鬼怪,要一心一意地往前進,保持高度積極的態度逼自己每天有點進度,一天撥出半小時也好,只要有恆心跟耐心,你也能成為優秀的軟體工程師!

 

《延伸閱讀》

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息


圖解智慧國家四大關鍵科技,從不同角度帶你了解台灣的科技應用實力

大家都知道台灣有座半導體護國神山,也聽過許多媒體對台灣科技實力的盛讚,但台灣的科技實力到底強不強?我們從四個面向帶你看台灣作為「智慧國家」到底有什麼實力!
評論
評論

大家都知道台灣有座半導體護國神山,也聽過許多媒體對台灣科技實力的盛讚,但台灣的科技實力到底強不強?自己說不如讓國際單位做的調查更客觀顯示。瑞士洛桑管理學院(IMD)每年9月公布的世界數位競爭力(World Digital Competitiveness Ranking)評比,最近一次報告2021年台灣在全球64個主要國家及經濟體當中排名第8,獲得歷年來最佳名次。

而且值得關注的是,支持數位競爭力的核心要素之一,也就是「科技」競爭力。IMD評比報告揭露台灣拿下全球第2的佳績,從2018年的第11名年排名持續上升,顯見台灣無愧於科技強國之名。


科技小百科:
瑞士洛桑管理學院(IMD)是一個長期研究國家與企業競爭力,在國際上具盛名及公信力的評比機構,並自1989年起發布「世界競爭力年報」World Competitiveness Yearbook,其評比報告與調查結果更是各國政府擬定相關政策之參考。IMD每年會定期公布兩份競爭力評比報告,其一是「世界競爭力年報」,每年在6月公布,2022年台灣在63個受評比國家中排名全球第7名。另一份報告為「世界數位競爭力評比」World Digital Competitiveness Ranking,每年在9月底公布,本篇文章引用的資料為這份兩份研究。


也因為科技與國家發展息息相關,有哪些技術是台灣不為人知的優勢?或是未來產業可大力投資布局的領域?我們找出其中四大項與智慧國家最有關的科技,展現台灣具備強勁的科技能量,或許你已經受惠,也或許你能從其中找到發展的機會。

關鍵科技一、融合海陸空領域的多維通訊

隨著國家管理範圍逐漸擴大,通訊範圍多元且彼此關聯,相關科技如低軌衛星、5G通訊、海底電纜等,形成環環相扣的多維通訊聯網。

仔細洞察2021年的IMD報告,台灣在「行動寬頻的用戶比例」這項指標,拿下全球第1的傲人成績。顯見台灣在通訊基礎建設的投資及普及率,是走在全球領先位置。

尤其5G/6G關聯科技更是未來多維通訊的具舉足輕重的地位,原因是5G衍生的價值鏈相當廣泛,舉凡從晶片、模組、終端、邊緣、系統、到應用服務,可形成完整生態圈。為了強健台灣5G專網的自主技術與供應鏈,從2018年先後成立5G產業發展聯盟、5G垂直應用聯盟、以及5G Open Networking平台,逐漸形成5G國家隊。

除了把5G領先國視為戰略目標,當創新技術落地,更能帶來龐大商機。根據工研院的預估,將5G的小基站、邊緣運算、網路虛擬化等關鍵產品、模組、元件加總起來,2025年的市場規模上看2,510億美元(約新台幣7.5兆元),其他國家還在積極推動5G聯網建設,顯見相關商機仍有相當大發展空間。

關鍵科技二、新型態數位經濟與網路服務

邁向Web 3.0的交叉點,元宇宙被視為下一代網際網路的新機會,市調機構Gartner預測,2026年全世界將有25%的人口,每天至少有一小時投入元宇宙虛擬世界,進行工作、社交、教育、購物、娛樂等活動,並藉由虛擬貨幣、NFT進行數位資產的交易,虛擬經濟逐漸成形。

所謂元宇宙,需要以5G/6G高速網路為基礎,透過VR頭盔/眼鏡作為進入3D虛擬世界的載體,在元宇宙的各種互動體驗則需仰賴AI運算、雲端/邊緣儲存、區塊鏈等核心技術支援。人們在元宇宙內可以滿足從現實世界做不到的事情,形成穿梭虛擬、現實之間的生活體驗與商業模式。

近七成投入元宇宙相關應用的企業,認為元宇宙在未來5年一定會蓬勃發展,虛擬音樂會、虛擬時裝秀、媒體及產品聯名展示活動,將是元宇宙優先發生的商業體驗。

那麼台灣要投入元宇宙有何利基?解析元宇宙供應鏈版圖,主要可分為晶片、光電、通訊、AR/VR裝置、內容以及AI技術,台灣科技可從硬體方面,包含晶片、感測IC、光學零組件、伺服器等擅長領域切入。像是大家熟知的半導體大廠台積電,對於相關晶片的供應就至關重要,另外光電產業也有揚明光、玉晶光、中光電等企業,讓投影技術更精緻,再來連接元宇宙的通訊技術,也有聯亞來支援,而裝置軟硬體、AI技術則是有創意、世芯、智原等企業投入,最後想到AR/VR集大成者,就不能遺漏宏達電在這一塊的耕耘,同樣威盛電、佐臻、未來市(XRSPACE)等品牌也積極佈局,可見台灣已有完整的供應鏈,接下來有志於加入元宇宙的廠家,不妨從自身的專長去思考,相信不論是哪個領域的企業,都能有更多的創新、應用內容投入,完善整個元宇宙生態。

關鍵科技三、疫後時代興起的智慧型代理人 

近年因疫情持續延燒,越來越多領域開始導入「智慧型代理人」,像是零售業者引進半自動化機器,協助人力處理訂單、點餐;又或是醫院使用機器人,藉由AI辨識功能分擔部分醫護工作。

所謂智慧型代理人,以它所知的知識範圍內,自主完成人類所給予的指令任務。智慧型代理人發展至今,能協助人類的廣度、深度越來越多,主要是受惠機器學習的技術更為先進,加上其他的自動規劃、互相協調等演算法的成熟,讓智慧型代理人成為下一波產業發展重點。

世界先進國家紛紛把AI納為國家產業重要發展策略,台灣從2018年就推出「台灣AI行動計畫」,全面啟動產業AI化。發展至今,AI應用已從測試階段逐步應用於各式產業,資策會統計發現,掌握AI技術的新創企業在台灣有300家,逐漸摸索出不同的商業策略與獲利模式。

尤其資通訊、醫療照護是台灣兩大擁有頂尖人才的雙軸產業,在疫情之下,就可以看到醫療+科技所衍生的智慧型代理人應用。像是過去為了解決醫療量能不足,開發「5G智慧防疫機器人」,用來隔離病房消毒、運送餐盒及藥品物資,比傳統人力消毒方式有效節省50%時間,還能降低醫護人員感染風險,讓醫事工作更有效率。

關鍵科技四、資訊安全網保護每個人數位資產

我國面臨網路犯罪、駭客入侵政府、機關,甚至竊取個人資料事件持續增加,如何保護國民安心使用數位科技、保障財產安全將是未來重要方向。隨著AI普及所衍生的龐大資料量之隱私及資安問題,成為棘手的挑戰。從國際AI資安發展現況來看,歐盟在2021年提出人工智慧規則草案(Artificial Intelligence Act),鼓勵值得信賴且道德的AI進行研發與應用。微軟更在今(2022)年禁止提供AI推測情緒技術,並制定「負責任AI標準第二版」、Google則停止AI機器人具有自我意識、能與人類溝通等爭議事件,這些做法也都反映美歐在立法之際,業者也在努力自行節制敏感AI技術。

AI資安,是挑戰也是機會。未來,台灣政府與企業也須密切關注美歐相關草案的立法動態,找出AI規範的共同點,以此界定使用AI產品與服務之要求;因此,AI資安不僅需透過科技來防禦,更需要治理與法規,降低AI所帶來的衝擊。

另外,針對5G資安議題,台灣有展開大型科技防禦策略,包含5G資安防護系統、跨機關資安聯防。5G資安防護系統致力確保業者使用的5G系統具備安全、可靠、信賴,與國內5G專網業者進行服務驗證,以強化國產5G系統的整體資安防護能力。跨機關資安聯防的目標放在建立政府與民間的資安聯防體系,藉由橫向整合跨部會,全面提供威脅情資,減少機關隱匿資安事件,降低事件誤報與漏報。

持續提升台灣的科技能量 打造全方位的智慧國家

圖片資料來源:IMD 2022 世界競爭力年報

台灣的科技能量持續提升,從2022年的IMD世界競爭力年報可發現,而且該報告還指出我國擁有高素質勞動力、經濟活力、企業治理能耐、高教育水準等優勢。上述四項與智慧國家高度關聯的新興科技,涵蓋「數位基盤、數位創新、數位包容」等元素,如何借助科技打造創新、包容的社會,在台灣強勁的科技應用產業鏈上,補強創新的能量,並延續發展優勢項目,將是台灣要持續努力的方向。

了解更多智慧國家方案
看更多智慧國家相關報導

行政院科技會報辦公室 廣告