我是如何同时拿到阿里和腾讯offer的

三月真是一个忙碌的季节,刚刚开学就需要准备各种面试和笔试(鄙视)。幸运的是,在长达一个月的面试内推季之后,终于同时拿到了阿里和腾讯的offer,还是挺开心的。突而想起久未更新的博客,就冒昧学一学各路大神,分享面试过程中的经验总结。总的来说,本人并不是什么超级大牛,文章更多的是经历叙述,大神可自行绕道。

经验很重要

简单乱入一下,本人主修软件工程专业,对Web有着浓厚兴趣,主攻Web前端

就在三月份刚开始的时候,各种群里面就有师兄说,谁要内推,赶紧发邮件。好在牛人师兄多,一开始就投了天猫淘宝腾讯SNG腾讯微信四份内推简历。

接到的第一个面试是天猫的,在完全没有准备的情况下,就开始了长达一个多小时的电话面试。第一次难免是紧张的,在面试的一个多小时里面,多次处于颤抖状态。这里所说的颤抖是真的,原因很简单,对于这一次面试没有任何准备,加上这个面试足够有分量。挂了电话的时候,第一反应就是不断回想刚刚面试的问题以及自己回答是否正确。于是就不断回想刚刚面试官说过的什么JavaScript事件委托、HTTP状态码、前端模块化怎么实现...

和预想中的一样,第一次面完之后,然后就没有然后了。然而还没来得及失落,以及做足后续准备,腾讯的SNG电话面试就来了,问的问题很少,让你介绍一下自己的项目,为了几个常规问题(文章末尾附上所有面试题目),然后就让你开QQ,远程看你写代码..(从没想过QQ居然是面试工具)。不幸的是,写代码不给查资料,所以写的时候遇到一个闭包问题,卡了好长时间。这一次的面试长达一个半小时左右,然后就进入了漫长的等待。这一次情况不同的是,我有面试官的QQ啊!于是几天之后,我问面试官,为什么我被刷了?面试官给的理由是,你有前端模块化的思想,思路清晰,很不错,但是你写代码卡的时间比较长,必须有个刷人标准..

于是乎,在没有经验的情况下,前两轮面试就这样光荣挂彩了。

面试不是你问我答

在屡屡受挫之后,我开始反思面试的流程:自我介绍->项目经历-> 技术问题 -> 我有何问题。我发现在除了项目经历之后,其他环节都不是问题,毕竟我有着两年的积淀,基础还是很扎实的。

于是我去请教一些师兄,面试应该要注意什么。起初问了微信的两位大牛师兄,结果甚是惊讶。简单总结就是,在讲项目的时候,你需要展示你自己的亮点,可以说一些装逼的词,但装逼也是得有真材实料的。比如我在项目中使用了WebSocket,那么面试官很可能问你WebSocket是什么,底层原理你知道么?如果你当场傻掉,面试官就会觉得你只是会使用别人的东西,并不在意实现原理,终究是码农。那么事先你就应当去看看WebSocket协议的官方文档(纯英文,看得累死我了!),这样面试官一问你,你能头头是道,会大大加分。再比如,你在项目中使用了模块化,那么你就一定要知道什么是模块化,而不是说你会用模块化工具。其实要求并不高,你只要能很好说清楚什么是AMD规范,什么是CommonJs规范,各自的优缺点是什么就很够了,起码之后每次面试官问我,我都是秒回的,面试官竟无言以对,也就是对我的认同。

最后一点,也就是最重要的一点是,一定要把面试官往你熟悉的领域引导,这真的很重要,因为如果你不引导,面试官不了解你的项目,看不到你的亮点,就只能一直问技术问题刁难你,人家在大公司待这么久了,还不是轻松碾压你。所以你在引导的同时,时不时提及一些事先准备好的关键词,技术官一问,你一回答,怎么都妥了~

理论实践

上述理论其实真的是很管用的,起码我现在觉得自己是半无解了,因为在那之后的淘宝和微信面试中都顺利通过了,也可以放弃29的腾讯线下笔试了(学渣真不会C++),哈哈。

淘宝一轮的电话是一个慵懒的中午打来的,由于三点有课,两点的时候准备上去睡个午觉,还没躺下呢,就接到面试官的电话,我说我准备睡午觉,他说两点了还睡午觉...

