文組學code|轉職之旅,廣告人到軟體工程師的學習歷程

by Kelly Guo
129 views

從學習寫程式開始,就一直想著有一天我也要分享轉職成功的文章,就如果能向所有半路出家一路上的學長姐一樣,證明只要喜歡加上堅持就一定做得到的信念。而這個堅持可能不是幾個月,可能是幾年,而程式語言就是一個持續累積真的就會持續進步的知識,雖然沒有學習完成的一天,但會慢慢的迭代那個你對軟體與電腦抽象知識的理解力。

我是純文組生,唸的是廣告學,不過我一直都很喜歡學習新物,我總是在學習的過程中體驗到成就感,但也因為是文組,所以從來沒有想過要學程式,總覺得那個跟數學很好的理工科有關。況且我在原本的產業也深耕很多年,因此不是真的突然決定要轉職的,而是在慢慢學習中並且有做出一些實用的工具,漸漸的才萌生想要轉職的念頭。因此在整理時間上也是拉比較長,就是漸進式學習,也有時候是隔個2-3個禮拜再打開VSCODE的狀況,打開前還會需要鼓起勇氣那種。

如果要討論學習密度的話,我想大概是花了一年的時間認真學習,因此也不是那種花了6個月就立刻轉職的工程師。

我的學習路程也不算太正規,走了一些陡峭的路。我覺得這些陡峭的路很值得分享。

【文組生的學CODE之路 1】來得及嗎?程式語言學習|學習筆記17

不知道自己在學什麼的階段

大概在一年半前,那時候還沒有chapGPT,我開始自學Python,一開始使用的工具是CodeCademy,雖然Python已經是對於新手來說很簡單的語言,整個學程我大概花了3-5個月學完,其實還滿久的,主要是不連貫,而且一天可能花個30分鐘,一週1-3小時不一定,因此學習速度跟效率很慢,一開始其實沒有覺得很有成就感,因為就是在學習基礎的知識,對於整理的脈絡還很不懂。(這時候我偶爾會碰碰HTML, CSS,因為這兩種就會讓你的成就感大增)

但是如果一開始沒有學好基礎的語法運用,像是For loop, While loop, 變數, function , class等思維,尤其時物件導向class,直接跳到後面開發,我認為是很不好的,因為會連基礎語法的正確性都有問題。

我當時不清楚學習流程可以怎麼規劃,所以我的下一階段就直接找了一個Django的課程(幾乎完全以物件導向製作的框架),看著影片的人寫什麼我就跟著寫什麼,可以說是完全一頭霧水的使用物件導向寫出了課程的人才網站,但我感覺到非常的迷惘跟挫折,因為我完全不懂這一切是怎麼發生的。這時候已經過了半年吧,當時都還有工作,因此也是有一搭沒一搭的匍匐前進。

我其實也滿不懂我怎麼在這階段沒有放棄的,其實就是覺得好玩,能學一點是一點,總有一天可以搞懂。同時我覺得看太多轉職文章也滿挫折因為太多高手了,而且很多人都說要去補強資工的底層知識,但那些對我來說都太生硬了,也想像不到終點跟興趣點,因此我就在初期也沒有去閱讀資料結構、記憶體等知識。

在能力還不足的時候大量看適合自己的影片,找到看得下去的資源。

【文組生的學CODE之路 2】新手程式語言自學課程推薦|Python,Django,Html,CSS

 

一頭霧水還是開發出自己的食譜網站

因為看了超速學習這本書,我了解到後設學習的重要性,我決定找一個自己想做的題目,透過自己線上找資源的方式做出來。直上Django學程,被一個Udemy的課程手把手的交會「打code」,其實django很多物件導向的關鍵,還有MVC、route框架的基礎知識,在我都還沒搞懂之前,就只能影片打什麼字,我就打什麼字,完全不懂邏輯的硬是copy了一個一模一樣的人才網站,那時候的狀況是,如果沒有影片的指令,我是不會寫code的

結束後我還是充滿失落感,但我按照了課程上教學的憑著記憶去使用CRUD去做了自己的食譜網站,這部分最難的應該是很多table的設定,多對一、多對對、一對一,這邊實在是很一頭霧水,還有migration版本控制等的學習。

