小鱼儿本人985本科,软件工程专业,前端。
工作三年半,第一家创业公司,半年。
第二家前端技术不错的公司,两年半。
第三家,个人创业半年。
可以看出,我是个很喜欢折腾的人,大学期间也做过很多项目,非常愿意参与到产品中去。技术上勉强合格,不过独自负责过很复杂的前端项目,所以一般基础面试题还有项目经历都没有太大问题。然而面对一些框架的实现原理、源码、工具等研究较少,加上技术栈比较陈旧,对 React 和 Vue 了解较少,导致水平一般都在阿里 P6 级,无法突破到技术专家的评级(P7)。

核心诉求

在换工作的时候,我也认真思考了下一份工作的核心诉求——踏实成长。

具体的讲:

  1. 技术沉淀
  2. 视野+平台

所以,一开始就拒绝了所有初创公司,只看大平台,自己心中的第一优先级是蚂蚁金服、头条。

面试过程

一共面试了四家

  • 美团新零售
  • 贝壳装修
  • 蚂蚁网商银行
  • 头条商业化

面试结果

  • 美团 2-3+
  • 蚂蚁 6+
  • 头条 2-1
  • 贝壳因气场不合没有发 offer。

这里就不说具体的 offer 情况了,还蛮有竞争力的。

面试总结

技术面试

基础问题永远绕不开,前端技术面的考点无外乎:

事件原理,闭包,调用栈,Promise,ES6, 工程化,webpack, 性能优化,跨域,安全问题, React、Redux 思想,Virtual DOM,Diff 算法, 移动端布局,浏览器渲染原理,Event Loop 等

还有手写代码,主要考察一些基本 API 和 ES6 的使用。最常见是在 Array、String prototype 上写一个函数。

比如 'abcd'.f() => 'd-c-b-a'

还有一些常用的函数,比如 bind (好多家都考……),throttle, debounce 等

总之,这些都是前端绕不开的概念,也建议可以真正的夯实基础,多看书,多总结。在面试的时候,面试官通常也是看人下菜,『高级』的概念不清楚,面试官也会主动降低问题的难度。从我面试来看,基本上大厂对于候选人技术的定位还是蛮准的,在面试前我也知道我自己的技术水平就是阿里的P6,结果也是,美团 2-3,头条 2-1 评价基本一致。

至于薪水还需要考虑自己其他的软技能,这个会在业务面的时候重点考察。

有些公司还是会考一些算法,比如美团、头条。但是不多也不难。

如果平常刷过 leetcode 的话应该问题不大,对于前端同学来说 leetcode 上的 medium 题目应该就可以了。

具体面试题

这里分享一个很有意思的问题,来自头条:

100 * 100 的 Canvas 占内存多大?

感觉非常有新意,各位同学可以思考。

分享一个算法题:

给定一个数组排序,使得奇数位的值不大于相邻偶数位的值。

业务面试

一般第二面或者第三面的时候都会结合业务聊技术

我个人非常喜欢这一面,因为自己独自负责过非常复杂的前端项目,基本上从技术选型、前端工程化、架构、设计模式、复杂模块、性能、安全问题、团队管理等都可以扯到。所以这一面往往聊的比较嗨,一个项目就可以面1-1.5小时左右。

以蚂蚁举例,由于我自己面过两次蚂蚁,在聊二面的时候都是这么一个问题,从我个人的业务出发,基本上把项目开发中所有我自己认为可以展示自己思考的点都问了一遍,蚂蚁的面试官也会提出很多临时需求,主要查看面试者面对多变需求如何灵活调整技术方案。

在二面过程中,一定要熟悉自己的项目,尽可能多的参与到项目中去,也尽可能深的了解项目,当然,了解是一方面、表达是一方面、心态又是另一方面。

这三者层层递进,毕竟对于项目的了解是基础,这个需要我们深入业务,多思考,多总结。没事给新来的同学梳理业务,画画业务框架图,主动承担一些有技术难度的工作(比如性能优化、安全排查、工具上提升开发效率等),多分享自己的工作,多和产品经理撕逼,锻炼自己的表达总结能力。如果前两步做的比较好,就可以自信的展示自己的项目了,面对变化的需求,相信也可以快速的想出更好的解决方案。

基本上前两(三)面就可以对一个同学的技术水平有一个比较全面的了解,也方便公司进行技术评级。

终面

第三面一般都是老生常谈:过往工作的选择,换工作的原因,自己的职业规划,自己平常是如何提高自己的等。