不得不说,阿里的面试还是非常专业的,一轮的时候,花了半个小时实践我上面说的理论,然后就狂问十几个技术细节问题!没有一定的技术基础真的招架不住。面完之后个人感觉还不错,口干舌燥上课去了。后来发现阿里的面试状态是在他的招聘网上实时更新的(这一点阿里做的最好)。由于心里有底,看到通过淘宝一面并不是很惊讶,只能说要是这样都不过我就认了!最难的是二面,估计是技术总监什么的,除了常规面试流程之外会一直刁难你,这个时候需要有格外良好的心里素质。像阿里巴巴这种大公司,技术牛是没话可说的,但是我们只是一个大学生,没有做过并发量达到他们零头的应用,所以这一关考验的是思考问题的能力。有些问题是你可能是真的不会的,但是也不要出现好像是可能是我猜之类的词眼(我之前就是这样跪掉的),而是说按照我的理解给过一点思考时间我不太懂这个问题需要我从哪个角度解析我以前遇到类似的问题是怎样这个问题应该也是这样...这样给面试官的印象是,即便你不懂,但是你在全力思考,而且这样会给自己争取很多时间。

微信的面试就不多说了,只能说腾讯的广州研发中心真的很漂亮,一看就是工作的好地方!里面的设备啥的也是好的没话说!但是还是忍不住吐槽一下,腾讯的面试做的不够好,去到二话不说给你六道算法题,时间一个小时,然后又狂问你一个小时,一口水都没的喝!!好在过了,不再赘述。

总结

  • 机会总是留给有准备的人,每一次都要好好对待
  • 当对自己的技术足够自信的时候,拼的就是RP和面试技巧了
  • 面试之前,去找找那些大牛们,他们比你都有经验
  • 平常心对待,只不过是一份工作

资源共享

个人觉得每一次面试都是一次修炼,所以每一次都需要好好总结。这一点我还是做的不错的,我把大部分面试都记录了下来,然后仔细分析研究,避免不会犯二次错误。这里附上一些面试题目和个人准备过程中的一点小笔记。然后推荐同样面试前端的同学好好看看《JavaScript高级程序设计》《HTTP权威指南》,管用。
最后奉上个人的简历,供大家参考,起码没有在简历环节被刷,哈哈。
我的简历

袁梓民的个人简历

个人信息

姓名:袁梓民

性别:男

出生年月:1993年10月14日

学校专业中山大学软件学院

电话:13824421386

Email1229084233@qq.com

bloghttp://www.cnblogs.com/yuanzm

image

英语水平:CET-4

技术能力

专注并且热爱web开发,熟练掌握JavaScript、HTMl、CSS以及JavaScript框架来搭建web应用。了解原生JavaScript和JavaScript类库的使用。

  • 掌握的JavaScript类库:jQuery、Prototype
  • 掌握的JavaScript框架:BackBone、Vuejs、Angular.js、React.js
  • 掌握的CSS预编译器:LessCss、Sass
  • 掌握JavaScript模块加载器:RequireJS、Browserify
  • 掌握项目构建工具:Grunt、Gulp
  • 掌握项目管理和协同工具的使用:SVN、Git
  • 掌握前端测试框架以及工具:Jasmine、Mocha
  • 掌握基本后端开发:NodeJS、Python
  • 掌握web相关技术:MongoDB、CoffeeScript、SEO、Socket.io、Express、Tornado等

个人经历

  • 2012年进入中山大学学习
  • 大一开始接触Web
  • 大二开始疯狂投入web学习
  • 大二下开始加入创业团队,系益米通服务有限公司的微信前端工程师
  • 大二暑假在广州时代财富有限公司上班实习,参与建设银行网上银行前端原型开发

个人作品

米芝莲

项目地址: http://www.wizland.cn/wizland/index/

imageimageimage

  • 简介
    • 米芝莲是一个在线食材选购网站,同时具有移动端和PC端。项目采取了SpringMVC框架,充分利用了框架所宣传的MVC、Restful风格、简洁高效等特性。
  • 项目收获
    • 熟悉了Eclipse环境的开发,熟悉了Java Web应用的开发流程
    • 尝试了没有框架条件下的移动端Web开发
    • 对于前端模块化有了更加深层次的理解
    • 理解了组件化开发对于前端开发的重要性
  • 项目总结
    • 在本项目中,我担任了移动端和PC端的前端开发一职。在这个项目中,充分认识到了前端架构的重要性。在同时具有移动端和PC端的非响应式应用中,怎么合理把握好前端结构显得尤为重要。既然要分成移动端和PC端,主要原因是页面排版不同,但是很多逻辑是通用的,因此怎么利用browserify等前端模块化工具来提高代码复用性成为一个很重要的任务。同时,本项目中还第一次尝试了设计,完成了移动端和PC端的大部分设计稿,认识到了作为一名前端工程师,设计能力的不可或缺性。总的来说,这个项目实战型很强,收获很大。

