You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
同時,我是開服以來從沒棄過坑的 Pokemon Go 休閒玩家,在玩家群中,常常開玩笑 N 社每次更新就有新的 Bug 給大家驚喜,甚至有人笑說 N 社到底是美術公司還是遊戲公司。有次朋友一句玩笑話說:「該不會你這樣不會寫程式的人去投履歷也會上吧 XD」,雖然這是句玩笑話,但對於當時在思考人生下一步的我來說,這真是太有趣了,不妨就來 Google 看看「如何成為工程師」。
上個階段(十一月)分了一些時間做其他事,沒有全心全意跟課,進度慢了很多下來。huli 課程後期又做了一次課程調整,採取了能力分班制度,每班有不同的目標進度。我分配到了 B 班,看了一下 B 班的目標,與原本的計畫目標一樣是在 3/14 前要找到工作。只要與原先目標一樣,其實分到 B 班的進度滿剛好的。也藉由這一波小改版,調整了一下學習的心態與步伐,我思考了一下自己進度滑落的主因,不是碰到課綱的難關,而是『投入的時間變少、變不專注』。前期剛好有熟人在準備考試,他可以把我拎進圖書館一起奮戰,感染高張力的氛圍;後期熟人考完試,我們一樣一起去咖啡廳工作,但很悠閒 XD。想了又想,會有惰性的日子才是真實人生呀,如果總是想著強迫自己持續 365 天高張力學習,其實很容易產生倦怠感。對我這種人來說,合理的情境應該是工作之餘還是會想追追新番、追影集、熬夜看網球(欸太過分了),我必須把耍廢的時間也盤算進來才叫真實。以後成為工程師是要每一天跟程式碼為伍的,如果要避免產生倦怠,我現在就要有覺悟得先在工作、成長與耍廢之間找到一個平衡點,找到自己持續前進的模式。回過頭來,我應該思考的是:如何與耍廢共存,又能達成目標?
更專注於「找到工作」這個核心目標
因此,課程後期我就不用什麼乖學生的心態來跟課了,先不管課綱訂的進度、先不管有沒有跟完課,反正學程式本來就應該變成習慣。我現在只管定義好目前的『大目標』,緊咬著不放,有短計畫或沒計畫都好,想到缺什麼就馬上補什麼。同時,12 月底時跟一些已經成功轉職的同學們聚餐閒聊,經由他們的經驗,大概知道:做完一些 React 作品之後,出去求職應該沒什麼大問題、有沒有做 final project 也沒什麼影響、履歷用 CakeResume 簡潔就好,不用寫什麼自傳。心裡大概有底,我的大目標就是『228 連假結束前找到工作』。(因為連假我要出去玩耍)
來源:twgd/note#14
因為每一個決心轉職的人都很努力,而我沒有程式相關背景,能夠在計劃結束之前,被看見、被認可,我覺得自己是很幸運的。
零程式基礎、無理工背景,投入自學計畫
大學文組,工作專業是整合行銷,程式基礎為零
高中是雄女。大學念的是傳播學院,主修的領域橫跨傳播及管理。因為在學時就有一些接案機會,畢業之後,我直接延續這樣個工作型態,成為了一個整合行銷領域的獨立接案工作者。在轉職工程師之前,我沒有投過其他履歷,也沒有面試過其他全職工作。
除了知道 Wordpress 是什麼之外,在我投入導師計畫之前,無論是工作或是學習背景,都與寫程式沾不太上邊。至於我為什麼會知道 Wordpress,是因為在網路上看到類似「不會寫程式也能架站」的字眼,覺得太神奇了,爬了一些免費教學文章,就照著上面的教學去買網域、虛擬主機跟安裝 Wordpress.org。哇!還真是太神奇了,可以一鍵安裝、可以套版,架一個站只要按幾個按鈕就完成。不過,後來想到「我為什麼不直接用 Wordpress.com 就好了呢(欸」,再加上其實自己架站還有很多意想不到的維護要注意,覺得沒有資訊背景的自己根本應付不來,就不想再繼續研究了。Wordpress 裡面有個「自訂 CSS」,當時認為那是給工程師寫的東西,我那時不想寫程式就懶得深究了。回想當時,真的是很一鍵架站,只知道有 HTML 跟 CSS 這兩個東西,但實際怎麼寫完全不知道。
擴張、進修或跨界?Pokemon Go 給了方向
而我為什麼會動了轉職的念頭呢?起因是工作到一個階段會開始思考下一步該如何走下去,你會開始盤算:現在的工作規模是否要擴張?現在的自己是否有哪些不足,而應該繼續進修?或是,有沒有其他跨界的可能?有一篇文章 文組生轉工程師攻略 裡的自我盤點,滿接近同為文組人的我,當初對自身的職涯評估。
同時,我是開服以來從沒棄過坑的 Pokemon Go 休閒玩家,在玩家群中,常常開玩笑 N 社每次更新就有新的 Bug 給大家驚喜,甚至有人笑說 N 社到底是美術公司還是遊戲公司。有次朋友一句玩笑話說:「該不會你這樣不會寫程式的人去投履歷也會上吧 XD」,雖然這是句玩笑話,但對於當時在思考人生下一步的我來說,這真是太有趣了,不妨就來 Google 看看「如何成為工程師」。
如何找到課程?Google、PTT 爬文
我開始 Google,下幾個關鍵字「工程師 轉職」之類的,老實說,真的會冒出很多資訊。從這些資訊之中,可以再進一步下想繼續了解的關鍵字,這個議題的輪廓慢慢變得更清楚,例如:你會開始了解工程師分為哪些、知道有個 Soft_Job 版可以去爬、有哪些轉職的經驗分享、有哪些轉職的管道。
我就是在這些爬文的過程中,漸漸梳理出:轉職的目標(網頁工程師)、可能付出的成本、該具備什麼能力、有哪些學習資源。然後我看到了 huli 的文章與程式導師計畫。
為什麼選程式導師計畫
其實決定學習程式之後,對於學習的方式,我是偏好自學的,因此先排除了一些實體課程。Google 下了關鍵字「程式 自學」,第一頁就會出現 huli 的文章:十年程式自學之路,之後我陸陸續續爬了不少 huli 的文章(也包括其他跟程式無關的文章,爬這麼多,好像變態 XD),發現我滿欣賞 huli 這個人的思維與特質,且程式導師計畫的進行方式好新奇,就決定全職投入計畫了。
至於為什麼偏好自學的方式:
因為已經滿習慣學習新事物用自學的方式,例如:學日文(阿宅嘛~)、學一些剪輯或繪圖軟體之類的,滿享受自己找資源的過程。另外,這時候也大概有覺悟,未來若作為工程師,是需要常常自學並自主解決問題的,不如在入門時就用自學的方式來試試吧。
收到錄取通知後,就開始預習了
其實我就是那群壓 deadline 送出報名信件的其中之一,雖然前面做了不少評估,也花好一段時間準備報名資料,但送出這個決定之前,還是會糾結一下。畢竟送出後,就沒有退路了。
從收到錄取信到開課之間有大約一兩週的時間,huli 請大家輕鬆等待課程開始,但我其實一點都輕鬆不起來 XD,因為緊張沒有程式基礎,擔心之後會不會跟到挫賽,然後黯然放棄。所以,我開始預習課程,先看 Lidemy youtube 上釋出的第一期試看課程,先去 W3Schools 學習 JavaScript 基礎語法,先試著做了第一期課程前一兩週的作業。本來計畫課綱預計花兩週學習的 JavaScript 程式邏輯,其實我大概花了一個月吧。如果我沒有先預習,我在前兩週作業一定也會大卡關。
另外,huli 在公布錄取通知的時候,有請大家之後可以參考排版:中文文案排版指北。雖然我之前會注意排版的舒服與否,但從沒看過這個文字排版指北。我覺得這種排版習慣很棒,所以準備開課前,我也開始練習依這份指北的原則來撰寫文字,例如:在中英文之間加上空格、標點符號要用全型。現在的我,已經養成這樣的習慣了。
課程前期:前端基礎 & 後端基礎(九月、十月)
一開始要先學 Git,之後作業都是用發 PR 的形式來繳交。我是先看 為你自己學 Git 來學習的,因為自己相對偏好文字及有系統的章節編排來做為基礎教材。裡面的【狀況題】都是之後滿常遇到的 Git 情境,現在還是很值得時常參考。
我自己覺得,學習前端基礎階段最大的階梯在於 第四週。這週要知道:如何用 JavaScript 操控 DOM 物件、什麼是 API、什麼是 Ajax 等等。我自己覺得資訊量有點大,一週的時間內要消化完這些觀念並實作出作業,非常有挑戰性。現在回想,這些都是前端很重要的觀念,如果可以拉長點時間來做更多的重複小練習,體會更多的細節,我想會對自己更有自信,前進的步伐會踏得更穩健。
五~八週是實作留言板,體會開發一個產品,一次次加新功能上去的感覺。例如:實作出留言板、再實作登入系統、再導入 Ajax、最後部署到主機。另外,學習 Session 機制的部分我覺得很有趣,是先用 Cookie 來實作出 Session 的概念,之後才真正用 Session 來實作登入機制。在資訊安全的部分也談到 XSS、SQL Injection、CSRF,我認為資安這塊很深奧,自己目前只能算是有概念而已。不過課程中有帶到資安觀念,是我現在回想起來感到很珍貴的部分,一個工程師如果不具備資安的敏銳度,真的什麼都不用談。
體會到課程特點:課綱的安排注重理解概念
這個時期,體會到的課程優點就是:『課綱的脈絡』。我可以清楚察覺到 huli 安排在課綱中的巧思是什麼,作業的安排是想讓大家學到什麼,如同前面提到留言板五~八週的演進。另外,由課綱的脈絡中也可以發現,huli 的教法不求你套用工具速成,而是要求你體驗原生的觀念及用法,例如:先學 Vanilla JS 後才談到什麼是 jQuery、為什麼要用 jQuery 等等。
實體小聚會
九月底在小樹屋辦了兩場小聚會,我去了其中一場,獲得不少學習資源分享及面試經驗談,第一次知道原來面試工程師是可能會有技術考試的(筆試或是 Live Coding)。
課程中期:接觸現代前端工具(十一月)& 課程微調
留言板的一對一 code review
這個階段 huli 稍微調整了一下課程進行的方式,完成留言板的人可以報名一個時段,有一個小時的一對一 code review 時間。第一次開口介紹自己的 code 怎麼寫,很緊張但也很新奇。透過一對一,可以梳理一下當初寫留言板時的邏輯,老師還能揪出一些自己沒注意到的小細節。另外,發現 Zoom 滿好用的!
一步一步拆解,更易理解 JavaScript 的運作
這時期談到簡單的資料結構及 JavaScript 的 event loop,是我覺得很有趣的地方。我從來沒想過自己可以對一個程式語言產生興趣,並想理解它的運行,也許是 huli 擅長把流程拆解開來一步一步說明吧。我發覺:先理解一件事物後就會慢慢對它產生興趣。而且熟悉 event loop,對作答面試題很有幫助!
前端變化快速,看官方文件學習最準確
同時這階段帶入了現代前端工具:Gulp 跟 Webpack。這時候 Gulp 版本已進化成 4.0,寫法已經跟 huli 之前錄的影片(使用 Gulp 3.x)不一樣。好險我習慣會去看官方的文件再來練習寫作業,如果發現跟影片有衝突的部分,基本上都是以官方的教學為主。因為版本會更新,教學影片只能作為某個時間點(版本)的參考。
課程後期:學習框架 & 調整步伐(十二月 & 一月)
這階段其實沒什麼特別的,我覺得比起前面的基礎來說,很單純,就是一直在『學習新工具』。不過單純不代表簡單,單純的地方是指:稍微有點基礎之後,學習新工具的第一件事就是好好去研究『官方文件』,至於熟不熟練只剩下時間 & 反覆實作的問題。
能力分班後,調整了一下自己的步伐
上個階段(十一月)分了一些時間做其他事,沒有全心全意跟課,進度慢了很多下來。huli 課程後期又做了一次課程調整,採取了能力分班制度,每班有不同的目標進度。我分配到了 B 班,看了一下 B 班的目標,與原本的計畫目標一樣是在 3/14 前要找到工作。只要與原先目標一樣,其實分到 B 班的進度滿剛好的。也藉由這一波小改版,調整了一下學習的心態與步伐,我思考了一下自己進度滑落的主因,不是碰到課綱的難關,而是『投入的時間變少、變不專注』。前期剛好有熟人在準備考試,他可以把我拎進圖書館一起奮戰,感染高張力的氛圍;後期熟人考完試,我們一樣一起去咖啡廳工作,但很悠閒 XD。想了又想,會有惰性的日子才是真實人生呀,如果總是想著強迫自己持續 365 天高張力學習,其實很容易產生倦怠感。對我這種人來說,合理的情境應該是工作之餘還是會想追追新番、追影集、熬夜看網球(欸太過分了),我必須把耍廢的時間也盤算進來才叫真實。以後成為工程師是要每一天跟程式碼為伍的,如果要避免產生倦怠,我現在就要有覺悟得先在工作、成長與耍廢之間找到一個平衡點,找到自己持續前進的模式。回過頭來,我應該思考的是:如何與耍廢共存,又能達成目標?
更專注於「找到工作」這個核心目標
因此,課程後期我就不用什麼乖學生的心態來跟課了,先不管課綱訂的進度、先不管有沒有跟完課,反正學程式本來就應該變成習慣。我現在只管定義好目前的『大目標』,緊咬著不放,有短計畫或沒計畫都好,想到缺什麼就馬上補什麼。同時,12 月底時跟一些已經成功轉職的同學們聚餐閒聊,經由他們的經驗,大概知道:做完一些 React 作品之後,出去求職應該沒什麼大問題、有沒有做 final project 也沒什麼影響、履歷用 CakeResume 簡潔就好,不用寫什麼自傳。心裡大概有底,我的大目標就是『228 連假結束前找到工作』。(因為連假我要出去玩耍)
另外,huli 錄了一些新課程:更仔細的留言板教學 & React 教學,不過這兩部分我之前已學習完成,就先沒看。反而是『進階 JavaScript:那些你一直搞不懂的地方』這門新錄的課程,講解:closure、prototype、this 等觀念,對我來說超級有用,剛好可以幫助準備面試題。
不安中繼續前進的能力
課程默默到了尾聲,其實一路上的學習我內心都充滿著不安與緊張。儘管不安,但還能繼續前進,或許這要感謝過往的經驗。在我過去的求學及工作經驗中,已經很習慣:沒有人帶著你一步一步做,你只會接獲目標,不管過程中遇到什麼事,只能想辦法自己解決。應用在這個以自學為重的計畫,好險自己還駕馭得住。
想辦法解決(好像在講幹話 XD),除了「do something」之外真的沒別條路。舉例來說:這個計畫是在學習新事物,接觸新事物時的卡關狀況,通常是不夠熟悉或不夠理解造成的,這個時候就是大量的閱讀與瀏覽關於不了解的地方的資料,多半都能再繼續推進。不過問題的面相有很多種,還是要自己慢慢體會解決各種問題的過程,才能更有自信應對新問題。通常我遇到問題有粗略幾個步驟:先定義問題、想想造成問題可能的原因、找出對策、嘗試解法。
面試期:準備履歷作品集 & 一邊繼續學 Redux
準備面試這個階段是我最害怕、心理壓力最大的時期。主因是我對於自己的經歷沒有自信,我認為自己履歷上的硬傷在學經歷,且過去的工作型態太特殊,很害怕自己根本無法被認可。潛意識其實很想逃避求職,很不想面對履歷。記得 12 月底時,huli 開始推 A、B 班的同學們勇敢出去投履歷面試,感謝他推了我一把,儘管心魔纏身 XD,還是得面對現實。我一邊說著要把 Redux 學完,一邊拖延,一邊逼迫自己緩慢完成履歷。也許其他人很快就寫好履歷,但我因為太害怕學經歷不夠符合就業市場的需要,會造成履歷的硬傷,斷斷續續修了約一個多月。
課程給的幫助
我覺得課程在求職時給的幫助滿恰到好處的,有以下:
找到工作後的感想
我是在年後開始投履歷排面試(約 60 幾封,先排了 10 場左右),228 連假結束後收到一些 offer。
總結
其實我沒有上過其他培訓班或是課程,無從比較優缺點,以下列一些我個人感受到的特點及可以加強的地方:
特點:
可以加強的地方:
基礎細節的說明與要求
我記得簡章說過:
但其實 huli 的教法,偏向讓你自己去思考為什麼要這樣做及自己想辦法找到解法,不會直接告訴你細節。對於零基礎的人來說,也許需要有人先整理好非常仔細的基礎環節,才有背景知識可以去思考如何做更複雜的操作。站在『好習慣要從小培養』的觀念來看,對於入門者教學,若那些超基礎細節,能有系統先被整理好,讓學習者有意識的培養對這些細節的掌握,似乎也能減少卡關的狀況。
面試時,發現優化的部分在學習時的感受比較少:因爲課程作業規模很小,儘管知道優化的概念,沒有實際體驗其實很難感受到優化的差異。
想嘗試任何事,應該先靠自己勇敢找答案
很多還沒踏出第一步的人,習慣先問別人說:「我XX歲,OO背景,可以轉職工程師嗎?」。老實說,這種問題真的是無法從別人口中得到解答的,只能自己去嘗試才有答案。決定做一件事的步驟不外乎是:盤點自己、設定目標、擬定策略、執行、檢討修正。做不同決定就有不同的代價,一開始就看自己有沒有看清現實、願不願意付出代價而已。
我當初決定投入計畫,沒跟太多人提起,也沒問過別人,因為答案其實都在自己心底(好啦,一方面是放棄的話,方便假裝什麼事都沒發生過)。在計劃進行中,也是自己默默進行。到拿到 offer 之後,才開始跟一些朋友討論,老實說,自己心裡其實早就有答案,只是想找個人確認想法而已。總之,別人真的無法幫自己找答案,想做就先嘗試吧。
工作之後才是開始
每一天都還是覺得自己不足,有很多需要繼續努力的目標,例如:兼顧自己解決問題與效率之間的平衡、多練習看別人的 code、深入 JavaScript、演算法......。
說這麼多,最重要的還是要開心啦,雖然從學習開始的第一天起每天都很抖,不過坐在電腦前還是能感到開心的~(希望工作幾年後也能依然如此 XD
P.S. 現在有一種獵人試驗剛結束的感覺 XD,挑戰才正要開始!
The text was updated successfully, but these errors were encountered: