前言
我叫王小闰(花名),非科班出身,野生前端从业者,在小公司打杂三年后,意外地拿到了美团的offer,成功跳槽到了美团外卖事业部。
接下来,正文从这儿开始~
3年前,我高中毕业,进了编程培训班,后来自修课程,学的是计算机科学与技术专业,之后顺利拿到了北航的学历证书。
培训班毕业出来之后,我来到了杭州。在杭州这个充满电商气息的地方,每个人都对自己的未来充满了希望,《猎场》里的郑秋冬如此,我也一样。
虽然我的家庭条件不是很差,但我还是希望通过自己的努力,实现当初的梦想,出任CTO,甚至财务自由。
来到杭州,我更加明白,要想在杭州出人头地,一定要在别人看不见的地方更加努力才行。很快,我面试上了一家杭州的创业公司,前端工程师岗位,做19楼本地生活平台项目,月薪5K,双休。
刚开始的时候,我们公司里的PHP大佬让我先做专题页面的切图,以及其他页面的前端制作,还有公司官网需要的js交互功能的实现。除此之外,我们老板还给了我一本关于PHP开发笔记的书籍,让我研究,因为我们公司的网站后端用的框架是ThinkPHP。
那时候,我前端页面切完之后,就会捧着PHP开发笔记研究它的面向过程编程,时不时地请教大佬一些问题。那段时间感觉自己成长了许多,从前端页面到后端套模板,再到一些网站运营、编辑的事情,锻炼了自己的能力。有时候周六日,我还会在猪八戒网上接一些私活儿,外包项目啥的,挣点外快,顺便夯实下自己的业务知识,业精于勤。
还记得我来到公司一个星期以后,我慢慢意识到周边的同事们,每天到了下班点都没有走的意思。当时我司一个从北京回来的前端,用他的职场经验告诉我,下班晚走半小时,是一种工作态度。尤其是作为职场新人,要想在公司有所发展,技术有所提升,就必须付出比别人更多的努力。于是,在那天过后,我慢慢地成为了我们公司来的最早、走的最晚的员工。那段时间,也是我技术提升最快的日子,而这些细节,我们老板都看在眼里。时间过的很快,转眼已来杭第二年。付出总有收获,一年之后的我顺利地涨薪到了8K。
在小公司里呆久了,你会发现公司业务发展的瓶颈,可能是当时自己的格局太小,觉得自己遇到了技术瓶颈,职位晋升缓慢困难等等。
当时在小公司打杂的我,无时无刻不在羡慕着大佬的大厂光环。由于彼时,美团发展迅猛,我对之早已垂涎已久。
听朋友说,在美团做前端开发工程师,简直是一件幸福的事儿。单从硬件上来说,标配的MacBook Pro 15,人体工程椅,27英寸外接显示器,单凭这三件套,足以让人艳羡。
接着从软件方面来讲,只要你能为你做的事情负责到底,你似乎可以做你想做的任何事情。比如用polymer做一套UI框架,比如前两天刚用flux+react+express做了美团工程师网站,而且主站(美团团购)正打算用react开发一些组件替换现在的解决方案。
美团前端是“大前端”,全栈似乎在这里并不是很稀奇的事情。
前辈都很nice,虚心学习会学到很多东西。而且美团有比较好的分享培训机制,人人都是讲师,还有美团图书馆,似乎主流的技术书在上面都能找到,现在收藏近4000本。内部办公基本都云端化。你可以申请美团云主机去做你想做的事情。
听着朋友的描述,那段时间进大厂成了我所有的幻想,以及梦魇。
我深知,大厂最看中的就是基础知识扎实与否。为了进大厂,我拼了。从亚马逊买了本经典的《JavaScript高级程序设计》,俗名红宝书。每天背着我的双肩背包,在上下班的地铁里,一页一页地拜读着JS高程,白天去了公司也看,晚上下了班回去也钻研。就这样,反反复复来来回回把这本书翻了三遍,期间也接触了一些流行的前端框架和构建工具。终于,我在看到美团的社招信息后,勇敢地迈出了第一步。
当时参加的是美团点评部门的面试,部门前端技术栈是vue,后端用的node。一面通过后,等了两个小时面试二面,然后通知我回去等消息,一般这样就是挂掉了,毫无疑问。后来才知道美团是一次性全部面完的。所以以后有去参加美团面试的童鞋,最好做好面试四个小时的打算。
先来聊聊一面吧~
一面
1.简单的自我介绍,与大体的了解我
一面面试官非常不错,先问了下几个项目和用到的技术,会先对我懂的东西做一个大体的了解,比如webpack的单页面的多页面切换,webpack的按需加载,一些webpack的配置有哪些,问了有没有看vue源码,我说了一个vue的watch,大体问了问我框架方面的东西,发现我对框架并不是很熟练,安慰我说没有关系。
2.promise的原理
这个面试官最让人欣赏的就是不会去问你不了解的东西,一开始问了我promise,发现我用的并不是很多,就很自然的说没事,换一种方法问你,好和蔼啊。
然后就让我用原生js写一个回调函数,其实就是问promise的原理了,js写一个。
3.this指向
这个是面试官手写了一道变态长以及绕的this指向题,可以自行百度js this指向面试题,看几道没有啥问题,需要关注的是其中也考了,argument,和apply(null)。以后想起来再写吧
4.bind与函数柯里化
也就是写个bind,这个红皮书高级函数(22章)有:
1 function bind(fn, context){
2
3 return function(){
4
5 return fn.apply(context, arguments);
6
7 };
8
9 }
可以看下。不过还是得先理解bind的用法,返回一个函数,以及可以传递的参数。参数这里涉及到了函数柯里化。都是手写代码,而且最好写的整洁,因为我有些一笔带过,面试官都让我写完整,明确说要看我写代码水平
5.==, isNaN, typeof
问这个之前先问了我有几种数据类型,这里隐形的看你知不知道es6,symbol这个新出的类型。说出了symbol自然会问你这个类型有什么用。
然后就写了好多个typeof,isNaN,==的问输出,这个就是基础题。
6.知道什么http请求头?
这个可以说的很多,说了几个,又主动说了下有关跨域请求头,之前项目用的cors,于是和他聊了一会,其实面试就是主动表现自己,把自己知道的都说出来,不然几个请求头说细不细,要问细了能把人问蒙了,最好把话题引到自己知道的地方。
7.问了css
问了css盒子并画出来,清除浮动与bfc,两列布局。
8.说了一大堆其实就是想考我防抖
面试完这个问我想问的问题,我直接问还有二面么?回答有的,又介绍了一会美团点评,说是后台是node,看来要求是前端也要有后台的知识喽。
二面
二面问的显然比一面深入很多:
1.自我介绍,问项目
针对项目问了不少,当时有一个支付行为的项目,于是问了很多安全方面的问题,蒙蒙的,完全不知道。第一个就很失败了。然后问了其他的项目,问了websocket。
2.node的EventEmitter用js实现出来
写出来了,但是可以看出来代码写的不规范,学长面试官表示看起来很乱。不过大约算是可以的,指出了几个问题,让我进行修改。(之后完善)
3.虚拟dom
其实vue中就有jsx,react的特点之一有jsx,虚拟dom和代码优化有点关系。
先说下正常对dom的操作,在浏览器中分为渲染引擎和js引擎,现在浏览器内核一般都是渲染引擎(生成渲染树),因为js引擎越来越独立了(所谓的v8引擎?)
然而你在js中获取dom元素的时候你必须要通过渲染引擎,这样两个线程之间的数据交换自然会很慢。所以在前端优化中总是要考虑减少dom操作这一项。包括获取dom元素变量储存起来。
jsx是把dom元素变成了储存在内存中的数据结构。js很快,操作dom也很快。不过也存在缺点,目前的理解就这么点了。
4.路由的实现原理
饿,不知道。。
5.node文件流,java的映射机制(记不太清楚)?
饿。。
6.数组方法map和reducer区别?
饿
7.进程与线程的区别
终于有个我会的了,这个显然想问你js的运行机制。先介绍了下进程与线程。
一个浏览器是一个进程,虽然js是单线程的,但是浏览器是多线程的,v8引擎也是多线程的,比如有渲染线程,有处理请求的线程。然后说说任务队列,eventloop。没有理解很深也不敢往下说。
8.树遍历
先序,中序,后序。我只知道这么多了,显然想让我写一个的,可是不会。也显然面试官内心已经把我pass掉了,没多问。
9.问了个算法
KMP??反正我不知道。
最终,第一次大厂面试之旅,以失败告终。
后来,我开始狂刷前端面试题,为下一次进大厂作准备。就这样,我每天坚持早睡早起,定的凌晨四点半的闹钟,我相信,闹钟叫不醒沉睡的心灵,但梦想可以。正所谓,叫醒你的不是闹钟,而是梦想。虽然这句话俗气,但俗就俗点吧,我喜欢。一个心怀进大厂的人,行动是一种自发行为,而不是鞭策。
在熬过无数个日日夜夜之后,我又一次去参加了美团的面试。本以为这次十拿九稳,可是结果还是败北了。
我不甘心,我始终认为,成功就是,你站起来比跌倒的次数多那么一次。
于是,我在大佬的影响下,开始写技术文章,发表于各大博客平台,开始运营公众号,写点自己的职场感悟,提升自己在圈内的影响力。平时,跑跑步锻炼身体,让自己有个强健的体魄。当一个人没有退路时,往哪走都是前进的方向。就算前方风雨交加,我还是义无反顾,因为,走泥泞的路,才能留下清晰的脚印。
事不过三,在我从事前端开发的第三个年头里,我再一次毫不犹豫地参加了美团平台及酒旅事业群的面试。
这一次面试,我竟然......
后记
是的,现在我已经成功拿到了美团发来的offer,并顺利入职了美团外卖配送事业群,从此成为了一名光荣的美团外卖骑手,我司还给我配备了电动车。
这就是我入职美团的故事。
声明
欢迎转载,请注明出处和作者,同时保留声明。
作者:闰土少年
出处:http://www.cnblogs.com/runnin...
本博客的文章如无特殊说明,均为原创,转载请注明出处。如未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
想了解我的更多动态?欢迎关注我的微信公众号:闰土哥的前端路
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。