菜雞程式指南 EP0. 如果說踩過這麼多坑的我都能學成了,能避開這些坑的你沒有學不起來的理由

更新於 發佈於 閱讀時間約 12 分鐘

哈囉大家,距離我上次發文也是超過半年以上的事了,不知道大家還記不記得自己有追蹤這個作者XD

這半年我在轉職工程師的培訓,培訓內容還蠻緊密扎實的,因此很難騰出手跟精神寫文章。目前也即將成為後 Jr. 後端工程師,朝向下一個目標 (地獄?)前進中( • ̀ω•́ )。

回首我這幾年來學程式的經歷,那真的是不忍卒睹(´;ω;`),歷經了諸多挫折、盲目摸索、灰心喪志,還好後來透過正確的管道,認知到有效的學習方式,才真正取得了成為工程師的基本資格。

現在回想當年在學習路上掙扎的自己,我都一直有很多那種「如果當初有人這樣跟我說就好了」的遺憾,因此接下來會陸陸續續在這裡分享一些我認為對新手很有幫助的心法或思維,希望可以幫助到正在這條荊棘路上奮鬥(或是對程式有興趣)的朋友們,可以少走一點冤枉路、少一點挫敗感,更甚者少花一點冤枉錢
(´_ゝ`)。

先打個預防針,我這邊不會分享什麼太哈扣的技術討論,主要是一些心得向的分享,大家不用覺得點開很有壓力,可以很chill的閱讀~
(畢竟我自己也還是菜雞,而且網路上技術分享的資源也很多,這邊就不自曝其短了XD)

開篇第一篇先來聊聊我從 0 開始接觸程式、到整個完成培訓、成為工程師的整個過程,但目的不是來跟你炫耀說「我TM超屌,學程式根本小事一件」,也不是要給你打那種「程式一點都不難,快來我們這裡培訓,半路轉職也可以輕鬆成為工程師^.<」的補習班雞湯。
恰恰相反,我要分享的是把「所有新手能犯的錯、能踩的坑都做一次,即使這麼慘烈的我,最終也還是成功學會程式」的這段經驗。如果踉蹌如我最終都做到了,在看完我的分享後,可以在一開始就抱著正確的心態、透過正確的方式來學習的你,我相信一定可以比我更順利的學會「一定程度」的程式技能。

注意,這邊特別標註「一定程度」這個關鍵字,畢竟程式世界深似海,我不能保證每個人開始學程式後,都一定有能力用程式找到一份飯碗,但是可以用程式順利解題、寫出一些基本的小專案,這我相信還是能辦的到的。
沒有地基何來高樓,在擁有這些基礎能力後,剩下的就是看你自己的努力與毅力,決定你可以在程式領域達到怎麼樣的成就了。

扯遠了,那我們話說從頭,先從我第一次接觸程式的回憶開始吧 ε≡ヘ( ´∀`)ノ

迷茫(又破費QQ)的起點

人生第一次碰到程式嚴格說起來應該是高中時上的 C++ 程式課,但當時已經有原本的學業科目,實在難以靜下心來去學習一個新的領域的知識,基本上是去混分的,期末也是老師看不下去直接拿答案給我抄才沒被當掉 (´;ω;`)。

真正開始認真想學程式則是在退伍之後,也算是被同袍一個「誤入歧途」,聽他講的好像學程式很簡單、學完以後隨便找都有收入不錯工作,基於膚淺的動機與認知開始嘗試學寫code。

身為一個書呆子,直覺想到的學習方式就是「看書」,於是就跑去天瓏書局買了一本網路上頗獲好評的新手入門書「精通python」 帶回家嗑。

raw-image

這邊就直接暴雷了,如果你是「完完全全的程式小白」,那這本書絕對是噩夢級別的存在,讀到後面你會完全搞不情楚自己在學什麼東西、到底在看什麼玩意,可以說一點收穫都沒有。
詳細原因我之後會再寫一篇分析,結論是當時硬看完的心情只有崩潰,徹底的對程式喪失熱情。