这个虽然都差不多,但还是希望各位同学可以多多思考这些问题,毕毕竟工作的目的都是为了自己可以更好的成长,更多的创造价值,顺便获得一份不错的薪水。工作本身就是一种生活的态度,还是要认真面对自己的选择。

终面的时候,一般都会留有一个向面试官询问的阶段。 我自己总结了几个问题,可以分享给大家。

  • 目前咱们的业务,有一个什么样时间规划,这期间有哪些milestone?
  • 我的过往工作经历,有哪些是对咱们团队有帮助的?
  • 您对我在团队中的定位是怎么样的?
  • 对于团队成员的成长,您有哪些方案?

第一个问题主要是看一下目前的业务是处于一个什么阶段,也看一下业务负责人是否靠谱,毕竟面试时双向选择嘛。

第二个问题,主要是想让面试官夸夸自己……

第三个问题,主要是看一下面试官对自己的评价,定位又比评价来的更委婉而又深入一点,看看自己未来在团队中大概是什么定位,一位面试官对我说:我希望你在深入业务的同时,承担一些横向的职责。这就说明面试官对于我的协调能力很欣赏,我也可以暂且推断出我在面试官心中分量也蛮重的。

第四个问题,关系到日常工作中如何平衡业务开发和个人成长,看看这个老板是否真正关心下属的成长,也蛮重要的。

最后,最好留下每一位面试官的微信,毕竟面试时间有限,面试结束后,发一段感谢的话,感谢这次面试,肯定面试的内容很有水平,希望以后可以多多交流。一是表现自己的素养,二是可以看出面试官对于自己的态度。实在不去这家公司,也方便以后挖人嘛……

面试技巧

  1. 确定核心诉求、筛选目标公司
  2. 一份确保可以拿到 offer 的简历
  3. 打磨自我介绍
  4. 打磨项目介绍
  5. 面试录音(征得许可后)、面后复盘
  6. 私下与业务负责人互动
  7. offer 谈判

关于这些内容先不展开,下次接着聊~

一些思考

总结完了自己的面试过程,我也想说一下自己的一些其他思考。

每个程序员都是同学中的佼佼者,学习能力都应该是出类拔萃的。 工作中需要的知识技能又相对固定,面对每次工作和面试中碰到的问题,还是要踏踏实实的去理解和总结。

广度深度两手抓,一是主动承担业务,主动解决问题。二是技术栈也不要给自己设限,React, Vue, 客户端开发,Node,Canvas ... 撸起袖子就是干,当然拓展广度的同时,对于目前紧迫的业务涉及的技术也需要深入了解,买书,买视频,多多投资自己。

多多思考和总结平常的工作和技术。

乐于分享,一是督促学习,二是锻炼自己的表达总结能力,三是这些分享的材料都是自己学习能力的证明,四是找到同类,扩大影响力。

不要排斥猎头,在换工作前,我拜托女朋友挑选了一个口碑很不错的猎头,全程辅导。

更重要的是,有了第三方的介入,可以客观的帮助自己梳理自己的优势劣势,模拟面试,安排面试节奏,稳定情绪,还有谈价格的时候可以避免尴尬。总之,一个靠谱的猎头是个很不错的选择。

评论区的小玉是辅导我的猎头,非常 nice,推荐哦。

至于最后的选择,由于我的三份 offer 都很有竞争力,我自己也非常纠结,这个时候就应该不断的问自己:

  • 下一份工作,你想获得什么?
  • 几个选择,分别工作三年,你认为哪个更值得?
  • 你想在哪个领域深耕?

如果对于业务不是很了解,之前要到的联系方式就很重要,主动约终面的业务负责人再进行一些深入的沟通,真正做到没有疑虑了,再做出选择吧。

尾声
小鱼儿也即将加入新的团队,开始新的工作生活。希望自己可以不忘初心踏实成长。

也祝你找到心仪的工作~
小鱼儿建了前端面试交流群,加群的同学可以同学的微信,备注『面试进群』即可

