Friday, June 16, 2023

零經驗轉職後端工程師 - ccClub 的陪伴


【本集定位】

非本科畢業,有工作經驗,但有興趣轉職工程師的人。
從影片了解不同學習管道、自學計畫安排。
給猶豫不決或是害怕的你:現在 CS 這麼夯,迷惘到底要不要轉換跑道?怎麼樣叫做準備好可以轉?

最近也有些朋友問我轉職工程師的事情,如果在做一件事情前,不曉得要不要投入,或許你可以跟我一樣,把情境推到極致。像是:當我起薪 3 萬的時候,我還願意轉去做工程師嗎?

【自我介紹】

台灣大學農藝系畢業,畢業後在生技產業工作 6 年,2020 轉換跑道成為軟體工程師,現在在遊戲橘子寫社群軟體 App 的後端,工作上主要用的語言是 Go。

  • 在怎樣的契機下,讓你想轉職成為工程師?
有一個願望,覺得此生一定要在美國體驗人生,到美國工作。2018 年的時候,朋朋說到美國工作,最快的方式就是去美國念一個電腦科學的碩士(CS Master),畢業後在美國找工作。軟體工程師的職位最容易留下來,薪水也不錯。這個想法就一直埋在我心中,為了達成這個夢想,我必須工作存學費。既然要工作存學費,我就想說,之後去美國都要當軟體工程師了,不如現在在台灣,就先轉職成工程師,邊當工程師邊存學費,也好先了解軟體工程師的領域,以免一頭栽進去學了以後才發現不喜歡。現在想想,滿感謝當時的自己,因為這樣做,也算是降低風險的一種方式吧!至少不是在生技領域存到錢,去美國才念一個完全不同領域的 CS。

轉職真的契機是,任職 4 年的保養品,因為人事調度而被裁員。當時想,既然都要換工作了,程式語言也學了一年,不如拼一下,轉換跑道。否則本來年薪百萬的工作,要換掉,真的要有很大的決心。算有老天推了我一把。第一份工作真的不好找,找了將近四個月,遇到貴人,成功轉職。

小結:有目標才有前進的方向跟動力,讀者可以問問自己,轉職的目標、目的是什麼?

另外,轉職的成本非常高,你願意犧牲多少東西來換取成功轉職?像是減少多少休閒娛樂?多少薪水損失?先想好,或許在投入後,比較不會覺得那麼辛苦。

【轉職中準備】

  • 學習管道與學習計畫
善用免費的學習資源:這點非常重要,降低學習成本與門檻,所以才說免費。畢竟不確定投入後是否喜歡,要是花了冤枉錢難免會覺得浪費。方式:Google 課程、詢問 Chat GPT

以下介紹幾個免費學習資源:
  1. ccClub:python 初階班、進階班、ML 讀書會、區塊鏈讀書會、DevOps 讀書會
  2. 入門課程總覽:哈佛線上課程 CS50
  3. 基礎課程:台大開放式課程
  4. 林軒田教授的 data structure & algorithm
  5. 于天立教授的 計算機概論
  6. 進修課程:Udemy SQL 資料庫設計

學習計畫:參照 backend road map 的學習旅程 https://roadmap.sh/backend

特別強調,個人還是鼓勵「有用到再學」,效果可以加乘。否則東補西補,會覺得洞永遠補不完,反而很挫折。 

小結:如果還沒頭緒要投入哪個領域,就在免費資源中探索。在能力範圍內,伸手可及處,到處學。先水平式擴展地學,AI、ML 的課程、前端、後端、應用程式、App 都摸看看。學會花很多時間,尤其是不知道學這些有沒有用的時候,會更迷惘更痛苦。不過要相信,你的所學,都可能在你未來的某一天用上。像我現在寫後端,但用到滿多當初加入 DevOps 讀書會學到的 k8s 知識。其實在未來回頭看,會發現這些看似散亂的學習點點,會慢慢串起來,譜出一條線,最後織成一個面。

  • 你覺得在 ccClub 學 Python 跟其他學習資源的最大差別為何?
多人小組專案:可以提昇專案精緻度,ccClub 的專案是重點,它可以讓你實際做出一個產品,實現成就。我們這組做了 line 聊天機器人,透過專案實作,你會知道 UI/UX、前端、後端在幹嘛,API 串接、資料庫應用,雲端儲存與雲端計算。雖然無法精通,但可以多面向地了解,不同領域的工程師負責什麼專項。最後也可以做出一個「會動的產品」,這對身為新手的我相當有成就感。
  • 要如何判定自己是否準備足夠,可以進入投履歷、面試階段?
永遠沒有準備好的一天,就投了,去面試了。
  • 找工作的方式與準備
