想「轉行」靠寫程式吃飯嗎?一個自學程式語言幾乎將自己逼瘋的親身經歷 – 軟體工程師 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 官方帳號,關注最新創業、科技、網路、工作訊息


科技賦能創新突圍——愛酷智能科技舉辦 MarTech Salon,為企業創造數據驅動新價值

自 2018 年成立以來,愛酷智能科技深耕 AI 與 MarTech 領域,在行銷科技應用上擁有專業並豐富的實務經驗。MarTech Salon 系列活動旨在創造一個行銷科技交流平台,透過各領域講師及產業先行者的分享,協助企業掌握 MarTech 新趨勢,在數位新浪潮中搶得先機。
評論
圖片來源:愛酷智能科技
評論

愛酷智能科技於 9/29 (三) 舉辦今年第一場 MarTech Salon「用聊天機器人,輕鬆培養忠誠用戶!」,吸引數百位參與者共襄盛舉,包含中小企業主、品牌行銷人、行銷代理商等經理人。活動分享最新 ChatBot 對話式商務趨勢、顧客數據整合技術、會員標籤應用,並解析 AI 與 MarTech 的策略性思維。

圖片來源:愛酷智能科技

行銷 5.0 時代,One ID 科技賦能

行銷 5.0 的時代注重「技術」與「人性」融合的全方位戰略,打造更完善的顧客體驗 (CX, Customer Experience),加上面對資訊的爆炸,企業的痛點在於多渠道破碎資料整合的困難。

透過 One ID 整合消費者與品牌的互動歷程,企業能夠將匿名資料,即網路上的任何瀏覽行為,納入行銷決策的參考依據。愛酷商務解決方案暨夥伴關係經理 Perry Wang 在分享中提到:「One ID 技術追蹤本我、自我、超我外的第四個我,也就是『匿名我』。」

Perry Wang 舉房仲產業應用做進一步解釋,房仲市場成交的關鍵,在於業務服務的精準度,仔細發掘顧客真正的需求,推薦適合的物件。然而,過往消費者經常心口不一,難以取得真正的需求,透過愛酷 One ID 追蹤技術,能將顧客在網頁瀏覽的物件類型、地段、價格數據一次收整,隨著預約賞屋的名單,派送到業務手中,洞察顧客的行為,進而做到房產智慧推薦,提升成交機會。

運用聊天機器人,打造多元運用情境

「對話式商務」之所以能成為現今極具潛力與商機的行銷模式,原因在於品牌透過通訊軟體主動出擊,能創造與消費者間更多元的接觸點及對話機會。愛酷顧客成功經理 Wayne Chen 在講座中分享使用聊天機器人的六大目的:「聰明運用 ChatBot,將能夠提升行銷溝通效率,滿足『會員募集』、『增加品牌知名度』、『協助客服』、『搜集顧客意見』、『推播再行銷』、『引導購物』。」

活動中,來賓針對聊天機器人服務也萌生許多問題,包含如何評估 ChatBot 需求、需做哪些前置準備等。Wayne Chen 建議企業首先應思考創建聊天機器人的目的,例如:提高來客率、會員系統服務建置、業務轉型等;接著分析企業想搜集的資訊、提供給顧客的服務、用科技解決的行銷問題,進而透過創意活動培養忠誠用戶。

會員精準貼標,創造有效互動

投資對話式商務工具、透過創意增粉操作與用戶互動後,分群分眾與需求深度挖掘則是企業下一步應掌握的重點。愛酷行銷經理 Eason Huang 說明:「透過標籤系統,能逐層剖析顧客的行為輪廓,提升溝通內容的精準性。」愛酷智能科技協助顧客從命名規則著手,將標籤分成靜態、動態類型,並加入標籤層級的關係架構,以達到在對的時間,與對的人,溝通對的內容。

Eason Huang 進一步建議,企業在運用標籤系統與用戶互動時,應至少都包含「完善用戶輪廓」、「探勘用戶興趣」、「引導用戶行為」其一目的,「提升營收」僅是結果。不論是透過靜動標籤調查用戶喜好、推進用戶成為會員或是為了下一次的活動佈局,企業都應制定明確的目標以創造真正有效的互動。

從數據整合技術、聊天機器人應用到標籤深度規劃,愛酷智能科技分享 MarTech 最新趨勢,也透過成功案例說明企業如何在疫情下逆勢成長,培養忠誠會員,並達到會員導流,帶動營業額提升。

未來,愛酷智能科技將持續舉辦 MarTech Salon 系列活動,協助企業掌握 AI 與 MarTech 最新趨勢與應用。歡迎追蹤以下渠道,掌握最新資訊:

本文章內容由「愛酷智能科技」提供,經關鍵評論網媒體集團廣編企劃編審。