[爆卦]前端工程師學習地圖是什麼?優點缺點精華區懶人包

為什麼這篇前端工程師學習地圖鄉民發文收入到精華區:因為在前端工程師學習地圖這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者philosiphy (電機系課真多 )看板Soft_Job標題Re: [請益] 一些關於自學前...


我目前主要是做前端,少數寫後端,,也是自學然後找到工作,目前在美國紐約華爾街日報
(The
Wall Street Journal)
我覺得前文寫的很好,不過我對於某些點有不同的想法,我也根據前文寫的那幾個分類來



1.四大碩問題

如果是要做前端工程師,我真的覺得特地去念四大碩(台清交成)沒有其必要性,當然就算
是想當走全端,我也覺得沒有一定必要性,當然我不是說正規教育研究所不好,加上我在
台灣職場沒當擔任過軟體工程師的工作,所以我這樣講可能會有點偏頗,雖然我以前雖然
是四大碩,但是都是電機相關,大學是中央電機,研究所是交大電機,主修影像處理、圖
形識別、電腦圖學,但這學歷跟我目前做前端沒有任何關係,研究所寫也只是寫matlab跟
c/c++。

重點是,為什麼要去浪費兩年的時間去念研究所,如果還要寫論文的話,更是浪費時間與
金錢,我個人覺得,你要做的是front end developer,你需要的是好的作品集以及好的
專案@github,可以讓人看出你寫程式以及實作的能力,下面是我的網站以及作品,我不
敢說我做的網站超級好,有些是我在國外唸
碩士去旁聽大學部的課程寫的作業或是自學課程寫的作業,我國外資管研究所幾乎沒有培
養我任何寫網站的能力,最多只有教資料庫。重點是要不同的寫作業/累積作品,實作能
力才是重點!

GitHub
https://github.com/johnnyhsu1106

個人網站及作品集
http://johnnyhsu1106.com.s3-website-us-west-2.amazonaws.com/


我身邊的同事,有些都不是CS背景的,可能一部分也是因為不是在四大公司(google, fac
ebook) ,但是他們有些是自學或是參加coding bootcamp,也都是不錯的高手,所以我覺
得有強烈的學習意願才是重點。

我完全同意前文寫的,學前端並非是可以輕鬆就非本科轉職,


2. 如何自學

在台灣之前已經很久沒寫過程式,工作是當硬體工程師/專案管理詩/產品經理,完全跟寫
程沾不上邊,所以我出國唸書的時候,所以我碩一下學期就去同時旁聽兩門Python的課程
,跟大學生一起上課,每門課都有10個作業,10多個lab練習,每次上課都有worksheet 可
以練習寫程式,我除了沒參加期中/期末考試外,每個作業/練習都有寫,後來因為實習需
求,我自己又去上Coursera學了html/css/javascript,下學期又去旁聽兩門課,一整堂
學了html + css,一整堂學了web development(js + php + mysql),也是狂寫作業,以
及自學Java,跟同學寫了一個poker game project ,基於design pattern

在找工作的時候,我也是沒學過React, Angular,因為學校哪會教你這些library/framew
ork,所以我開始上Udemy的課程,看到職缺需要什麼,我就去學,面試前時候需要線上考
試,現場面試的時候需要寫程式碼在白板上,就去學資料結構以及演算法,然後狂在leec
ode/lintcode上面刷題目,當然這可以先學,不用等到要面試才學。

https://imgur.com/a/CRv8gdd ,這些是我的課程,但是我也不是每一門都上完。

結論是
網路上面有太多資源 ,像是Udemy,可以先去上這些,一門課才10元美金,然後覺得自己
有興趣後,想要去上實體課程再去報名,Udemy的好處是可以一直不停的重複聽,然後一
個月內還可以免費退費,千萬不會有那種上網路課程,覺得自己會怠惰的心,所以先去上
實體課程,因為一開始去上實體課程的缺點是,對於沒有基礎的人而言,一開始如果聽不
懂,很容易就追不上進度就放棄了。


3.學習曲線

準備

(1)挑一個好用的Text editor: 我個人用過notepad++, sublime, atom,目前用的是atom
,之後或
許轉戰到vscode
(2)買一台好的電腦:我個人推薦用mac,光是unix作業系統的terminal就是好用,我個人
安裝iterm 2
(3)選一個好用的瀏覽器:我個人推薦chrome,超多web app extension以及強大的chrome
dev tool.
(4)買1-2台的外接螢幕:一邊寫code,一邊看web,一邊看dev tool的console,多螢幕真
的是必要。


初階

(1) HTML: 最好學會HTML5 那些semantic element
(2) CSS: Box Model, Display, Font, Position, Float,, Pseudo class…
(3) Javascript: 學會基本語法,內建資料型態(string, array, boolean, null, objec
t, map, set),基本DOM API
(4) Git/ Github: 你遲早要學會的工具
(5) Chrome Dev Tool:你遲早要學會的工具
(6) NPM: 你遲早要學會的工具

