前端工程师学习路线(给大家整理了HTML,CSS,JavaScript等等全套学习资料)
一、入门前端三剑客
1、HTML
html学起来还是挺简单的,无论你是否有编程基础,我觉得都可以快速入门,对于新手,我推荐找个入门的视频看一下,然后跟着视频打代码就可以了,入门教程随便在网上找个免费的视频就可以了,随便搜索「html入门」即可,或者看菜鸟教程的一个入门教程也行。
看完视频,也可以看一下文字版的教程,不知道大家有没有看过阮一峰写过的教程,我觉得他写的教程都很棒,所以这里我也推荐下大家看一下阮一峰写的这份HTML入门教程,可以让你理解的更加透彻:HTML教程
大家切勿眼高手低,一定要跟着视频或者书籍上的案例打代码,写代码的编辑器,我推荐VS-Code,反正选一款你喜欢的编辑器就行,现在这些编辑器都有很多插件,像VS-Code这些编辑器,用好一款就可以写各种语言的代码了。
2、CSS
没啥好说的,和HTML相辅相成,你在学习HTML的过程中,其实也一直都在接触CSS,所以你学了HTML之后,感觉几个小时就可以学完CSS了,还是一样,推荐找个视频快速入门,不多说。
html是一门标签语言,里面有各种各样的标签,很多初学者学了之后可能就把这些标签忘了,有人可能会问,老是忘了怎么办?
忘了就忘了,没事的,不需要强行记住这些标签,你需要的是:脑子里有个印象,当你这实现某个功能的时候,你知道HTML有某个标签可以实现这样的功能就可以了,然后翻开对应的教程,你能够根据教程使用这个标签即可。
用的次数多了,也就记住了,所以学完HTML和CSS,一定要多多实践,随便打开一个网页,对着葫芦画瓢,自己写一个和它类似的就可以了。
3、JavaScript
比起HTML和CSS,JavaScript会难一些,不过如果你有其他编程语言基础,例如学过C语言,Python或者Java啥的,那学起JavaScript也是分分钟的事。
前面的HTML和CSS,我的推荐大家找个视频快速入门即可,但是对于JavaScript,假如你时间不是很紧,那么我推荐你用书籍系统学一下,有些知识,趁着有时间,一定要系统学,这样可以打下很深的底子,如果你觉得难的话,也可以先用视频快速入门,之后再回过头来钻研书籍,系统过一遍,通过系统学习,你会明白很多原理,学到很多设计思想,我看过一本《高性能JavaScript-中文版》,感觉还好,就推荐这一本吧。
学了JavaScript之后,可以学一学ES6,面试貌似也经常会问到,可以看一看阮一峰写的一份入门教程:ES6教程
二、框架
目前前端用的比较多的主要有Vue和React,在学习框架之前,一定要先用HTML+CSS+JavaScript这些做一些项目,因为这些框架的底层实现,其实就是JavaScript实现的,然而,居然还有人知道如何使用Vue,但没学过JavaScript,这显然不合适,只有你体验过HTML+CSS+JavaScript,你才能更好着明白Vue和React的好处。
不过对于初学者,可以先学习Vue,Vue可能更好入门一些,之前实习的时候,被迫学习了几天的vue。你可以去B站找一些课程或者购买
不过你看了课程之后,你去做项目的话,其实还是会遇到好多问题的,特别是在网络请求那块,在解决问题的过程中,你就能更加理解一些原理了。
学到什么程度?
对于初学者,我的一半建议就是,跟着一份教程,过一遍,然后做对应的项目即可,之后遇到啥,就去搜索啥,不用纠结这个学到什么程度。
Vue和React随便选一个重点学习即可,我推荐vue,不过学了Vue之后,有时间的话,我建议可以了解下React,快入通过视频了解,感觉几个小时或者一两天就够了。
三、数据结构
无论你是走什么岗位,数据结构都是必须学习的一门课程,从面试的角度来讲,面试基本比问,特别是校招;从个人的提升上来看,学好数据结构与算法,可以让你走的更远。
但是,数据结构与算法这玩意,可深可浅,不过我觉得至少得掌握如下基础知识:
1、时间复杂度、空间复杂度
2、链表、队列、栈
3、树:初级:二叉树,查找二叉树,进阶:AVL树,红黑树等,至少掌握初级吧。
4、图(图有好多种算法,深度/广度搜索,最短路径、最小生存树等),对于图,其实无论是面试还是工作,都挺少用到,学起来也有一定难度,假如你时间不多,我觉得可以先不学。
不过如果你是科班的,那么这些我觉得你大一第二学期把这些都学完是最好的了,没学完也问题不大,有些人可能是先教《离散数学》这本课,为数据结构与算法做铺垫。
书籍推荐:你学过JavaScript,所以可以用Javascript来写这些数据结构,至于书籍,其实我也不知道推荐啥,网上根据目录找一本:
把基础数据结构学了之后,我觉得你要保持刷题,这个还是挺重要的,例如可以每天保持刷一两道,刚开始刷会挺吃力,但后面熟练了,就会快很多,不过很多人在吃力的那会,就放弃了,所以也就有了人与人之间的差距。
我觉得至少把《剑指offer》刷完吧,刷完之后,可以去把leetcode中top的热门题做了。
当然,如果你想更加系统着学习算法,可以看我之前写的算法学习路线:谈一谈算法学习之路
四、计算机网络
无论是前端开发还是后端开发,说到底都是数据通过网络在多台主机之间的交互,而且对于前端,计算机网络的知识,用的可能比后端还多,特别是HTTP这块,所以呢,计算机网络必须好好学,而且还得重点学。
五、浏览器工作原理
学前端,基本天天和浏览器打交道,因为网页上的各种界面,都是由浏览器来渲染的,所以还是非常有必要学习一下浏览器相关的知识。
如果你在浏览器按F12,会出现一个「调试」的界面
里面有很多东西,例如各种网络请求数据,各种脚本数据,感兴趣的话,可以去研究研究。
那么具体要学习哪些呢?
我觉得至少得了解一下本地cookie,localStorage,SessionStorage存储吧,还有就是,如何查看一个