三年前端,面试思考(头条蚂蚁美团offer)的更多相关文章

  1. 美团Java实习面试经历(拿到Offer)

      美团我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...

  2. 漫画 | 小公司卧薪尝胆三年,意外拿到美团offer

    今天给大家分享一篇,非科班出生的野生前端从业者的励志成长故事,故事的主人公王大拿(化名),在小公司打杂三年后,意外拿到了美团的offer,成功进阶大厂,跳槽到了美团的核心外卖事业部. 事故主人公:王大 ...

  3. 如何拿到美团offer的

    美团,我是在拉勾网上投的简历,之前也投过一次,简历都没通过删选,后来让学姐帮我改了一下简历,重新投另一个部门,获得了面试机会.10月23日,中午HR打电话过来预约了下午4点半面试,说会在线写代码,让我 ...

  4. 史上前端面试最全知识点(附答案)---html & js & css

    史上前端面试最全知识点(附答案) 一.html & js & css 1.AMD和CMD是什么?它们的区别有哪些? AMD和CMD是二种模块定义规范.现在都使用模块化编程,AMD,异步 ...

  5. 2017web前端面试总结

    2017web前端面试总结 从今年3月份开始面试笔试找实习找校招到现在也半年多了,拿到了不少offer,也有了自己的一点心得体会,这里写出来分享一下,拙见勿喷. 注意一下,以下的观点仅代表我个人的体会 ...

  6. 前端面试题目汇总摘录(JS 基础篇)

    JS 基础 JavaScript 的 typeof 返回那些数据类型 object number function boolean undefined string typeof null; // o ...

  7. 【原创】分布式之数据库和缓存双写一致性方案解析(三) 前端面试送命题(二)-callback,promise,generator,async-await JS的进阶技巧 前端面试送命题(一)-JS三座大山 Nodejs的运行原理-科普篇 优化设计提高sql类数据库的性能 简单理解token机制

    [原创]分布式之数据库和缓存双写一致性方案解析(三)   正文 博主本来觉得,<分布式之数据库和缓存双写一致性方案解析>,一文已经十分清晰.然而这一两天,有人在微信上私聊我,觉得应该要采用 ...

  8. 这份前端面试小册子dog cheng带来啦~

    写在前面 没有错,就是我啦dog cheng,好久不见,从17年在博客园写下第一篇文章,转身间已然两年,从大二到现在的大四预备毕业生,我仍然在这条道路上前进.秋招早已经结束,在拿到用友,滴滴的offe ...

  9. web前端面试试题总结---html篇

    HTML Doctype作用?标准模式与兼容模式各有什么区别? (1).<!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器 ...

随机推荐

  1. spring-boot-1.4x后@ConfigurationProperties注解舍弃location

    --定义额外的.properties配置文件,并引入配置

  2. 109)PHP与oracle网址

    https://pecl.php.net/package/oci8/2.1.8/windowshttps://www.toadworld.com/platforms/oracle/w/wiki/116 ...

  3. day48-线程-信号量

    #1.信号量,用来保证多个线程不会互相冲突. #2.迷你唱吧:每次只能有两人在里面唱k: from threading import Thread from threading import Sema ...

  4. 微信小程序引用外部js

    1.先建立一个common.js, 写我们的外部js 比如: common.js function getTime(){ //下面写我们的代码 .... } function getCity(){ / ...

  5. 蓝桥杯-2016CC-卡片换位

    卡片换位 你玩过华容道的游戏吗?这是个类似的,但更简单的游戏.看下面 3 x 2 的格子 在其中放5张牌,其中A代表关羽,B代表张飞,* 代表士兵.还有一个格子是空着的. 你可以把一张牌移动到相邻的空 ...

  6. Java开发面试常见问题合集

    次面试事故 面试官:你看过哪些源码?我:都挺熟悉的面试官:对hashMap了解程度怎么样?面试官:那你能讲讲 HashMap的实现原理吗?面试官:HashMap什么时候会进行 rehash?面试官:结 ...

  7. Warning: $HADOOP_HOME is deprecated. hadoop解决方法补充版

    下面的解决方案我亲自试了没有问题:可行,但是对于初学者来说肯定会有一个疑问:这个.bash_profile文件到底在哪呢:其实很简单: 当前用户的.bash_profile在/home/用户/下,系统 ...

  8. ionic3 生命周期钩子

    ionViewDidLoad 页面加载完成触发,这里的"加载完成"指的是页面所需的资源已经加载完成,但还没进入这个页面的状态(用户看到的还是上一个页面). 需要注意的是它是一个很傲 ...

  9. Sublime Text2 使用心得总结

    sublime text2是开发代码编辑的神器 ,编辑器界面优美,操作速度快速.而且Sublime Text2是一款跨平台的编辑器,再也不用为换平台而找不到合适的.熟悉的编辑器担忧了. Sublime ...

  10. Floyd算法-dp问题

    求结点对之间有负数的距离.限制条件:不允许有包含负权值的边组成的回路. 例子: 1.初始化 其中distance矩阵表示i,j两结点之间的距离. path矩阵,以第一行为例,表示0->0值为n表 ...