該如何正確的學習前端技術或程式語言

前言

先講講為什麼我會寫這一篇文章,自從加入六角學院轉行走前端工程師,陸陸續續都有朋友、網友及同學等都來請教該如何像我一樣學習前端技術,我思考了好一陣子才決定寫這一篇文章作為經驗分享。

人人都可以當工程師

並沒有人不適合工程師,只有你願不願意花時間。


圖源:unsplash

以自身經驗來講,高中雖然是資料處理科,大學則是讀資訊管理系,但其實我並沒有學過程式語言,學校也只教我打打 Office 及考考證照而已。

所以我本身並不是寫程式出身,會接觸程式語言是在大學三年級,因為要準備畢業專題,而認識了一名老師,他主要授課 PHP+MySQL 基礎,所以我就想說【反正我對網頁有滿有興趣,就試試看寫程式吧!】,就這樣子開啟了我工程師之路。

剛開始學習時我時常撞牆,甚至搞不懂程式語言為什麼這麼難懂,也因此停止半年至一年左右沒有寫,更不用說我數度萌生想放棄的念頭。

如果真硬要說的話,我最早接觸的程式語言是寫遊戲對話腳本還有寫寫遊戲外掛,但這些只是因為遊戲打不過想偷懶而已(疑?),但是這些與真正程式語言開發完全無關,只是單純的txt文字檔及依照別人開發好的規則去填入資料而已。

所以你要說我很會寫程式嗎?不,我不會,我還是中途半路出家的。

是什麼導致你選擇這條路

選擇這條路絕對是有什麼原因導致。

前面有講到我自找苦吃挑戰寫程式,可是我會挑網頁當畢業專題是因為我覺得網頁很炫、很酷,所以我想試試看。

可惜萬事起頭難,我主要學的語言是後端 (PHP+MySQL),儘管我已經了解該如何操控資料庫 (CRUD)、關聯資料表甚至還去學習如何架設Server等,但我還是不清楚自己學會這些到底對社會可以有什麼貢獻。

所以我花了 3~4 年到處學習各種語言試著找尋自己的興趣,舉凡 C、 C++、 C#、 Python、 Java、 Swift 等都有學過,但是就是不知道自己學了這麼多語言有何用處,直到我在 2018年9月,公司要求我負責網頁前端開發,我為了學習前端技術,而線上報名加入六角學院,上完課才發現自己當初最初的初衷其實是前端開發,而不是後端開發,所以在學習程式語言之前一定要思考自己的初衷,到底自己是被什麼給感動。

學習程式語言之前的心態

學習新技術絕對會遇到滿滿挫折。

很多人在學習程式語言都是因為可以賺比較多錢,所以選擇寫程式,但是往往忽略很重要的三大要素。

1.興趣
2.熱情
3.毅力

三者缺一不可,若缺少任何一個都會讓自己的學習退步甚至懷疑自己適不適合,儘管錢多你也會熬不下去。

通常興趣、熱情是無法與現實面打上等號,所以如果單靠興趣、熱情去學習新技術絕對很快就把挫折這個技能給點滿,甚至有可能放棄寫程式轉行,這個時候就必須仰賴你自己的毅力支撐,假使你今天撐不下去了,就試著去回顧自己當初為什麼接觸這個領域的初衷,而許多人的成功都是因為堅持。

該如何起手學習程式語言

現在是一個學習爆炸的時代,要試著找出適合自己的學習方法。

很多人都會問我該如何學前端開發,甚至想模仿我的學習方式,但我必須說【很抱歉我的學習方法,並不一定適用於你/妳】,因為我本身曾接觸過程式語言,所以在某些邏輯上自然就會比較容易懂。

所以每個人都應該要試著去尋找適合自己的學習方式,固然前期可以像做飯一樣先模仿炒菜,但後期若還是一樣不積極尋找自己的學習方式,那麼就只會落得被淘汰的下場。

舉例來講我在看六角學院的線上課程影音時,每一個小章節我都會做筆記 (Evernote),所以光 HTML&CSS 章節我就做了 56 本筆記,然後來回重複看至少2~3次,只要一個地方我稍有觀念不清楚就會果斷重新再看,一天的學習時間至少 8 小時至 12 小時不等,因為我本身也容易健忘,所以我選擇勤勞一點重複地觀看,勤奮一點寫筆記,讓這些知識及觀念變的就跟騎腳踏車一樣。

