我目前主要是做前端,少数写后端,,也是自学然后找到工作,目前在美国纽约华尔街日报
(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