由於教學還是有版本的不同,這時候我就偶爾會去研究文檔、stack overflow,大概去了解為什麼功能不能用,有什麼middleware沒有設定,環境變數該怎麼設定。那時候也因為不懂環境變數直接把secret key上傳到github,也花了很多時間才把github已經上傳的機密全部刪除沒有歷史紀錄。

最難的階段是,因為教學網站不是最新版本,在我完全不了解deploy、雲端是什麼的情況下,硬是研究了heroku怎麼部署、s3怎麼使用、也因為heroku取消了免費版本,改研究digital ocean怎麼使用,當然又是一堆SRE的技能,只能按造官網的文檔,一步一步建立出來的。

學習到這個階段,其實都還沒有去把底層知識補強,我是從會使用工具開始,但工具是怎麼來的,原理是什麼都不甚了解,像是為什麼可以用home brew, pip install, terminal的指令是什麼都是遇到才去查詢的。這個階段也花了4-5個月了,一樣是花假日或是閒暇的時間學習的。

雖然過程聽起來很沒系統,但這個階段開始學會找資料、debug、找相關影片、環境變數、CRUD的基礎,以及重要的是練了手感,從一開始連def跟param寫的方式都陌生,哪裡要加入:、哪裡要空格都很不熟,到了大腦已經可以自己記憶這些資訊,讓大腦協助自己學習,就是訓練肌肉的慣性,慢慢的就會有邏輯上的建立。

【文組的學CODE之路 3 】用Django寫程式第一個專案|要怎麼開始?會遇到什麼問題?

 

開發自己會用的東西LINE機器人

因為經常管理資訊,總覺得沒有把資訊儲存起來很沒組織。想到最容易取得的LINE,在網路上也找到類似的資源,讓我使用Javascript + Google Sheet (DB) + Google Script(Deploy),開發了一個網站管理的機器人,我可以在上面上標籤,透過CRUD與search的方式找到資料。也使用了其中一個聊天室來記錄我的日記,全部的資料都會存在Google sheet的database中。

整個過程用了約一個多禮拜,這次開發時間就快速很多,比較麻煩的是串接以及去了解Google script怎麼使用。這個階段多了很多的成就感,這樣的小系統也因為只有自己用,使用免費的雲端就很夠用了!

 

加入AppWorks School

再來就是期待已久的加入AppWorks School,完整五個月的訓練,通通給你任務讓你自我學習打怪。雖然過程很瞎子摸象,先學會工具、再學會邏輯的概念,也許不是每個理工出生的人都能認同的,但是這樣的方法能加快學習速度與建立成就感。再用這樣的熱情去把底層知識補足。這是關於我在School過程的文章,想轉職的人應該都有聽過這個機構。

【畢業文】 AppWorks School 後端班之五個月後的培訓記錄

 

持續補強基礎知識

現在已經上工一陣子的我,當上初階的後端工程師,最後有拿到不只一家offer,非常感謝每個公司願意給新人機會,不管是面試、或是進一步的深聊,都是練功機會,中間也經歷過很多面試挫折,考leetcode進階題不會寫、考Django的語法作用不會寫或是被資工系的主管洗臉的。更讓我再次確定要在學習的更深入,除了上班的專業以外,偶爾下班還是會看看Python社團的人都在討論什麼,或是把之前比較好奇的網路、協議、Docker更深入了解,雖然學海無涯,但透過一邊工作一邊自我學習的效率更高了,每天都能感覺到自己有在進步。

【文組學code】程式課程分享|跟著Sam(AWS, React)、鳥哥(Linux)、阿彬電腦(網路)、小賴老師(docker)

 

最後的打氣

相信看這篇文章的你,應該也在轉職的路上,或是對程式有興趣的人。如果你也在路上跌跌撞撞,不要緊,這都是很正常的。但是學習程式是迭代的,就像原子習慣,中間學的東西最終都會點線面的連結在一起,慢慢的就會知道每個時間點的所學都沒有白費,即便很零散但都會有意義的。但重點是要確認自己喜歡的心情,是不是能接受在螢幕面前打八個小時程式碼,或是一整晚都不睡的研究文件、解決bug?從小的專案開始觀察自己,培養成就感跟耐心,祝我們都能在寫程式這條路上繼續成長進步。

0 留言

你可能也會喜歡...

留下你的想法