2019大龄前端码农如何准备面试?

前言

今年毋庸置疑是找工做的寒冬,今年出来找工做的每个同窗 都是值得尊敬的。在寒冬季找工做,虽然略难,可是反过来看也会逼迫咱们成为更加优秀的本身。html

可是不论是旺季仍是寒冬,有一些优秀的同窗找工做仍是挺顺利的。因此说仍是得提升咱们本身的硬实力。前端

今年前端很明显一个变化就是前端面试里除了基础知识 也添加了不少手写算法以及前端递归小程序。下面从若干个方向谈一谈须要准备些什么东西。vue

面试的节奏

面试以前要复习本身全部的基础知识。算法比较难准备,要提早几个月来看。基础知识相对容易准备,能够相对延后。算法能够陆续把 leetcode 上简单的题目都作一作。基础知识按照本身的脑图来准备。node

在准备好了以后,能够看一下网上的面经,若是对于面经的大部分问题均可以答出来。那么就是一个准备了差很少的信号。react

此时能够找一个朋友给你来一个 mock interview。朋友的 mock 能够给你不少反馈。自身发现不了的,包含自我介绍的问题,语气语调,自信心等问题。webpack

接下来能够找一些小公司练练手。练习练习本身讲讲项目,和基础知识的查漏补全。git

若是拿到了一些小公司的 offer,那么就能够找朋友推荐去一些心仪的大厂,大厂面试相对较难,因此最好找朋友内推。内推有朋友能够给你介绍不少你不知道的东西。github

简历

做为一个高级码农,项目确定作的很是多,可是简历也要注意什么能够写什么不能写。本身复习准备不深的东西最好不要在简历上写,面试官每每都问本身有经验和本身有深入研究的东西,若是你涉及的技术只是简单使用,简历上写了,被问到一些底层原理,结果没答上来就尴尬了。web

好比你在公司浅尝辄止的作过 RN,简历上写了,被面试官问到 RN 的原理,打包,和 Native 通讯等,若是没有准备就会很是尴尬。简历上写的技术 最好都复习到任何细节。面试

好比用 vue 写了好几年项目了。觉得本身掌握的倒背如流。结果别人问了一个基础的 Vue 生命周期,Watch 和 Computer 的区别,若是没答好,那么在面试官那里印象就很是差。

手写题

今年各大公司都添加了手写算法或者前端递归的题目。因此要求这部分题目都得提早准备,最好在职期间刷 leetcode 几个月。至少大部分简单算法均可以秒杀。至于前端一些递归和语言特性。相对来讲都比较好准备。应该 2~3 周就够用。这里列举一些高频题。抛砖引玉一下。

  • 实现 debounce
  • 实现 throttle
  • 实现 bind,call,apply
  • 打印出来 html 里全部标签
  • 实现一个 lazyman
  • 实现一个 deepclone
  • 实现快速排序
  • 实现一个数组乱序
  • 实现一个 Promise
  • 实现一个 LRU
  • 求第 K 大树
  • 二叉树的深度
  • 两数之和
  • 四数之和
  • 找出一个集合全部的子集

我在 github 上整理一个项目 turtle-rock 若是你们以为有用,请给一个 star。谢谢!

CSS

flex 已是移动端的标配了。今年面试中基本不少都考察 flex。因此对于 flex-grow 和 flex-shrink,flex-direction 这些属性必须灵活掌握。并且对于弹性盒里面的元素的是否会被缩减,以及缩减的规则都会被考察到。对于高级前端一些深度的特性也会被考察到。

  • vertical-align 为何没有绝对垂直居中?
  • line-height 的具体含义是什么?

浏览器

http2 是今年一个必考题了。因此 HTTP2 分帧的,多路复用,server push 这些都得深度掌握,只肤浅理解到基本概念 仍是很容易被问住的。推荐你们看两篇文章 MDN HTTP
缓存(协商缓存和强缓存),跨域 这些都不赘述了。

  • http2 有什么改进?
  • websocket 协议和 HTTP2 有关系么?
  • http2 和 1.1 的 pipeline 有啥区别?
  • HTTP2 和 1.1 的 keep alive 啥区别?

框架