在經歷這樣的折騰後,我已經認知到想靠自學學會寫程式應該是不太可能了,在如此徬徨無助、甚至有點自暴自棄的的情緒下,我直接放棄思考,去報名了某家風評不是很好的程式補習班(X匠,這個聲名狼藉的程度應該是鮮少有人沒聽過吧(σ′▽‵)′▽‵)σ)。

當時的想法很簡單,既然自己學學不會,直接去上人家幫你安排好的課程規劃,應該總不會錯了......吧?

事實證明這個想法錯得離譜。我沒有把整個套課的內容上完,沒辦法確認上完課程後是否真的能幫助新手轉職工程師。但起碼以我上過的幾堂課來說,我覺得這種規模化的商業課程的問題就是師資品質跟課程規劃:一次手上有多個班級、一個班級有多個學生的老師很難掌握學生的狀況,這對於正是需要諮詢輔助的新手非常不友善。
更糟的狀況是很多老師是從業界請來的工程師兼職教課仔,美其名曰有實務經驗帶入教學 ┐(´д`)┌。這種老師更不可能投入太多的精力在教學上,有時甚至只是照著講義內容念,想在這裡學好程式開發基本上是妄想了(◞‸◟)。

然後為了方便量化教學成果,這邊的老師會一直叫你去考Oracle的檢定考試,說有證書未來應徵時非常加分。以我現在的程度回頭檢視,這整個檢定制度真的就是一個智商稅測驗,考的內容也都是非常細節的Java語法特殊情境,對於實務情境一點幫助都沒有。

總而言之言而總之,到目前為止的經歷就真的是燒錢促進社會經濟成長(超過十萬元,不如捐出去做公益),不但完全沒有進步,反而開始懷疑自己是否真的沒有成為工程師的資質 (´;ω;`)。

加入 ccClub 讀書會,從基礎訓練開始打磨程式思維

