大家好,我是菜饼。
大家好,我是被迫营业的加薪。
作为咕咕咕团队的核心成员,秉承着咕咕咕精神,成功把本文咕到了现在。
在后台收到了很多朋友对前端路线的咨询,今天这篇文章将通通解决这些问题。
1. 食用说明
适用范围:
- 零基础入门前端
- 准备春招的前端实习面试
使用方法:
- 每部分会介绍入门方法,同时提供一份高频考点。
- 拿好笔和本子,整理出适合自己的路线
2. 前端基础
万丈高楼平地起,前端基础的三剑客:
HTML
、CSS
、JavaScript
,大家要好好学哦~2.1 HTML
HTML
学起来其实非常容易,对于初学者,前期可以从视频入手:- 真实的学习网站——哔哩哔哩
概念内容可以在MDN上查阅,非常方便;
2.2 CSS
CSS
的学习方法和HTML
类似,但是前期看完视频后,建议把常见的布局进行梳理;高频考点:
2.3 JavaScript
如果有
C
语言基础,学起JS
来会比较容易;当然,没有别的语言基础,直接学也没有问题,不存在必须先学
C
再学JS
的问题;最开始应当直接利用
Chrome
的console
控制台学习基本语法知识;然后学习
DOM
操作,比如实现点击按钮出现弹框,获取输入框内容进行计算等等;接下来可以学习
AJAX
,学会实现GET
请求、了解前后端数据交互;这个时候基本对
JS
有了大概的认识,也能简单使用,那么接下来就是系统的、深入的学习,可以开始了解ES5
与ES6
的区别,了解一些常用函数的底层实现,比如new
、bind
、call/apply
等;高频考点:
2.4 小结
对于初学者来说,初学期间要注重实操巩固,比如学习一段时间的
HTML
和CSS
后,就可以开始模仿实现一些网页,比如知乎首页、简书首页等;在学习JS
的时候,也可以进行相应的练习,利用所学的知识,给前面实现的网页增加交互效果等等。看了,并不是你的;
做了,才是你的。
3. 框架
三大框架:
Vue
、React
、Angular
对于面试者来说,一般会对
Vue
或者React
框架有较深入的理解,对其他框架有简单的了解;因此,建议
Vue
和React
二选一来深入学习,有余力的同学可以把两个框架都掌握。Vue
上手简单,文档清晰,对初学者非常友好;
React
上手门槛相对高一些;
Vue
的开发体验与小程序相似,学会Vue
之后再上手小程序非常丝滑;
总结: 框架高频考点
4. 进阶
当掌握了一个框架, 尝试做了一些项目后,就可以开始针对面试进行进一步的学习了。
比如:
- 浏览器相关(缓存,重绘、回流等等)
- 前端性能优化(高频)
TypeScript
- 前端工程化(
Webpack
等)
总结:
5. 项目
对于正在准备面试的同学来说,项目大概是最令人头疼的了,总觉得做的项目没亮点,都是搬砖,咋整呢?
这里大致有几个方向:
- 网站模仿:模仿写个知乎、网易云音乐、
Boss
直聘等等;(推荐零基础入门练手时写写)
- 框架模仿:模仿写个框架,比如写个
MVVM
框架;(相对来说难一些)
- 日常工具:挖掘身边的需求,去做一些实用的工具,其中可能就会有一些技术点;
- 实验室项目:在完成老师的要求的基础上自己加上一些优化(实验室项目一般灵活性较高);
- 实习项目:在完成需求的情况下,学习之前的一些技术亮点,不一定是自己写的,只要你搞懂了,那就是你的。
这里推荐一些搜集到的项目,主要提供个思路:
场景:比如班上要收作业,或者其他一些文件,大家都通过QQ发班委啥的,收起来也麻烦,还有可能漏收,而且有的同学文件名也改的不统一,缺谁的文件还要去统计查看,不如直接做一个网站,同学用自己学号登录,进去之后选择要提交什么文件,然后提交,系统自动改文件名,等截止日期一到,班委导出一下所有文件就好了,缺谁的文件也靠系统统计一下。
- 电商网站(模仿淘宝之类的)
可以运用很多基本的技巧:懒加载,分页(自己实现),放大镜效果(自己实现);
其实很多看起来调个组件分分钟就能解决的问题,你只要再想一步,我能不能尝试着写一个来代替呢?那么你这个项目的点会丰富起来。
补充一点,这里可以使用
Chrome
控制台的lighthouse进行性能测试,用以优化前端性能。- 简历编辑网站
可以参考mdnice-resume的效果,用拖动组件式的布局简历,支持导出为
pdf
;最终用自己写的网站生成自己的简历,也是很有意思的事情。
6. Q & A
6.1 非科班自学前端与科班相比的劣势有哪些?如何弥补?
从目前的学校教学体系和前端的知识体系来说,劣势主要在于数据结构,计算机网络;其他基础(如操作系统、数据库)基本不太需要深入了解,面试就算问到也是非常基础的问题,比如:线程与进程的区别、死锁等。
- 数据结构:把《大话数据结构》过一遍,问题就不大了。
- 计算机网络:优先把高频题搞懂,有余力过一遍书,比如谢希仁的《计算机网络》。
6.2 前端需要学习算法吗?工作中用得到吗?
需要!不论是为了面试,还是为了以后的工作,把算法好好学一学都是很有必要的。
- 在很多面试中,往往能不能流畅地把代码题写出来,会决定你这次面试能否通过;
- 掌握常见的算法,也能使你在工作中有意识地降低代码的时间复杂度,提高代码质量;
6.3 前端的天花板真的比后端低吗?
先不说是不是天花板比后端低,你就确定你未来够得到前端的天花板了吗?
整天想着考清华还是考北大,有什么意思呢?
既然选择了前端,那么就踏踏实实地学好做好。
6.4 面试需要好的项目,那什么样的项目才是好项目呢?
首先,要确定自己当前的定位,不同阶段有不同的要求:
- 初学者:先好好做一两个项目,别管好不好,做出来再说,啥项目都没做过,就算给你个好项目,你也不知道好在哪;
- 熟练的"切图仔":这个阶段已经俱备独立开发前端项目的能力了,但是总觉得做的项目没有亮点,这个阶段需要做的项目就是有一定技术挑战的,哪怕自己目前做的项目没啥挑战性,也可以自己给自己提需求,比如上传文件,能不能做成切片上传呢?总的来说,自己有意识地增加技术点,增加项目含金量。
- 项目大佬:动手能力
MAX
,项目也有难点有挑战,这个时候需要反过来补充理论知识,实现一些更底层的东西,比如尝试复现框架,开源组件库等等,增加自己的技术影响力。
Loading Comments...