請記住,w3school是你的好朋友。


中階

(1) CSS: Flex, Media Query,如何做出RWD(Responsive Web Design),Trasformation
, Transition, Animation(keyframe)
(2) Javascript: ES5, ES6的差別,何謂callback function? Event Handler,
Event Loop,程式執行的時候,哪些會在Call Stack執行,哪些會在Callback Queu
e,Ajax(XMLHttpRequest, fetch),如何寫Callback/ Promise,至於是否要學ES7....,
真的是看心情。
(3) jQuery: 可學/可不學,我有學,畢竟這真的不難,不可避免有人會用,總是要看的

(4) Bootstrap: 可學/可不學,我有學。可以快速做出一個不錯看的網站

我建議不要一開始就學jQuery,至少有中階程式能力後再學。我看過有人寫程式都是
jQuery派,會導致程式碼缺乏架構,缺乏模組化,我最近就是狂把jQuery改成vanilla JS
,自己寫fadeIn, fadeout, animation, slideUp, slideDown,要改jQuery的最累的就是
沒有模組化,幾乎是一個block包含所有商業邏輯。

請記住,MDN是你的好朋友。


高階

(1) React / Vue / Angular等Library或框架: 我建議學React,因為容易入門,多人使

(2) 寫出MVC架構的web app:
(3) 寫unit test: Mocha, Enzyme, Chai這是我目前用的
(4) Node JS: 可學/可不學,想要深入JS的人可以繼續學,我是有學
(5) Gulp/Grunt: 可學/可不學,看你公司用哪個或是個人爽度
(6) Sass/Scss: 可學/可不學,看你公司用哪個或是個人爽度
(7) Data structure/Algorithm: 我是上九章算法班/強化班,這兩門課,加上Lintcode
刷200題。

請記住。Stack Overflow是你的好朋友

總結:
我目前只是一個一年多工作經驗的菜鳥front end developer,我大多都是自學來的,
我相信有心/有興趣/少許的天份,你也可以邁向軟體工程師之路。

PS: https://github.com/goodjack/developer-roadmap-chinese
這看起來真的很實用

最後說明一下為什麼我要來美國念碩士,是因為我必須要有文憑才比較有機會留在美國工
作(這個就扯到了簽證的問題),但是你不需要碩士文憑,你也可以在台灣工作。

我之前在美國面試google ,amazon的on-site interview,當然最後是沒有上,現場面試當
然考的演算法為主,但是前幾關也是會考跟front end 相關問題。

為什麼會推薦w3school,因為對於’初學者‘而言,上面有比較多的例子,雖然他的東西
是比較舊一點,但是是個好入門的網站。我相信學程式還是由淺入深,循序漸進比較好