LiveChat

项目地址: https://github.com/yuanzm/Live-Chat

  • 简介
    • Live-Chat应该是所做过的最复杂的一个Web应用。项目采用Node的Express框架作为后端架构,采用非关系型数据库MongoDB实现聊天记录持久化,采用socket.io实现具有高兼容性的实时消息传送。
  • 收获
    • 认识到项目架构的重要性
    • 总结出了自己的前端模块化工作流
    • 熟悉了Nodejs应用开发流程
  • 总结
    • 作为聊天WebApp,决定了整个页面是富交互的,所以如果仅仅是单纯的模块化并不能保证良好的可扩展性。于是总结出了前端组件化开发的思想:前端应该根据应用的复杂程度将前端分成三道四层,第一层为数据操作层,封装了很多AjaxAPI,负责与后端进行数据交互;第二层为UI组件层,为了最大化提高页面组件的复用性,页面上的元素应该根据功能划分成很多模块,也即HTMl和CSS同样是模块化的;第三层为UI组件通信层,为了降低UI组件的耦合性,组件之间的通信应该是通过事件机制的,而不是直接互相调用另一个模块的内部函数。整个项目最大的难点是怎么降低不同组件之间的耦合性,不然在开发的过程中,一个模块牵扯到很多模块就会顾此失彼。

Home-Cloud

Home-Cloud是基于Python的Tornado框架构的一个移动端WebApp。Home-Cloud的开发并没有花费很长时间,得益于之前的Web开发经验。Tornado本身不是一个MVC框架,于是在组织后端代码的时候借鉴了Nodejs的Express框架,将整个后端代码架构成由model层、router层以及view层构成的的MVC结构。好处是显而易见的,当业务逻辑愈发复杂,这种分层架构能够保持项目代码丝毫不会紊乱。前端得益于Tornado的模板机制,在大部分模板引擎都具有继承等优点的情况下,多出了UI模块这一点,使得每一个模块可以拥有自己的html、CSS和js,能够很好符合Web组件化开发的特点。通过这个简单的项目,很好展现了近两年的Web开发经验,从刚开始的写一步看一步到今天的工程思想,感觉收获很大。

求组队

项目地址:https://github.com/yuanzm/project-qiuzudui

所做的第一个项目,项目致力于创建一个在校大学生竞赛组队平台,通过这个平台,用户可以在主页查看到近期学校的比赛并能够发出组队邀请。在这个团队里面,我与另外一名成员进行合作负责前端开发。作为第一个项目,主要问题是团队协作以及项目工程经验不足的问题。由于没有很好的组织好项目结构,以及版本控制意识的缺乏,导致后期代码结构混乱的问题频频出现。通过这个项目,领会了项目工程思维的重要性,以及团队协作的重要性。

益米通

项目地址:https://github.com/yuanzm/emitong.git

第一次做手机端的Web应用,整个项目用于展示与益米通公司合作商家的优惠信息。项目遇到的主要问题是移动端Web经验缺乏,不同设备的适配问题等。通过查阅资料以及咨询前辈,在这个项目中掌握了Web响应式应用的开发,同时了解了微信公众平台应用开发的基本流程。

学院党委网站维护

项目地址:http://pro.ss.sysu.edu.cn:8080/party_affairs/index.jsp

主要任务是部署基于Java Web的网站服务器和网站的日常维护工作。

Snake

项目地址:https://github.com/yuanzm/Snake

在闲暇的时候用JavaScript写了一个贪吃蛇小游戏

自我简介

从大一开始了解web技术,大二开始正式投入学习web各种技术。正处于快速增长技能的阶段,对于web有着极高的热情,每天坚持学习web。

目前为止对于前端技术比较了解,但是正在学习web后端技术,目标是成为一名优秀的web全端工程师。

拥有较强的学习能力和沟通能力,能够比较良好的和团队成员协同完成开发。

 

图片描述图片描述
图片描述图片描述
图片描述图片描述
图片描述图片描述

 
 

转载来自:http://segmentfault.com/a/1190000002627927

转载于:https://www.cnblogs.com/zhrn/p/4495407.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值