主動:打開工作求職網看你喜歡職位的工作內容,需要條件有哪些 ,從這些內容去猜題,看主考官要考什麼。像我是後端,就會說要會 SQL 資料庫,那你可能就會想說,他可能會考資料庫正規化,或是資料庫特性 ACID ,SQL 或no SQL 的差異是什麼?

被動:推薦以逸待勞的方式,linked 經營起來,獵頭會來找你。

寫 LeetCode 題:大量做題目,推薦新手系統性地作題,可以有效理解題目的 pattern。LeetCode (follow NeetCode 主題式刷題)

運用人脈:加入 cc ,裡面有豐富的人力資源,這點很重要,所以請參與ccClub 社群(誠摯邀請)。臉皮厚一點,請人幫忙。幫你看履歷、幫你模擬面試、幫你介紹工作、幫你直接投履歷給公司 HR 。同時我也是很認真的在裡面做了很多事情,所以有點像是互惠的概念,幫忙別人,別人也會願意幫忙你。

小提醒:每一次面試完得到的回饋都很重要,根據回饋去做改進,可以跟公司要面試回饋。像我有一個缺點,就是說話沒自信,也沒重點。我遇過很好的面試官,他直接跟我說,如果你想表達這些的話,你說話的邏輯架構應該要怎樣怎樣,我之後面試就改成那樣的架構,下一份就上了。所以一味地面試不檢討,不會知道自己的問題在哪裡,還是需要回饋做修正。

【轉職後生活】

目前工作中主要處理的任務:寫 App 後端,用 go 語言寫 API 部署到 k8s 上。
  • 工程師的工作,有沒有面對什麼挑戰?如何克服?
不是本科系出生,如果沒有學過基礎知識的話,常常聽不懂同事在講什麼,工作上需要的東西不懂,就得自己花時間去學習,把工作上會用到的知識補起來。像我第一份工作,同事就常常提到 CPU, GPU, RAM, rpm, router, hub, 封包等等,我都跟不上。同事就建議我去上「計算機概論」,工作一段時間後上完課,果然豁然開朗。而現在的工作則是在完全不會寫 Go 的情況下,要用 Go 去開發 API ,同事也是給我一本 Go 的教科書,我每天下班就啃書。這些付出的時間,是必須的。

而工程師的實際工作,基本上就是每天都在解決一個又一個的問題。我目前工作最大的挑戰,也是身為後端工程師最大的目標,希望自己可以成為優秀的「架構師」。
  • 如果用一句話概括你的轉職辛路歷程,你會說什麼?
「在最壞的打算下,保持樂觀」。能夠撐過來的人,是那些可以看清現實殘酷面的人。放棄原本年薪百萬,回到年薪 50 萬 ,會有實實在在的痛苦。所以我常常跟自己說:「我一定可以成功轉職,只是過程會非常非常非常辛苦。」

【送給觀眾的三個建議】

定向後系統化學習:初入 CS 領域,就像把你丟在茫茫大海,如果沒有定向,可能只會在原地兜圈。羅盤拿出來,先找自己喜歡的領域,有了方向,才有辦法前進。接著帶著你的熱情,作為行駛的燃料,航行下去。系統化就是讓專業的人幫你規劃課程,練習做題目,回饋,檢討,進步。

風險控管:在還不清楚,還在摸索階段時,漸進式的慢慢轉換跑道,才有空間可以調整,不要一頭栽進去。像我轉職前,也是白天在生技產業工作,晚上花時間讀書,而不是馬上辭職、全職上課,因為我也怕踏入這個領域之後不喜歡,但多學了軟體工程師的技能,當作進修也不錯。

想要就去勇敢嘗試,人生也就一次,試著做做看你想做的是,因此我是鼓勵轉職的,即使我的轉職之路並不是特別順遂。勇敢嘗試你想嘗試的東西,不要在未來給自己有後悔的機會。失敗,大不了就回到本行,沒有回不去,沒有走不出去,只有做與不做。

【推薦:延伸思考】

影片中有提到,用 MVP/MAP 的概念,一步步實現轉職道路:

  • 傳統定義:
MVP 代表的是 Minimal Viable Product,是一個軟體開發的概念,指的是開發出一個最小可行產品,只包含核心的功能,以最小的成本、時間和努力,滿足客戶的基本需求。

MAP 代表的是 Minimal Awesome Product,它是 MVP 的進化版,除了具備最小可行產品的核心功能外,也包含了一些可以讓用戶感到「酷」或「爽」的特色功能。MAP 希望不僅滿足用戶基本的需求,還能夠提升用戶體驗,讓用戶感到產品不僅是必要的,也是令人愉悅的。

  • 轉職應用:
當工程師轉職的時候,可以使用 MVP 和 MAP 這兩個概念來規劃自己的轉職路徑。 
MVP (Minimal Viable Product) 是指最小可行產品,即產品的最小功能集合,可以讓使用者體驗到核心功能,而後續的功能可以在後續的迭代中逐漸添加。對應到工程師轉職的話,就是要把最基本的程式語言、基本的程式邏輯、基本的資料庫操作等等學好,建立起最基本的開發能力,並且能夠應用到實際的專案中。
「花最小的力氣,做出成果」 
MAP (Minimal Awesome Product) 是指最小精緻組合,即在一個特定的領域中,挑選一些最有代表性、最有深度的項目進行開發,以構建自己的專業能力和職業形象。對應到工程師轉職的話,就是在自己有興趣或是想專精的領域中,挑選幾個深度、有代表性的專案進行開發,並且不斷地優化自己的作品,以構建自己的專業形象,並且吸引更多的機會。
「做出令人驚艷的小專案」
綜合來說,MVP 強調的是基礎能力的建立,而 MAP 強調的是深度和廣度的構建,兩者可以相輔相成,在轉職過程中都具有重要的意義。 

  • 實際作為: 
訪問現任工程師的一天、一週、甚至一個月,鉅細靡遺的觀察,看你喜歡不喜歡他的生活。 

善用網路資源、免費資源(ccClub)、Chat GPT,線上免學習資源,如果真的喜歡,再上付費課程,再上實體課程。 
做專案,像是 ccClub 以及台大資訊系統班都會做專案。 
104/111/Linked 上面看Job Description,看看身為後端工程師,需要具備哪些技能。 

【結語】 

以上都是個人經驗分享,走了一些彎路,找到一些捷徑。沒有對錯,如果有人有更好的建議,歡迎留言在下方!謝謝你今天的收看,也謝謝 cc 邀請我來這場分享會!

Sunday, June 11, 2023

《幽默》

每次聚會,朋朋們都能滔滔不絕,分享身邊的奇聞軼事,不然就是時不時冒出一句幽默詼諧的話,逗樂大家。我腦中就不自覺產生了:「朋友們都豪有趣,就我最無聊。」的想法。

今天在 podcast 聽到了這句話
「好看的皮囊千篇一律,有趣的靈魂萬裡挑一」
昨天立堂才分享,去聽了博恩串場的活動,覺得博恩真的很好笑。而要達到幽默的境界,實是需要許多智慧的累積。

赫然想起不久前,我也買了博恩的,
喜劇演員的幽默方程式》,但買的時候還沒開課,之後開課也就沒時間上了。感謝當時的我,買了這堂課,因為這堂課的存在,提醒了我,早就想要幽默感的想法。

另外也想分享這門,從 2022 年 9月買來,被我冷凍到現在的課,發揮的提醒效用。

《去書店,買個好人生》提到其中一個「買書」的好處。
即使你買回去後放著,沒時間看,也能發揮它的效用。因為他佔據了你書櫃的一角,每當你看到他的時候,就會想起當時將他從書店帶回家的原因。你會帶他回家,多半是當時的你,有一個很想解決的問題,而這本書裡,有你想要的答案,所以你把他帶回家。因此當你看見他時,就會想起那個問題。
另外又是自己花錢買的,所以會特別想騰出時間來讀他,遠比不花錢得到的資源動力更大。

「幽默感」一直是我想培養的技能之一,期許自己有一天可以拾起。之後如果上完覺得不錯,再分享給大家。

Saturday, June 3, 2023

《加班 v.s 財富》

最近的新工作讓我加班到不行,但也因為不停地加班,讓我開始厭倦生活。

厭倦之後就想振作,想振作的時候就想看書,就像這本書裡也有提到的:
「痛苦的時候就讀書吧!」
因為加班擱在桌上很久都沒翻開的書,就這樣變成了我,每天早上通勤到公司的精神糧食。裡頭又這麼剛好地提到了,「加班並不會讓你變富有」的道理🫠

人生就是這麼巧妙,讓你在合適的時間,碰上某些事情。讀完這本書又讓我對「書」,有了更多不同的想法。

再次感謝啟維推薦,也是時候該自己去找,屬於自己的命定之書了。

零經驗轉職後端工程師 - ccClub 的陪伴

【本集定位】 非本科畢業,有工作經驗,但有興趣轉職工程師的人。 從影片了解不同學習管道、自學計畫安排。 給猶豫不決或是害怕的你:現在 CS 這麼夯,迷惘到底要不要轉換跑道?怎麼樣叫做準備好可以轉? 最近也有些朋友問我轉職工程師的事情,如果在做一件事情前,不曉得要不要投入,或許你可...