學習網頁開發的起點與過程,朝轉職目標邁進吧!

Ivy Hung
May 9, 2021

雖然起點是為了精進數位行銷,但我在學習的過程中發現,比起將產品推廣給消費者的行銷工作,我更希望自己能參與開發一個好產品。

學習程式語言的起因是想要升級自己的數位行銷技能,沒想到接觸到網頁開發領域後,愈學愈有熱忱,再加上完成各種專案的帶給我的鼓舞,讓我發現比起將產品推廣給消費的數位行銷工作,我更喜歡自己開發產品的成就感,因此現在正努力朝著轉職全端/後端工程師的目標前進。

因數位行銷工作,萌生學習程式的念頭

我的第一份工作是在電商擔任數位行銷,主要負責數位廣告投放。我喜歡數位行銷是因為能夠分析消費者在網站及社群上的行為,進而針對不同受眾客製化行銷內容,提升行銷成效。而為了要不斷優化成效及效率,學點程式語言似乎是必須的。

工作期間,雖然我的廣告投放表現每個月都在提升,但我知道有些事可以做得更好。例如:我們使用第三方平台會為行銷活動建立專屬的 Landing Page,雖然不用寫程式可以完成,但也因為模板的限制,沒辦法把我們的創意發揮到極致。另外,我常常有埋設事件追蹤碼的需求要麻煩工程師,來回溝通都要花上不少時間,如果我懂程式就能自行完成,提高效率。

不管是工作上會用到的製作 Landing Page 、埋設廣告追蹤碼等等的需求,或是我在工作外想自我精進的 SEO,都需要學會一點程式語言才能做到更好,因此我開始慢慢摸索怎麼學習程式語言。

學習程式語言初體驗的撞牆與失敗

身為一個完全沒接觸過程式語言的小白,剛開始就碰到難關讓我差點放棄學習網頁開發,轉而學起跟廣告投放較有關聯的數據分析。

我在線上學習平台購買了幾堂評價很好的網頁開發課程之後,就開始興致勃勃的上起課來,沒想到模仿老師的寫法是很簡單沒錯,但到了要自己做作業刻一個簡單的網頁時,卻完全不知道該如何下手。

這樣的學習經驗讓我開始產生自我懷疑,是不是自己太笨才會不懂怎麼寫網頁?因此當時決定先暫時放下學習網頁開發的課程,轉而學習聽說新手較好上手的 Python,也剛好從事廣告投放會有分析數據的需求,所以決定先學好 SQL 和 Python。

為了精進數位行銷,再次挑戰學習網頁開發

儘管失敗過一次還是阻止不了我對網頁開發的好奇,因為學會的話對我的數位行銷技能絕對是大大加分,因此我決定趁離職之後較多空閒的時間來專心挑戰。既然一個人看線上課程的方式行不通,我決定換個學習方式,經過一番必較之後,我選擇有進度制、有助教批改作業又能遠端上課的 Alpha Camp。

第一個月的課程從程式入門開始教起,不是一開始就要你照著課程寫出一模一樣的畫面,而是先從怎麼畫流程圖、程式邏輯、切版等等的基本功開始教起。打好基本功之後,在寫練習看設計稿做出基礎頁面的作業時,我竟然不用看解答就可以自己刻出一個頁面,看著畫面逐漸成形時心中充滿感動,原來我並不笨啊!

Certificate of Intro Course of Full Stack Web Development Program

達成最初目的的同時,開始對網頁開發產生熱誠

學完一個月的基礎課程讓我對網頁開發更加好奇,因此毫不猶豫地報名為期三個月的第二學期。這個學期的重點為建立網路開發的能力,了解網路產品如何運作、如何打造網路產品及如何設計好的網路產品。過程中我也逐漸發現自己對網頁開發的興趣,已經超越當初設立的目標了。

學期二的內容相對更有挑戰,我學到許多會對數位行銷有幫助的技能,達成我最初想學習網頁開發的目的。例如:我學會使用 Bootstrap 快速打造出 RWD 網頁後就能自行建立 Landing Page,還有當學會操作 DOM 節點去監聽事件時,也終於了解以前常常使用的 Google Analytics 為什麼可以紀錄網站上使用者的行為了,往後若要埋設廣告事件追蹤就可以自己來了!

除了達成最初設立的目標,我在學會更多進階技能如串接 API、使用 Axios 發送 Ajax 請求等等之後,發現自己愈來愈享受寫作業的過程,也會主動去觀摩其他人的程式碼,尋找優化的方向。這時候的我漸漸對網頁開發產生熱忱,開始不想止步於將所學的技能應用到數位行銷而已。

設立了更長遠的目標 — 轉職全端工程師

到了學期二的尾聲,完成多個小專案帶來的成就感,讓我發現自己比起將產品推廣給消費的數位行銷工作,我更希望自己能參與開發一個好產品。經過思考自己喜歡網頁開發的哪一個環節後,決定朝向擁有全端技能的全端/後端工程師的目標前進。

在這個學期,終於碰到期待已久的後端開發,一次性的學會了Node.js、Express、git、handlebars 等等新技術,我終於完成了第一個 CRUD 專案 — Expense Tracker。透過完成全端專案,我對怎麼打造一個網路產品有了初步的了解,詳細的專案介紹請參考:Expense Tracker 專案介紹