如果你跟我一樣是屬於容易健忘的人,我會建議你一定要多多做筆記,筆記可以幫助你釐清思緒進而加深印象。

總是記不得語法

學習程式語言就跟學習新的語言一樣。

當你在學習程式語言時,千萬不要死記而是要去理解它的意思及用途,舉例來講為什麼 Apple 我們會知道是蘋果呢?因為我們理解它的意思,所以才會一聽到 Apple 腦袋就會立刻浮現蘋果的字樣。

在來舉例一個例子,CSS 中有一個屬性叫 float,字面翻就是浮動屬性,那float你若沒有試著去想像甚至理解它,你就會常常忘記做 clearfix (清除浮動),所以我對於 float 的理解就是 【float把這個東西浮起來了,所以下面的物件就會沒有高度,而且也無法推動左右,為了避免這種狀況就要做清除浮動的動作】。

該如何做到達到面試的水準作品

作品的水準,是由自己來決定。

這個問題其實也很多人私下來問我,但作品的水準真的是由自己來決定,可是每個人心中的尺不一定,那麼你一定會問那我到底該如何做到符合業界水準的作品?那就試著丟履歷!被洗個幾次臉你就知道這個作品到底有沒有水準了。

另外你也必須先問問自己對於你做的這個作品滿意嗎?如果你滿意,那你有試著想過這個作品還可以做什麼樣的調整嗎?

以六角學院 Javascript 學徒的試煉中有一門小作業是做 GitHub API,單純就只有顯示這樣。

但我覺得很不滿足,所以我用了其他技術及 UI 設計來改良畫面,盡可能看起來更專業一點更有美感,甚至也不停地更新這個專案功能,加入了 localStorage 功能。

甚至我還自己挑戰做了 GitLab 版本。

切版是否要練到一看到版面就知道該怎麼寫

不論是什麼版型,基礎作業都一定要先做。

我個人轉當前端工程師約半年左右,可以手刻 CSS&HTML、RWD 、標籤語意化,但我還是沒有辦法做到一看到版面就知道該如何切版,但是我會先做一個動作,先分析版型,然後紀錄 class 名稱,實際開發時就可以依照記錄的做開發,避免你開發時還要在那邊想 class 老半天。

(迷之聲:字很醜)

JS框架到底該怎麼選擇

只要能夠解決問題,都是好框架。


圖源:連結

每個人對於 JS 框架的推薦都不相同,你問學 AngularJS 的人,它就會跟你講 AngularJS 好,所以你問一百種人就會得到一百種答案,所以你問我,我也會跟你說 Vuejs,畢竟六角學院就是教 Vuejs,可是這三大框架其實並沒有差異太多,觀念都是相同,所以你只要挑一個你喜歡的框架將它學到爛掉,你今天就算跳別的框架你也能夠很快上手。

這個觀念套用於學程式語言也是同理唷。

工程師的價值在哪裡

只要你能解決問題,你也可以自稱工程師。

工程師有很多種工程師,有 MIS、 硬體工程師、 APP工程師等,但業界永遠都缺乏工程師,所以真的不用害怕自己走了工程師這條路後身價大降,主要原因業界永遠缺乏可以解決問題的工程師。

我的工作經歷裡面就有一個很特別,那時候我還很菜,雖然是掛全端工程師,但我卻完全沒寫過程式,而是善加利用網路資源來解決各種問題,老闆也因此對我很滿意,他也認為我是個很厲害的工程師,所以往往企業並不是需要你很會 Code,而是需要你解決問題,只要你能夠圓滿的解決問題,那麼你也可以是一個好工程師。

結語

最後如果你一直猶豫不決到底是否走工程師這條路,你就想想看如果這個職業真的是你所嚮往&所愛的工作,那麼你只需要思考”你希望你老的時候,後悔當初嘗試沒有走這條路”嗎?

最後如果你跟我一樣對於前端技術很有興趣,但卻沒有好老師,那麼我會像你推薦六角學院,我在這邊學到了許多技術,甚至做出了大型電商 Vuejs。

雖然 Vuejs 的最終作業是由個人發想製作,但背後的程式,都是老師們用心一步一步教導拉起來。

最後如果你想看我的Vuejs作品,可以點以下連結唷

Demo:https://hsiangfeng.github.io/RagnarokShopV3/

GitHub:https://github.com/hsiangfeng/RagnarokShopV3

0%