前端入坑指南
想成为一名前端工程师,却不知道如何入坑?这是一篇零基础入坑指南,也许可以帮助到你。
我要学什么
想要知道学什么,看招聘需求是最快的,这是腾讯3-5年经验的社招需求
总结一下,如果你想找到一个相对较好的前端岗位,那么你需要学习
- 前端三剑客的主流版本:HTML5 / CSS3 / ES6
- 三大主流框架中的任意一个:Vue,react, Angular
- 打包工具:webpack
- 移动端 / 微信小程序
- 一门后端语言:JAVA / NodeJS / PHP
而你如果只是想要找一个普通的前端岗位,那你只要学完 HTML5 / CSS3 / ES6 外加vue或者react任意一个框架就行了,推荐vue,因为中小型公司用着多,而且容易上手。
当然,在学习的过程中,你会接触到UI库,比如elementUI,iview,或者css预处理语言,比如less,sass,还有用起来比较简单的框架,比如bootshrap,JQuery这些学习成本较低,看看文档就会,不作为这里讨论的重点。
PS:我下文说的学习时长预估为xx天,一天以12-15个小时计算
入门先避坑
如果你是一个新手,什么都不懂,那我要先给你两个忠告。
第一个是尽量少用CSDN,除非是bug一类的问题,否则最好去看CSDN,如果你是为了弄懂某个知识点去看CSDN,95%的可能性会因为里面的低质量内容越看越蒙,还有3%的可能性会看到错误的知识。具体我就不多说,可以看看这个知乎帖子对CSDN的普遍评价: 如何看待CSDN
第二个是https://www.w3school.com.cn/ 这个所谓的w3school教程其实有很多毛病,专业性不好,而且还有不少错误的内容,为什么呢,因为这个教程是个人的,并非正规的w3c组织 ,如果你去查查域名所有者就知道了,这是个个人网站,我也不懂法律,也不知道算不算侵权,但是能不看就不看就是了。
虽然你可能看不太懂,但是你应该可以看出来差的有点远,所以尽量不要去看,不然被坑了都不知道。
前端入门篇
在入门阶段,你需要学习HTML,CSS,JavaScript三门语言,这是前端的基础,会直接决定你对前端的理解能力,对框架的理解和运用能力,所以最好打好基础,这样才能走的更远。
这部分我推荐的学习时间是,HTML + CSS 10天,JavaScript 10天。
推荐的学习方式是,先看视频,不懂的看书查文档解决。
HTML + CSS2.0
这部分我推荐是看视频自学,看书可以作为辅助
视频推荐
这里我有两个课程推荐,第一个课程比较幽默风趣,但是知识点比较少,内容也不够深入,第二个讲课没有这么有趣, 但是我基本可以确定,这是全网你能找到的最权威,最全面深入的HTML+CSS系列课程,甚至适用于已经工作1-3年的前端工程师,这两个教程怎么用呢?两个方法
- 先去看第一个,然后哪里懵逼就看第二个对应的部分
- 直接看第二个
只要你能看完第二个并且理解个七七八八,你的CSS基础会比大多数人好,你在之后的网站布局阶段也会比较得心应手。
网站推荐
书籍推荐
- 《css权威指南》 第四版 CSS从入门到自闭,一本书搞定,全面深入有插图
- 《Head first HTML和CSS》第二版 简单易懂,幽默风趣的入门书籍
JavaScript(ES5部分)
JavaScript是前端中比较难的部分,所有的框架都离不开JavaScript,可以说如果你不学JavaScript,就算学了框架,也只是api工程师。
这部分我推荐先看一遍视频,然后用《JavaScript高级程序设计》这本书补充知识点
视频推荐
嗯,虽然他上面写着2020,但是应该是17, 18的视频了,但是现在来看依旧非常不错,看完后你会对JavaScript有一个初步的了解,也有了一个不错的基础。
网站推荐
书籍推荐
前端提高篇
前端进阶,你需要学习的有HTML5 / CSS3 / ES6
到这个阶段了,你要有心理准备,视频教程会越来越少,文字教程越来越多,因为前一个阶段,培训班都会放出免费的视频让你看看,后面都是要你报班的,而真正的大佬也很少无偿做视频教程,大多是文字输出。我的学习建议是,HTML5 7天,CSS3 10天,ES6 15天
HTML5
H5常用的东西不多,而且大部分都有奇怪的兼容性问题,可以通过看教程的方式学习,学习的重点在下面几个上。
- localstorage和sessionstorage
- websocket
- 新增的语义化标签和video,audio标签
- canvas和svg
- Web worker
这部分我推荐的是看书自学,因为在线网站的教程比较水,也不够全。
网站推荐
第一个不必多说,属于能让你知道这个什么的网站,而第二个,是我现在逛得最多的前端社区,也是我认为国内最好的前端社区,里面的知识丰富度,专业度都非常高,里面的人绝大多数是认真在分享知识,交流经验的,我推荐掘金的目的是,如果你想学习H5的新特性,直接把搜索关键词,比如第一条,搜索localstorage和sessionstorage,立刻会有很多文章帮你全面,深入地理解它
- 《JavaScript高级程序设计》这本书上面已经推荐过了,里面也会介绍H5新增的API,而且比较详细
- 《HTML5高级程序设计》 十年后,我们盼望能够再写一本书,而书里会介绍你用HTML5创造的伟大应用。
CSS3
CSS3是重点学习的部分,是现代网页布局的必备技能,很直接的一点就是,如果你不会CSS3,你就找不到工作
我推荐的学习方式是,先看看视频或者在线教程浏览一下大概有啥东西,然后看书或者去掘金搜对应关键字看文章把知识再深入了解一下,因为这部分真的很重要。
视频推荐
我没找到免费的视频教程,但我找到了某个培训机构的CSS3教程,看了下,总体还行,可以当做入门视频看看
- 链接 提取码: z7yr
网站推荐
- 10天精通CSS3(课程的标题是这样的,不过都是基础内容,学完不算精通)
- css3新特性个人总结(掘金文章,可以当目录看看)
书籍推荐
ES6
ES6有多重要?如果你在招聘需求上看不到它,那一定是默认你会的意思。依旧是不会找个屁工作系列
推荐看视频入门,然后看下书补充一下知识点,然后去掘金看看相关文章。
视频推荐
- 深入解读ES6系列(深入解读不存在的,就是介绍新增了啥,给你看看用法)
- ECMAScript ES6 从一脸懵逼到灵活运用(小姐姐的声音好听,也比上面那个稍微全一点)
网站推荐
- 阮一峰的es6入门教程 (通俗易懂,全面丰富)
- ES6官方标准文档(官方制定的标准文档,唯一的问题是可能对英文不好的小伙伴不太友好)
书籍推荐
前端小菜—网络
前端的主要责任是从后端拉取数据和渲染数据,你需要学会一些ajax,跨域,http这样基本的网络知识,这样才能知道如何编写从后端获取数据,向后端传递数据的代码。
视频推荐
博客推荐
如果你想了解更多网络知识,可以看看下面的书
前端进阶篇
这部分你需要学习一门或多门主流框架,因为我现在只会vue,所以暂时只介绍vue
vue
vue现在是国内使用人数(集中在中小型公司)最多的框架,vue基本操作 + vue-cli + vuex + vue router这一套下来,推荐学习时间20天,推荐学习方式,文档学习,不推荐视频,因为,感觉莫得什么特别好的,但是非要挑一个,还是挑的出来的。
视频推荐
- 技术胖的vue教程(入门看)
- 技术胖的vue学习路线(入门vue看)
- Vue.js源码全方位深入解析(入门不要看这个!!!这是源码解析,至少做过两个vue项目再来看!!!虽然我买了也看不太懂的样子…..但评价不错)
网站推荐
书籍推荐
- 深入浅出vue.js(同入门不要看,因为是讲源码的,我现在只粗略看了前几章,但我感觉这是我花的最值的50大洋)
如果你需要vue的实战课程,你可以看看这个(谷歌浏览器打不开就用Edge)
react
虽然我嘴上说着只讲vue,最后我还是真香了,但是也就顺带提提,因为我真不会,而且短时间内也不打算学…….因为我感觉又是个天坑
但我可以给你推荐个学习路线:技术胖的学习路线
前端升华篇
如果你已经学了框架,那么,恭喜你,那你现在已经可以去80%的公司投下简历了,不过如果你还想继续提升(当然提升不完的),你可以继续学习下面的知识
webpack
打包工具,具体的概念解释起来太复杂了,就直接推荐吧,推荐学习时间10天,推荐看书自学,视频也行,文档我感觉不适合入门,比较适合哪里不会点哪里。
视频教程
网站推荐
书籍推荐
- Webpack实战:入门、进阶与调优(考试月买的,目前就看了第一章,但感觉很不错,至少可以用来入门)
微信小程序
这个东西有多火就不用我说了,是招聘的加分项。推荐看书 + 文档学习,视频教程依旧水,
视频推荐
网站推荐
书籍推荐
- 微信小程序开发入门与实践(我的舍友有,翻了翻感觉对新手还是比较有好的)
移动端
还没学,等我学了再更
后端语言
一个前端工程师,虽然说要会一门后端语言,但不必成为专业的,我就简单推荐入坑的方案好了。
java
java推荐入坑方案:看视频为主 + 看书 + 查文档
- 视频推荐这个:高琪老师的Java300集,之前学安卓时看的这个,非常不错,对底层,思想的关注比较高,看这个会帮助你领会java的精髓(PS:图形化界面的部分不要看,没必要,一般也不用Java写图形化界面)
- 书推荐这个:java核心技术卷1,前端只要这本书作为工具书,哪里不会查哪里就完事了
- 文档:Java8文档
nodejs
nodejs推荐入坑方案:看书 + 文档,视频有点水,不过也不是不行
- 视频推荐:Node.js入门
- 书籍推荐:深入浅出Node.js
- 文档:Node.js文档
PS:前端工程师学习Nodejs压力会比较小,因为语法非常接近,Nodejs使用的也是ECMA标准,所以变量,对象,数组这些语法,完全一样…..你要学习的就是Nodejs中浏览器不提供的API(当然Nodejs也不提供浏览器才会有的API)
你可能还需要的东西
这部分非常个人向,基本是我脑子一拍写出来的,有兴趣可以康康。
更深入的对JS的理解
说是更深入,其实也比不上Java,Java的深入可以深入到CPU,硬盘等硬件,JS嘛……封装的太好了,挖不进去…..但是你还是可以向下挖一点嘛,推荐个大佬的博客,里面的内容会让你对JS的理解比别人更深,点这里
一些计算机原理方面的东西
如果你不是科班生,可能对计算机这个系统缺乏宏观的认识,可以看看b站的一个速成教程,如果你想学习更多的计算机原理方面的东西,你可以去看看计算机组成原理,计算机网络,数据结构和算法,编译原理这四门课程,中国大学MOOC和b站都可以找到相关课程。
英语
很遗憾,程序员是要英语的,就随便说几个理由吧
- github,Stack Overflow这些一流社区全是用英文交流的
- 文档基本都是英文的
- 最新的技术,标准,一定是英文发布的
- 国内互联网公司压力太大顶不住想去外企工作也要英文交流
对了,会英文还可以让你起变量名比较好听不会被队友打233,不过言归正传,英语还是很重要的,第二点和第四点你可能听着很扯淡,你可能会说国内的文档很多都有中文啊,你看看JQ,MDN什么的不都有中文吗,很遗憾那是个人翻译的,虽然有翻译,但是质量参差不一,甚至还会翻错(我想到了个人才在MDN上把flex布局翻译成灵活布局的233),而且可读性还未必好,为什么呢,单用MDN来举例,他的中文翻译是谁都可以编辑的,所以…..你懂得…..当然我还是很感谢他们的,不过如果你想往上爬,那英语必不可少……至于第四点嘛,你懂得,外企955,工资也不比国内互联网公司低,最重要的是相对稳定一点,就是可能要英语面试…….
很遗憾,我这条四级500+的咸鱼没什么学好英语的好办法,不过你只要高中英语及格,再配上谷歌翻译(因为计算机科学方面的单词,你过了雅思也未必看得懂),前三条就基本没问题了,如果高中英语不及格的话,赶紧背背3500吧。
数学
数学也是要的…..虽然前期可能用不上(其实我现在也就用过矩阵和三角函数),但是我觉得吧,当未来webGL普及后,3D化的东西,听着就要数学,尤其是线代,不过如果你编程水平还不够,也不急(说的就是我)。还不如先好好提高编程水平
深度优先?广度优先?
我说的不是BFS和DFS,我说的是前端程序员,在学习前端时,是应该广度优先还是深度优先,我的看法是,在前期先深度优先,后期再广度优先,深度优先是先确保你在一个方向上有较大的竞争力,广度优先是为了探索更多可能性,如果前期广度优先,容易什么都会一点,但容易站不住脚。所以,如果你学了三大框架中的任意一个,最好去想想他的实现原理,而不是屁颠屁颠地去学下一个。
一个好的键盘 + 学习盲打
好的键盘嘛,打字舒服心情好,随便去买个2-3百的就行。
学习盲打可以试试这个,让你摆脱二指禅
SakuraSnow收集到的视频 + 书籍资料
链接: https://pan.baidu.com/s/1LsLFY6qiXtjZ_Jv4mGfNAg 提取码: sena