為什麼這篇javascript自學鄉民發文收入到精華區:因為在javascript自學這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者philosiphy (電機系課真多 )看板Soft_Job標題Re: [請益] 一些關於自學前...
javascript自學 在 經濟一週 EDigest|投資、理財、經濟、商業資訊平台 Instagram 的最佳解答
2020-04-28 06:27:41
【#經一速遞】 自細與父母鬥智 成逆向工程專家 港女揚威海外 FB、IG高層都Folllow 又一名香港年輕人跟「國際線」connect了!Jane Manchun Wong(黃文津)對香港人來說,是一個陌生的名字,不過活躍於Twitter的她,是「App界」的網紅,連Facebook、Inst...
我目前主要是做前端,少數寫後端,,也是自學然後找到工作,目前在美國紐約華爾街日報
(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
※ 編輯: philosiphy (207.237.11.51), 06/26/2018 18:53:01
※ 編輯: 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