我發現自己很享受建立專案架構與操作資料庫的過程以及掌握資料處理邏輯來完成指定功能的感覺,也希望能有獨自打造具完整前後端功能網路產品的能力,因此設立了轉職全端工程師的目標,並馬上報名了為期八週的學期三。

Certificate of Foundation Course of Full Stack Web Development Program

學習曲線快速增長,每一週都感覺自己不斷進步

設定了轉職目標之後,學期三的我投注更多時間在學習新技能及複習過去所學過的知識,相對於過往較鬆散的學習方式,我清楚感受到自己不管是在技術上或是時間管理上的進步。

每一週透過撰寫作業、助教回饋、優化再優化的循環,我發現自己透過關鍵字找資料、解決問題、自學並應用新技術的能力不斷提升,也開始會在撰寫程式碼時會開始初步思考效率及擴充性,並且透過重構讓程式碼更簡潔易讀。另外,透過多次的專案不斷實作 CRUD 的功能,我愈來愈熟悉開發步驟,能夠只看規格要求就自行完成一項功能。

除了學習技術之外,因為課程內容及作業量變多,時間管理顯得更加重要,我重拾了 Trello 和蕃茄鐘管理自己的進度,發現學習效率明顯變高許多,也因此在後續小組專案導入了 Trello 管理團隊進度。

完成團隊協作前後端分離專案,證明自己的能力

學期三最後的 Simple Twitter 專案對我而言是很重要的里程碑,在過程中碰到了很多第一次,第一次團隊協作、嘗試前後端分離、設計 API 和資料庫結構、使用 socket.io 在三天內做出聊天室及即時通知功能等等,過程中需要大量溝通協作及解決問題,這些都是非常寶貴的經驗。

我在專案中不僅一次性的用上了過去所學的所有知識,也挑戰了在短時間內學會並應用新技術的能力,很慶幸我先前的努力在這得以展現,能夠在時限內完成挑戰功能帶給我很大的成就感之外,完成整個專案的過程也證明自己是有抗壓性、能夠快速找出問題點和修正方向、幫助他人解決問題的人。詳細的心得請參考:[心得] 前後端分離專案 — Simple Twitter 協作流程及反思

結業不是終點,是邁向目標的起點

學習網頁開發的這半年多來,受到許多助教的幫助以及看著許多同學一起努力都是我成長的動力,結業的那一刻想到未來要一個人走時不免有點感傷。慶幸的是在這過程中有結交到一些志同道合的夥伴,約好督促彼此朝向轉職的目標前進。

非常感謝給了我很多作業回饋的 Ivan 助教最後給我的肯定及叮嚀:
『看到妳寫的課後心得,令人相當感動,也從拾助教當年學習的程式開發的初心。當學習的過程中,能夠找到自同道合的夥伴是很幸福的事情,但越往高處會越是孤單,若想要精進,也必須從中找到自處的樂趣,相信妳已經找到那份前進的動力與成就感。

而在這堂課妳學習的過程中,助教能充分感受到妳的對於基礎知識的札實理解,與對於問題的實事求是,打好底子終究是學習程式開發的唯一致勝關鍵,並沒有所謂的捷徑。因此持續精進,是在資訊領域必須不斷要求自己的環境,也才不會被這領域淘汰,也是對自己人生與職涯的期許。

如妳最後提到的,結業絕對不是終點。而是要舉步維艱的繼續地向前邁進,並時刻審視自己的學習生涯,並切記莫忘初衷。加油! 繼續努力!』

我相信結業不是終點,感謝 Alpha Camp 規劃完善的課程教會我網頁開發的基礎技能、感謝助教每次對於作業的回饋指點我進步的方向,而我在過程中培養了自學及解決問題的能力,相信我能夠在這基礎上繼續自我精進、成長,努力朝目標邁進!也期許未來的我有能力像助教一樣幫助學弟妹,回饋曾經幫助過我的社群。

整個學習歷程幫助我更了解自己,原來比起創意我更擅長邏輯思考,也難怪我如此享受寫程式的過程。

開發 Simple Twitter 專案是我第一次體會到廢寢忘食是怎麼回事,雖然有壓力但我仍然覺得很開心、充滿幹勁,我想就是因為做自己喜歡的事吧!想當初認為自己喜歡數位行銷,但從來沒有達到像寫程式一樣如此專注投入的境界。

當我跟前公司面試過我的主管聊到學習網頁開發的心路歷程,提到我很享受撰寫程式邏輯時,他也回饋說當時他面試了那麼多人,其中也有工作多年的老手,身為新鮮人的我居然是把廣告投放邏輯講得最好的,錄取後我在工作上的表現的確也十分亮眼。

我想這也代表我本身比起創意面就是更注重邏輯思考的人吧,也難怪我很喜歡寫程式的過程,勝過發想行銷創意的好幾倍啊!謝謝半年前勇於挑戰的我沒有放棄學習網頁開發的機會,並且一路上堅持下去,才有機會能更了解自己。

--

--