如今是 Vue 和 React 的时代。小厂追求糙快猛基本都是 Vue。规模大一点的公司基本都是 React。不论是哪一个。今年面试绝对不牢牢停留在表面,Dom Diff,Virtual Dom 成了必考题。

  • Virtual Dom 是否能够提升性能?
  • 怎么看待 Dom Diff?Dom Diff 算法是啥?
  • 如何设计一个组件?
  • Vue 发展问题在哪里?

性能

Web 性能啥时候都是一个必考题。针对 Web 性能。推荐你们看 Google 的文档。

Webpack

webpack 基本会考察到各类 loader,plugin 的名字和使用方法

  • 用过哪些插件?
  • 如何作性能优化?
  • code split 怎么作?
  • 什么是 treeshaking?注意些什么?

移动端

JSBridge 原理 和 离线包成了必考题。

  • 移动端如何作适配?
  • 一像素问题怎么解决?
  • JSBridge 原理是什么?如何设计一个 JSBridge?
  • 离线包怎么设计?
  • Hybrid H5 开发须要注意些什么?
  • Webview 的缓存机制是什么?

直播方向

  • 直播协议都有什么?
  • WebRTC 是什么?基本原理是什么?

Nodejs

高级码农都或多或少写过一些 nodejs。可是 nodejs 的面试问题很难准备。平时可能写的很 6,可是面试不必定能答得出来。一般你们都会问你的 Nodejs 在处理什么模块。

  • 项目中的中间层 Node 在处理什么问题?
  • Node 的 Cluster 模式是什么?
  • Node 中的进程和线程啥区别?
  • Node 中如何建立一个进程?
  • Node 的多个进程如何通讯?
  • Koa2 中的 context 如何实现?
  • 如何监控 Node?
  • Node 中的日志如何保整串行?
  • Node 挂掉怎么办?怎么发现其中的问题?
  • Node 中的事件循环是什么?

安全

  • HTTPS 原理是什么?
  • 如何劫持 HTTPS?
  • XSS 是什么?如何防范?
  • CSRF 是什么?如何防范?
  • 如何应对重放攻击?

管理类

对于一些同窗,走到高级阶段或多或少有一些管理人的经验。综合看来这部分不是那么重要。各大公司仍是以技术为主。考察这方面相对较少。

  • 你怎么管理你的团队?
  • 怎么作 code review?
  • 你对管理的理解是什么?
  • 你怎么打绩效?
  • 对于绩效比较差的同窗你怎么沟通?
  • 你如何来激励你的团队?
  • 有没有遇到一些管理的问题?

前景

  • 你对前端发展趋势怎么看?
  • 最近接触了什么新的技术?

职场发展

对于大部分普通人,最好能有一个大厂的经验,一方面大厂作东西会相对较深,另一方会有很大加分。当时我也认可小公司有不少能力很强的人,可是很是多的面试官都是学历控和大厂控。有了这样的经验,找工做起来就会相对容易。

谈一谈工做的延续性。工做了一些年以后,咱们无论作前端仍是后端最好和一些业务或者技术 结合起来,两份工做,或者三份工做有必定的延续性。好比你作直播,那么日后就继续作直播。你作招聘系统,下来的工做继续作招聘系统。你作广告系统下一份工做就继续作广告系统。这样你的积累就不只仅在通用技术这个点上,也有一部分业务在,下一份工做就更容易作出成绩。

在说说细节的方向。前端的技术突飞猛进,能够大胆的预测 5 年后,可能也不是 vue 和 react 的天下了。可能咱们在用 xx 框架,那么工做 10 年的码农 用 xx 框架 和一个工做 2 年的使用 xx 框架区别在哪里?这是咱们大龄码农须要思考的。因此咱们能积累下什么?这些是咱们须要思考的。我认为在前端的一些方向上必须有所积累。好比 WebGL,Canvas 渲染,直播等。就是之后把本身不要标榜是一个前端。而是一个 WebGL 前端,直播前端。这样才会利于咱们大龄以后的发展。

最后附上本人整理的一个前端手写算法的集锦。若是感受到对你们有帮助,那么请给个 star。https://github.com/scofieldfan/turtle-rock

相关文章
相关标签/搜索