2019秋招技术点分享总结
2019 年秋招前端工程师技术点总结
by SkylineBin(2019.11.24)
上周二的时候给实验室的学弟学妹分享了一下自己今年秋招找工作的经验,分享会讲了挺久,除了讲需要准备的技术知识更多讲的是自己对整个秋招过程的理解和一些特别的经历。实验室的分享会是从上上届开始的,上上届的那位学长(现在在网易)讲的时候我也在场,当时自己刚研一处于想迫切了解互联网的状态,那次的分享会对我的影响还是比较大的。去年的实验室学长学姐的分享会是我组织的,当时找工作的九个人基本都安排了交流,反响也挺好,今年终于轮到我们讲了。在分享会之前,自己整理了一下之前面试那段时间写的面试经历,把出现频率较高的知识点理了一下写了一份文档。所以有了这一份粗略的文档,以下内容是精炼过后的,只会下面的知识点显然不能成为一位优秀的前端工程师,但是作为一名初级的前端工程师不能不会或者没去思考下面的一些基础。
计算机基础知识(含计算机网络,操作系统等)
项目基础
- 项目运行环境
- 版本协同开发
- 项目运行维护
计算机网络
- 五层结构与 OSI 七层结构模型 以及对应的协议
- TCP 协议的细节
- UDP 与 TCP 各自的特点与区别
- HTTP 协议的响应状态码
- HTTP 协议的特点,HTTPS 的协议的优点与特征(1.0,1.1 与2.0…)
- DNS 的作用,以及实现流程
- 计算机网络安全(网络攻击手段)
- HTTP 响应的头字段(request 和 response 包含字段的细节)
- HTTP 中使用的方法(GET、PUT、OPTIONS等)
操作系统
- 进程与线程的区别
- 线程安全
- 垃圾回收机制
- 流量控制与拥塞控制
算法准备
知识点
- 数据结构:栈,队列,链表,树与二叉树,图
- 字符串处理
- 排序算法
- 递归与非递归
- Hash 原理的应用(字典)
- BFS 与 DFS
- 动态规划(一维、二维)
练习的内容
1.《剑指 Offer》(67 题)
2.LeetCode (100 题左右)
3.牛客网互联网公司历年真题
4.牛客网算法课程(左程云)
实践平台
关于算法的建议
1.保存自己写的有效代码
2.输入与输出,有自己的风格和练习
前端技术准备
HTML&HTML5
- HTML5 新特性及应用
- 元素的特征及分类
CSS&CSS3
- 浏览器盒模型
- 选择器细节以及优先级
- 垂直居中与三栏布局细节以及应用场景
- CSS 动画实现
- CSS 布局相关
- BFC 相关概念和应用
- Position 的取值以及 Flex 布局
- 清除浮动的用法及注意事项
- 像素单位的区别
JavaScript
- JavaScript 基础语法
- 原型与原型链
- JavaScript 中的继承机制
- JavaScript 中的数组和字符串处理函数
- 闭包应用场景
- JavaScript 中有哪些数据类型 (堆与栈)
- JavaScript 中的 this、apply、call
- JavaScript 中的 map 和 Reduce
- 事件循环、宏任务与微任务
- 事件冒泡与事件委托
- JavaScript 函数柯里化和反柯里化
- JavaScript 模块化原理
- jQuery 相关的语法
ES6 相关
- 箭头函数
- Promise
- 解构赋值
- async & await
- Proxy 代理
- 模版字符串
- 对 class 的理解
- 块级作用域
前端框架及工程化相关
- 虚拟 DOM 相关原理(Diff 算法)
- MVVM 框架理解
- Vue 双向绑定原理
- Vue 的源码结构
- Vue2.0 的缺陷以及 Vue3.0 的改进
- Vue 生命周期及每个阶段完成了哪些工作
- Vue 中的父子组件传值
- Vue 中的插槽以及使用场景
- Vue-Router 路由原理及最小实现
- Vuex 原理及其应用
- Vue.js 与 React.js 之间的区别与联系
- React 生命周期、React 路由原理、Redux 原理
- Webpack 是如何工作的?与 rollup 的区别?
- 用过哪些 Webpack 插件?、
- Babel 的实现原理
- 最新的前端框架的设计思想,彼此之间的差异
手写前端代码
- 模拟 apply 实现、模拟 call 实现 、模拟 bind 实现
- 手写原生 ajax,模拟实现数组的 slice
- 手写实现 Promise 的方法(Promise.all &Promise.race )
- 对象深拷贝与浅拷贝
- 嵌套数组指定层次展开
- 模拟实现 Reduce,以及使用 reduce 实现 map
- 模拟实现函数节流、函数去抖
- 手动实现 JavaScript 中 new 的过程
- 模拟实现 instanceof 的功能
浏览器相关
- 浏览器存储策略
- 浏览器缓存机制
- 浏览器同源策略
- 跨域请求以及处理方案
- 浏览器重绘与回流
- 如何实现浏览器兼容性
- 浏览器多进程与 JavaScript 单线程
其他前端相关部分
- 前端性能优化
- 前端安全相关
- 对异步的理解
- 对于组件化的理解
- 对于前后端分离的理解
- 函数式编程的理解
- 如何进行前端测试
- 为什么要使用前端框架
- 浏览器中从输入 URL 到页面渲染完成发生了哪些事情?
- 新的前端技术(Flutter,Service Worker)
- 为什么学习前端?
前后端
- Node.js 中的事件循环
- Node.js 中的文件流处理
- Express 框架的实现原理
- 负载均衡如何实现?
- 主从复制的原理
公共高阶部分
设计模式前端部分
- 单例模式
- 原型模式
- 策略模式
- 装饰器模式
- 订阅发布模式
设计模式后端部分
- 单例模式
- 观察者模式
- 工厂模式
项目开发与管理
- 项目进度安排(技术管理)
- 对项目的理解
- 项目中的疑难问题
以上是技术分享的主要内容摘要,每一点我基本都稍微展开说了一些。特别是对项目的理解部分,我是把自己真正经历的总结说出来的。以后有时间我会把每个点都补充一下自己的理解。感谢当初那个投入的自己,以后还是继续努力呀!
评论