Re: [請益] 一些關於自學前端的疑問

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

Links booklink

Contact Us: admin [ a t ] ucptt.com