可能是虎扑前三详细的前端开发学习攻略

avatar
关注

全文大概1500字,阅读时间小于5分钟

前言:

LZ在实验室前辈的内推下,在13、14日分别进行了一二面,14日晚收到了小米实习offer(北京,户口就别想了,我只是去实习数月,转正我也没考虑过),在虎扑发了一贴,发现大家的问题都挺一致的,与我当初刚开始学习js的状态一样,所以开此新帖希望能够帮助到大家。

我再把上个帖子的内容贴一下吧,大家就不用翻了:

背景:重邮通信大类专业大三在读,成绩很一般,2020年4~5月入门前端,算是断断续续学了八九个月。项目经历有二:一是基于flask框架+mysql+原生前端三件套的普通小网页,二是今年的课程设计,技术栈为VUE+VUEX+VUE-router+elementUI。项目不难,但是对增加动手能力大有裨益。

前排提示:

1. 关于 小米公司/小米手机/我的学校/我 大家就不要讨论了;

2.本文大部分为主观内容,无广告等任何不良内容,希望大家理性/友善讨论,如有不足恳请批评指正。 


正文:

​大家的问题主要集中在以下两点:

1.前端学习路径,何时上项目;

2.面试如何准备。

前端学习路径:

//前端入门还是挺简单的,坚持下去最重要

1. 从JS+html+CSS入手,HTML和CSS可以从菜鸟教程、W3CSCHOOL等处学习,不会在MDN查,这个建议很快过完,主要看看有哪些标签以及样式如何编写,买书就不建议了。对于JS,我有两本书和一个网站推荐,首先是《cdth高级程序设计》,这本应该是前端开发者必读吧~,然后是《cdth DOM编程艺术》,此处附一条来自知乎的建议:先看前者前三章,再看完后者,然后回过来把前者看完。LZ亲测有效。如果想更快地把JS过一遍的话,网站在此:https://zh.cdth.info/

2. 看完三件套,这时你就可以动手写点东西了,我当时是选择某一网页进行模仿,包括但不限于:小米主页、QQ音乐主页这样包含输入框、轮播图等元素的网页。可以任意选择布局方式,绝对定位也不是不行hh,当然,顺带着学了flex布局更好。

3. 经过上面一步,不出意外你已经有点感觉了,此时就可以进入VUE/REACT的官网开启框架之旅了。这里也不需要买书,关于react我了解甚少,主要讲讲vue吧。

vue官网内容已经很详实了,建议跟着写一写,如果有不懂的可以在B站选择一个视频看,我这里就不给链接了,因为我也是有选择地看的。

//可以在2或3步里学习webpack,写个小web打包一下,也顺便学了npm了

4. vue差不多看完,请尽快入手vue-cli,建议跟着B站视频做,到了这步的话下面的进展就快起来了,你将会学习到包括但不限于:vuex、vue-router、axios、elementui,自己没有项目的话可以跟着做一个,不一定要做完,但这些技术一定要接触且尽可能地理解它们。

5.当你有项目的时候,就可以开开心心准备面试啦。

面试如何准备:

​首先是基础内容准备,这时候就要打开牛客了,点开面经汇总-前端工程师-实习,就能看到大量的帖子,这时你会感觉我前端这么长时间是不是白学了,怎么没几个答得上来的呢??我一开始也是这样,不用紧张,把这些问题收集下来,在本地做个笔记(推荐markdown),然后一个一个去查,我就花了大量的时间在这上面,可以总结出来有以下几类问题:

1. 计算机网络,包括但不限于(以下简称包括)HTTP、TCP/UDP、滑动窗口/拥塞控制、cookie/webstorage;

2. CSS,包括BFC、盒模型、flex布局;

3. JS,包括ES6、闭包、原型/原型链、面向对象;

4. 浏览器,包括渲染、重绘/重排、浏览器线程;

5. VUE,包括双向绑定/响应式原理、组件传值;

6. 项目,包括用了哪些,遇到什么难点;

7. 算法

大家可以看看我的博客作为参考:https://summergua.github.io/interview/

整理完了笔记​,要高频率地记和理解(理解最重要!比如问一个ES6,很可能扯到箭头函数,然后就会问this、构造函数,如果只会一个那很可能结结巴巴)。

如果大家的目标是BAT等一线大厂:算法尽可能地刷,对于JS原生和VUE相关的实现也要看,比如手写eventbus、手写apply/call/bind,如果不熟练那只能祈祷面试官不考(比如我...

如果是小米这样的非一线:基础知识请牢牢掌握,写个数组相关的算法也要能写出来,比如排序/查找出现次数最多的那个,这写不出来就尴尬了。


附此次小米面试题,已发表在牛客,搜小米前端实习即可:

链接:https://www.nowcoder.com/discuss/588615?channel=666&source_id=feed_index_nctrack

一面(问题顺序不一致,只写了能想到的) 
  1. HTTP3、2、1.X 
  2. 跨域 
  3. HTTP请求行有哪些字段(user-agent之类的)
  4. HTTP状态码 
  5. 三次握手 
  6. HTTP和HTTPS
  7. 原型/原型链,终点为什么是null 
  8. 继承,讲了ES6继承(extends)和原型链继承。还会别的吗?不会T T 
  9. EventLoop 
  10. flex用过哪些?flex自己呢?我讲了flex: 1的内容 
  11. 强缓存和协商缓存。3系列除了304还知道哪个?不知道了.. 
  12. 代码题就不写了,不是算法,不难  
  二面 
  1. 兄弟组件传值 
  2. VUE自定义指令 
  3. 怎么学习前端的  
  4. VUEX的mutation和action的区别 
  5. less/sass有了解吗 
  6. 找出数组出现次数最多的那个(有 1 和 '1' 要区分) 
  7. 项目内容  
  8. v-if和v-show 
  9. ElementUI怎么校验数据 
  10. ElementUI组件大小不符合需要的大小怎么办

最后:面试题不是很难,觉得就这的同学请轻喷T T,我也是挂了字节两次一面的。大四校招难度比我这高很多很多,只能作为基础知识参考。

发布于广东阅读 364566

这些回复亮了

discusser-avatar

zkzkzkz12130

· 北京

lznb 顶

亮了(70)
回复
discusser-avatar

ivwwvwi

· 上海

你的学习路线其实和我现在上的国外网课几乎一摸一样...自己摸索不如找个靠谱的网课,也就10美元...而且学完了还带着做项目(和你第二个大项目差不多)但我就不说我学的那个是啥了..不然到时候人均做的项目都是那个

亮了(27)
查看回复(4)
回复