※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 207.237.11.51
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1529980631.A.041.html
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 10:45:38
shvanta: 感謝分享06/26 10:58
BaGaJohn5566: 很強 推一個06/26 11:21
alongalone: wall street . 請問是在美國嗎 ?06/26 11:41
mit007187747: 推06/26 11:49
pttrAin: 謝謝你的分享,大推06/26 12:01
e920528: 推一個06/26 12:54
yfu3330225: 在台灣沒有念研究所會少很多機會 要注意06/26 12:56
ymcheung: 也覺得研究所唸完根本沒幫助推06/26 13:08
darkch: 有系統的學習,勝過去讀研碩06/26 13:14
darkch: 花了好幾xx萬拿到一張畢業證書,還不保證一點有那個能力,06/26 13:16
darkch: 頂多稱號好看而已06/26 13:16
smmoon: 以上前提是英文要先學好...06/26 13:21
black209: 推06/26 13:21
theget3874: 感謝分享06/26 13:24
FellRed: 純噓w3school06/26 13:53
nichinichi: 其實主要是那張研究所文憑吧,以後的路會順一點06/26 13:59
bndan: 路順一點 走比較遠...心力耗費太大 有時連初級成果都還沒拿06/26 14:31
bndan: 到就腰折的多的是...06/26 14:32
superpai: 看來近年w3school洗白了06/26 15:43
joejoe14758: 想請問為什麼w3school 會被噓@@06/26 15:59
hakosaki: 聽說滿多錯誤的 可以去國外網站找找 ,讀官方文本還是穩 06/26 16:05
hakosaki: 一點06/26 16:05
lovdkkkk: w3school 還可以啦, 我覺得只是對規格的變動更新慢一點06/26 16:19
lovdkkkk: 不過我想噓 react 容易上手, 所以給箭頭 XD06/26 16:20
stkoso: 能不能錄取是一回事 但是碩士能拿到的面試機會多很多06/26 16:29
THEWORLDS: 很明顯就刷題阿 有刷有差拉06/26 17:20
liuderchi: 推分享06/26 18:14
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 18:31:09
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 18:53:01
philosiphy: 是在美國紐約喔06/26 18:53
philosiphy: React 相對來講是簡單,如果是跟Angular比2&4) 06/26 18:54
daniel54088: React 哪有容易上手.. 06/26 18:57
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 19:12:53
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 19:13:39
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 19:14:55
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 19:18:21
WunoW: 說react容易上手蠻傻眼的,我主流框架都玩過,不覺得reac 06/26 19:26
WunoW: t叫做好上手 06/26 19:26
beaprayguy: Angular對前端工程師本來就有門檻。強型別語言加上服 06/26 19:29
beaprayguy: 務注入特性,本來就有差 06/26 19:29
beaprayguy: 有些架構上跟後端愛語言學習 06/26 19:33
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 19:47:53
philosiphy: 這三個框架當中,react相對容易上手,在美國也比較多 06/26 19:51
philosiphy: 人用,當然覺得簡單與否就是個人感覺了。我個人是覺得 06/26 19:51
philosiphy: 前面的基礎都很好了之後方,react 是容易上手 06/26 19:51
beaprayguy: React極吃javascript水準。我個人無法接受html寫在程 06/26 19:55
beaprayguy: 式碼裡面。比較喜歡分開的開發。選擇angular.這沒有 06/26 19:55
beaprayguy: 對錯問題。同一個人寫出來的react可能10萬八千里 06/26 19:55
beaprayguy: Angular好處是有best practices 可以參照 06/26 19:56
beaprayguy: 我考量後續要維護和教育訓練成本問題,選擇angular06/26 19:57
vi000246: 同意github很重要 非本科的唯一武器06/26 20:16
w5151381guy: 三大框架當中最好入門的是vue吧...React要學JSX而ng 06/26 21:29
w5151381guy: 要學ts,對於新手來睡都比較難入門啊... 06/26 21:29
goodblessu: 更正一下,你舉的IDE應該只算是文字編輯器 06/26 21:36
aidylUranus: 感謝分享~~06/26 21:53
aegisty: 好強06/26 22:12
yuanchen1103: vue 派表示 react的官方文件相對來說寫得不清不楚超06/26 23:08
yuanchen1103: 級爛 哪叫容易上手XD06/26 23:08
zeroshine: 我反而覺得 vue 一堆 api 比 React 複雜很多 06/27 00:42
zeroshine: React 反而概念很間單 抓準 state 跟 props 的概念 06/27 00:43
zeroshine: 就可以寫出容易維護的 code 了 06/27 00:44
※ 編輯: philosiphy (206.15.106.198), 06/27/2018 01:33:01
NCKUFatPork: 現在的React documentation已經寫得不差了吧,然後以 06/27 02:05
NCKUFatPork: 零基礎的純初學者來說Jsx是蠻直觀的一件事。幾個Reac 06/27 02:05
NCKUFatPork: t的設計模式掌握好確實不需要花太久就可以寫出堪用的 06/27 02:05
NCKUFatPork: code。 06/27 02:05
pig0038: 推 06/27 09:25
pig0038: vue的好處是一堆簡體中文資源,官網document也有中文 06/27 09:26
pig0038: React 比較看好是native方面最近越來越多公司採用了,甚 06/27 09:29
pig0038: 至有職缺title直接就說徵React app developer 06/27 09:29
putryyy: 太厲害了!!謝謝分享!! 06/27 09:53
fish0112: 推 06/27 09:56
dododavid006: 我也覺得 React 的概念比 Vue 簡單多了 其實我不懂 06/27 23:15
dododavid006: 為什麼 Vue 的常說要另外學 JSX 學 Vue 不也是要知 06/27 23:15
dododavid006: 道 v-bind v-on 之類的嗎 雖說 JSX 與 html 的差異 06/27 23:16
dododavid006: 是要來的比 vue 的 template 大 我有個 Vue 派的朋 06/27 23:17
dododavid006: 友一直跟我說他無法接受 JSX 雖然他現在被我逼的用 06/27 23:18
dododavid006: JSX 寫 Vue 就是了(笑 06/27 23:18
sora1111: 推,現在也是非本科想要轉走前端,努力自學中.... 06/28 08:23
rarex: vue的進入障礙比較低沒錯 好的react開發者比較難找 06/28 11:26
A131381568: 感謝分享文 07/01 20:20
crazwade: 有幫助 謝謝 07/07 02:21
aad61404: 很完整 謝謝 07/07 14:23
EPGo: Vue比較簡單中文資源也多,但React比較能練到JS基本功 07/26 23:48
chiuchang: 感謝 08/17 13:40

你可能也想看看

搜尋相關網站