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

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

经验很重要

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

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

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

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

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

面试不是你问我答

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

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

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

理论实践

上述理论其实真的是很管用的,起码我如今以为本身是半无解了,由于在那以后的淘宝和微信面试中都顺利经过了,也能够放弃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

相关文章
相关标签/搜索