當我正處於對程式職涯將近放棄的階段時,有朋友邀請我一起報名台大的ccClub程式讀書會,爬了一下網路覺得似乎評價還不錯就去報名了。
(結果只有我錄取我朋友沒上。・゚・(つд`゚)・゚・,也是蠻哀桑的)

ccClub 的課程是教學基礎 Python 語法 + 簡單的爬蟲技術,最後在期末完成一份小組專案。教學內容雖然與大部分的教材並無二致(畢竟程式基礎語法就那樣),但我在這裡最大的收穫是「建構 programming 的基礎思維」。

如果說 coding 是單純的寫出可以運作的程式指令(比如說印出 Hello World),那我認為 programming 是「分析問題、解構問題、最後透過程式碼來解決問題」的能力。

ccClub 怎麼培養學員 programming 的能力?無他,寫數學題。
學員可以在 ccClub 的 judge 系統上寫數學題,最難頂多是國中程度。有別於你過去用紙筆寫數學題的思路,在這裡要訓練的是「用程式的思維來解題」,如何靈活運用資料型態、判斷式、迴圈等工具,來配合問題需求 code 出正確的程式,才是新手真正要培養的重要技能。

這也是我認為大部分的新手看完教學影片後還是對 coding 一知半解的原因。這些影片通常只能教會你基礎的語法,但只有語法是不夠的。缺乏練習的環境資源,就無法培養這樣的程式思維能力。
就像台灣的英文教育,大部分的學生都知道英文文法規則,但真正能用流利的英文侃侃而談又有多少人呢?

在讀書會還有另一個好處是助教跟學習夥伴。單打獨鬥的學習很容易陷入瓶頸或低潮就放棄;而當大家一起朝同一個方向邁進時,除了有困難時可以諮詢幫助外,彼此激勵的效果絕對會讓學習者更有動力繼續努力前進。

raw-image

在讀書會的學期中,我就是透過瘋狂的寫 judge 題目(我覺得解題的快感很上癮(*゚∀゚*)),打下扎實的程式思維基礎,這也對我後續的學習上有很大的幫助。

在讀書會結束後,由於很喜歡讀書會的理念與活動,也主動報名徵選成為讀書會的成員之一。在讀書會學長的建議下,迎來了我程式生涯中最重要的轉捩點。

(看到這裡如果有興趣報名 ccClub 讀書會,可以按讚我們的粉專,追蹤最新消息;也可以訂閱我們的 YT頻道,可以觀看我們的教學影片還有申請 免費 的 judge 系統帳號歐 ε٩(๑> ₃ <)۶з)

進入 AppWorks School,職業程式力的音速衝刺

先來盤點一下我這時候的程式程度:我有能力用程式解構一個複雜的數學題,開始可以看懂人家的程式碼的結構。有了這樣的能力後,我開始可以往更深的程式領域探索,比如跟著進階班讀書會學基本的 Computer Science 的知識(當時是學了一點資料結構 + 演算法)、刷刷 LeetCode、去 Udemy 上一些簡單的後端框架課程。

這時候雖然已經有想轉職工程師的念頭,但距離我現在的程度,這中間好像還有一道很大的鴻溝,而且是一道我完全不知道要怎麼填的大坑。儘管我有心、也有能力去學習,卻完全沒有方向。
我想這也是很多想自學程式轉職的人會遇到的瓶頸:你根本不知道你要學什麼,才有所謂「成為工程師」的資格。


跟讀書會學長諮詢討論後,決定去報名 AppWorks School(後面簡稱AS)-- 一個專業的職業工程師培訓機構。相比於教學 -- 針對某一種語言、框架、應用作深入、詳細的指導示範,這裡的培訓更像是指導你身為一名職業工程師,你該認識那些知識、思考哪些面向、可以運用哪些工具,來幫助你解決問題。

這樣說好像有點抽象,我換一個方式形容:一般的教學課程有點像「教你A牌釣竿怎麼釣到吳郭魚」,而在AS裡,是告訴你如何思考,用不同的魚餌、不同的釣線、不同的釣竿、不同的水域環境,根據你想釣到的魚種,來找到最適合的釣魚策略組合。

我在這裡特別避免使用「教」這個動詞,這裡的培訓方式幾乎都是跟你說一個方向,比如說告訴你可以用 Redis 達到快取目的,至於 Redis 怎麼安裝、怎麼設定、怎麼啟動、怎麼配合 Server 呼叫?抱歉,沒有要手把手一步一步帶你,自己去爬文查資料。
畢竟自己尋找問題的解決方法,也是每位合格的工程師重要的特質之一。

如果你也對轉職有興趣,非常推薦來報名AS培訓班,尤其是這部分需要的知識量非常龐雜,自學者難以靠自己去發掘拼湊這些零碎的知識節點,透過有業界經驗的導師引導,才不會走錯方向或是卡在盲點無法突破。

重點是,AS 培訓是純粹的公益單位,全程免費!詳細資訊附上連結,大力推荐給所有考慮轉職工程師的人(ゝ∀・)b


由於敝人視覺美感之稀爛(以前美術課可以被當掉的程度),毫無疑問的是報名後端工程師的培訓,在經過 1個月遠端 + 4個月實體的培訓後,順利在今年暑假結束前以 Jr.後端工程師的身分找到工作ヽ(●´∀`●)ノ

raw-image

以上是我程式小白旅途的終點,同時也是另一個起點:工程師是一個「學到老、才能工作到老」的職業,要不斷的充實自己、學習最新的技術,才有能力解決迎面而來的問題。
之後也會不時地分享一些我工作的經驗跟心得,提供給大家做進一步的參考跟交流٩(๑•̀ω•́๑)۶

結語:迷途如我也能走出迷宮,手握地圖的你大膽的邁開步伐吧

從 24 歲的第一本程式工具書,到 27 歲正式拿到工程師的入場卷。如上所述,在過程中不但走了彎路又一直迷路,我花了整整三年才這個領域站穩腳步,其實是相對晚成的。
(我AS同期的同學甚至只有接觸程式半年而已 Σ(゚ω゚))

不過也正因為如此,我更清楚那些初學者面臨的困惑、挫折與茫然,那些過往的經歷對我來說仍歷歷在目,我清楚地記得三年前看不懂什麼是「環境安裝」,光是安裝編輯器就花了一整天,那種挫敗無助的感覺(◞‸◟)。

如果你看到這裡,也對學程式感興趣,歡迎你追蹤我之後一系列的心得分享,聊聊如何避面一些新手可能面臨到的困境。

我相信連我這麼崎嶇坎坷的學習路程都能開花結果,看完我的分享的你,就像在戰爭迷霧裡插眼的外掛,提早避開可怕的陷阱,能夠更順利的抵達終點。

祝福所有的 Coder,找到屬於自己的 Hello World!

留言
avatar-img
留言分享你的想法!
avatar-img
魚骨書籤的沙龍
56會員
85內容數
這裡是專屬於我個人的生物學筆記,紀錄那些神奇有趣、變化萬千的有趣生物知識。 撇開為了分數而苦讀的生硬生物知識,讓我告訴你該怎麼用正確的姿勢,閱讀生命的奇蹟故事!
魚骨書籤的沙龍的其他內容
2022/12/24
身為一個程式學習者,如何用正確的心態與方法進行學習,將大大地影響你的學習效率、成果,還有學習過程中的心情。
Thumbnail
2022/12/24
身為一個程式學習者,如何用正確的心態與方法進行學習,將大大地影響你的學習效率、成果,還有學習過程中的心情。
Thumbnail
2022/08/29
在確定學習哪種程式語言後,接下來總算要進入正式的學習了......(´・ω・`)吧? 這個章節就稍微總結整理一下,身為程式小白,你會碰到的幾種學習資源,以及該如何妥善選擇才能有最大的學習成效吧(ゝ∀・)b!
Thumbnail
2022/08/29
在確定學習哪種程式語言後,接下來總算要進入正式的學習了......(´・ω・`)吧? 這個章節就稍微總結整理一下,身為程式小白,你會碰到的幾種學習資源,以及該如何妥善選擇才能有最大的學習成效吧(ゝ∀・)b!
Thumbnail
2022/08/21
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
Thumbnail
2022/08/21
在決定踏上程式之旅後,身為程式初學者,你要面臨的第一個關卡,絕對是: 我該學習哪種程式語言?
Thumbnail
看更多
你可能也想看
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
家中修繕或裝潢想要找各種小零件時,直接上網採買可以省去不少煩惱~看看Sylvia這回為了工地買了些什麼吧~
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
👜簡單生活,從整理包包開始!我的三款愛用包+隨身小物清單開箱,一起來看看我每天都帶些什麼吧🌿✨
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
菜雞成長故事 寫這一篇主因也是因為身邊朋友陸陸續續想往軟體業發展,或是想動手做做小專案,故才成就了這一篇心路歷程,這邊會介紹我的背景、學習管道跟我如何選擇第一個程式語言作為敲門磚跟學習時間,希望能幫助還在努力中或是預計要轉職的各位有一個方向或是參考?(雖然我依然還是一個小菜雞,請鞭小力)
Thumbnail
菜雞成長故事 寫這一篇主因也是因為身邊朋友陸陸續續想往軟體業發展,或是想動手做做小專案,故才成就了這一篇心路歷程,這邊會介紹我的背景、學習管道跟我如何選擇第一個程式語言作為敲門磚跟學習時間,希望能幫助還在努力中或是預計要轉職的各位有一個方向或是參考?(雖然我依然還是一個小菜雞,請鞭小力)
Thumbnail
在瀏覽任何我撰寫的文章,或是想要參考其他人的職涯策略之前,希望你可以理解到一件事:「即使不知道正確的方法、一路上會面對到許多挫折,你還是可以選擇要不要踏出第一步。」
Thumbnail
在瀏覽任何我撰寫的文章,或是想要參考其他人的職涯策略之前,希望你可以理解到一件事:「即使不知道正確的方法、一路上會面對到許多挫折,你還是可以選擇要不要踏出第一步。」
Thumbnail
身為程式初學者,該抱持著什麼心態踏與認知上起點,才不容易在半途而廢?
Thumbnail
身為程式初學者,該抱持著什麼心態踏與認知上起點,才不容易在半途而廢?
Thumbnail
這是我從程式小白到成為 Jr. 工程師的心路歷程,希望可以幫助道同樣在轉職之路上的朋友們。
Thumbnail
這是我從程式小白到成為 Jr. 工程師的心路歷程,希望可以幫助道同樣在轉職之路上的朋友們。
Thumbnail
我是一名非本科系商科學生,甚至說是商科也不太算正確,只好說自己是一個懂得服務的大學生,但我現在只想透過程式碼來服務大眾。於是我開始經歷我的轉職路程,有些好笑、艱辛、荒謬、有趣、不合邏輯等像是門外漢一般的很多觀念,但努力補足。期許自己有一天可以對你說,「你好!我是一名軟體工程師,很高興認識你!」。
Thumbnail
我是一名非本科系商科學生,甚至說是商科也不太算正確,只好說自己是一個懂得服務的大學生,但我現在只想透過程式碼來服務大眾。於是我開始經歷我的轉職路程,有些好笑、艱辛、荒謬、有趣、不合邏輯等像是門外漢一般的很多觀念,但努力補足。期許自己有一天可以對你說,「你好!我是一名軟體工程師,很高興認識你!」。
Thumbnail
「Hi,Vivian 想要請教妳有沒有在寫程式的時候遇過瓶頸呢?」這大概是我在經營自媒體後,最常收到的問題了。 說實話,身為非本科系的我,在還沒掌握寫程式的精髓時,多多少少都會有感到很挫折的時候,在分享我自己的狀況前,先來聊聊讀者及一些朋友與我分享他們在學習程式時卡關的狀況:
Thumbnail
「Hi,Vivian 想要請教妳有沒有在寫程式的時候遇過瓶頸呢?」這大概是我在經營自媒體後,最常收到的問題了。 說實話,身為非本科系的我,在還沒掌握寫程式的精髓時,多多少少都會有感到很挫折的時候,在分享我自己的狀況前,先來聊聊讀者及一些朋友與我分享他們在學習程式時卡關的狀況:
Thumbnail
原本最近學習學到一個段落,準備著手準備前端作品集,不曉得是不是上天看到我的努力,竟然在我只有將課程作品放上 cakeresume 的狀態下,收到不少面試邀請,也順利地收到 offer 。 要感謝、要記錄的過程太多了,於是我著手撰寫了這篇文章,希望可以幫助正在轉職苦海努力的你。
Thumbnail
原本最近學習學到一個段落,準備著手準備前端作品集,不曉得是不是上天看到我的努力,竟然在我只有將課程作品放上 cakeresume 的狀態下,收到不少面試邀請,也順利地收到 offer 。 要感謝、要記錄的過程太多了,於是我著手撰寫了這篇文章,希望可以幫助正在轉職苦海努力的你。
Thumbnail
自我成長旅途的序言 Day0 凡是第一步總是困難的,但不跨出這步就沒有後續的旅程了
Thumbnail
自我成長旅途的序言 Day0 凡是第一步總是困難的,但不跨出這步就沒有後續的旅程了
Thumbnail
2020年底時,我內心充滿迷茫地離開了社群行銷的工作崗位,幸運的是,當時自己有幸參與了產品開發部門的相關事務,發現自己對於RD這個領域充滿憧憬,於是毅然決然踏上轉職之路。
Thumbnail
2020年底時,我內心充滿迷茫地離開了社群行銷的工作崗位,幸運的是,當時自己有幸參與了產品開發部門的相關事務,發現自己對於RD這個領域充滿憧憬,於是毅然決然踏上轉職之路。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News