写在最前前端
写过不少篇面试总结,这篇文章应该是最后一篇总结,固然也是最完整,最详细的一篇总结。算是人生中一段宝贵的经历,不只是我研究生生涯交出的一份答卷,也是将来职业生涯的开端。仅以此文,献给本身,以及各位在求职路上的,或者是已经经历过校招的朋友们。不忘初心,方得始终。
前言
在下本是跨专业渣考研的985渣硕一枚,经历研究生两年的学习积累,有幸于2015秋季招聘中拿到几个公司的研发岗offer,包括百度,阿里,腾讯,今日头条,网易,华为等。java
(在秋招末期,有幸又拿到了滴滴和亚马逊的offer,那时已经9月份了,因此以前的文章里都没有提到过)android
一路走来也遇到不少困难,也踩了不少坑,同时我本身也探索了不少的学习方法,总结了不少心得体会,而且,我对校园招聘也作了一些研究和相应的准备。在今年的秋季招聘结束之后,我也决定把这些东西所有都写成文字,作成专题,以便分享给更多将来将要参加校招的同窗。程序员
一.大学时期的迷茫与坚决面试
个人本科专业是电子信息工程,基本没有接触过计算机专业的课程,只学过c语言,而后在大三的时候接触过java,Android,以及前端开发。这时候我只是一个刚刚入门的菜鸟,还不知道软件开发的水有多深,抱着试一试的态度去应聘了不少公司。结果可想而知,连简历筛选都没有经过。算法
当年我对游戏开发颇有兴趣,特别是对网易游戏情有独钟,可是当我看到网易游戏研发工程师的招聘要求时,我只能望而却步,由于它要求学历至少是985的硕士。数据库
也由于这个契机,我在大三的暑假开始准备考研,花了一个月的时间深思熟虑以后,选择了华科做为个人目标院校。segmentfault
因而,那年的下半年,我成为了“两耳不闻窗外事,一心只读圣贤书”的考研党,回想起来那确实是玩命学习的半年时间,天天稳定泡在图书馆8个小时以上,有时候学到宿舍都能学到晚上12点,那时候感受本身彻底变了一我的似的,可能当一我的为了某个目标而努力时,真的会变得不同。最终我顺利地考上了,令我意外的是,成绩还挺不错。设计模式
二.研究生时期的方向选择网络
对于即将读研的同窗来讲,通常有两件事很重要,一件事是选择导师,一件事是选择方向。
我在刚读研的时候最头疼的也是这两件事情。首先说明一下,我读的是专硕,因此实验室通常不搞科研,有部分导师会带项目,因为我不打算在实验室作项目(由于我更但愿去大公司里锻炼几年),因此我当时本着想要找实习的想法选择了导师,事实证实个人选择仍是很正确的,我在研二有大段时间去参加实习,让我在大厂里有足够的时间去锻炼和学习。
而选择方向这件事,我却是折腾了很久。研一期间我作的最多的事情就是看书了,当时本身的方向还不明确,因此找了不少书来看。当别人都在专研数据挖掘和机器学习时,我还在各类方向之间摇摆不定。
我在读研以前想作游戏开发和Android开发,因而我在网上了解对应方向的资讯,发现游戏研发的就业面比较窄。
最后,我综合公司的岗位状况,我的兴趣,以及我以前的学习经历等因素选定了Android开发,因而我真正意义上的踏上了Android的学习之路
三.笨鸟先飞,勤能补拙
尽管个人入学成绩是全学院的top3,可是,我发现,做为非科班出身的我,和不少科班同窗相比,仍是有必定差距的。
大部分同窗本科都上过计算机专业的相关课程,好比计算机网络,操做系统,数据结构等等,而我之前连听都没听过,除此以外,他们通常都会几段比较完整的项目经验。至少在不少知识的层面上已经领先我不少了。而我在当时,只学了数据结构,另外接触过一些基础,有一部分项目经验,基本上就是入门水平。
因而我痛定思痛,决定好好弥补个人不足,平时一有空就去图书馆找些书来看,不管是操做系统,计算机网络,仍是数据库等本科课程,我都会找一些对应的书籍来看,当时不太清楚其实有些课程其实不须要特意去补,以致于我连计算机组成原理,编译原理,软件测试等方面的书都特意找来看,如今想一想也是挺逗比的。
因为咱们上的课比较水,因此上课时间反而变成了我自学基础课程的大好时光了。因此我平时上课的时候都会带两三本书,一到两周内看完一本,虽然可能吸取的不是特别好,可是对当时的我来讲仍是有很大帮助的。
就这样,天天我都把本身的时间填满,愣是在研一上学期看了好几本书,当时书的版本如今有的记不清了,主要是计算机网络,操做系统,计算机组成原理,另外还有软件工程,软件测试,设计模式,等书籍。就这样,我靠着这段时间的坚持把计算机基础课程补上来了一些。
四.历尽艰辛,终得实习
时间来到研一下半页,这时候我刚刚结束了学校的项目实训课程,在作这个项目期间,我发现本身暴露出了不少问题,技术实践能力不足,android基础不扎实。这件事情也给我本身敲响了警钟,由于我计划在春招期间找一份大厂的实习,可是目前看来个人水平还远远不够。
压力之下,只有努力一条出路。因而,从那时候起,我开始了“留守“实验室的学习生活。为何要在实验室学习,一是由于学习气氛好,二是由于平时你们也能够互相交流问题。天天早上9点到实验室打开电脑,晚上9点背电脑回寝室。大部分时间我会花在看书上
另一部分时间我会用来看一些技术博客,我主要是根据面经上的知识点按图索骥,找到对应讲解该知识点的文章,那时候主要仍是经过搜索引擎来找文章,固然有时候看到一些重点难点也会本身写一些博客。不过这个时期并非我大量写博客的阶段,主要仍是看一些讲解面试知识点的技术博客为主。
除此以外在面试前几天我会花时间去看这家公司的面经,搞懂每个面经上的知识点,而且记录在个人笔记上,光是面经相关的笔记我就记了100多篇,这样的学习习惯我一直坚持到了秋招,确保每一个面试知识点都能被我记住,消化,直至彻底理解。
慢慢的,笔记愈来愈多,我参加面试的公司也愈来愈多,因而我开始不断完善本身的简历,总结本身的面试技巧,选择合适的网申时机。从头至尾我大概花了3个月的时间在找实习上,期间大大小小参加了20屡次面试,我也从一开始面试一问三不知的菜鸟,逐渐变成了面霸,到复习末期,我对Android常见面试知识点已经了然于胸,同时也愈来愈自信,无论面什么大厂都镇定自若。
这样的日子持续了好几个月,所谓世上无难事,只怕有心人。到最后,实验室里每一个人都拿到了心仪的实习offer。
五.实习路上,我明白了不少
踏出学校大门,个人实习之路才刚刚开始。8个月左右的实习时间,说长也长,说短也短。但经历过这段实习以后,我才明白了不少事情。
在A场实习的日子里,我第一次了解大公司的开发流程,亲自参与项目代码的开发,个人导师会和我提需求,会指导我怎么作得更好。在这里的成长无疑是很是快速的,但我很快意识到个人问题所在,对不少技术原理,实现原理都不是特别熟悉,这段时间我意识到了本身的知识深度和广度均可能都有待提升。
不过因为家里的一些事情。我提早离职了,因此在A场呆的时间很短,以至于我没来得及搞懂部门项目的技术架构就走了,这也让我在离开之后感受很遗憾,因此我下定决心在下个实习单位要好好作。
离开A场后我来到了B厂。部门给我提的需求不算太难,大部分都是一些简单的工做,可是此次很快就意识到了问题所在,就是我不太熟悉部门的总体框架,因此在须要借鉴别人代码时偶尔会看不懂。后来部门又给了新的重构需求,此时的我开始焦虑起来,是否是应该作出一些改变呢。
终于,我找到了新的目标利用一些时间去看其余同事负责的代码,而且经过一些文档和PPT去了解这些代码的功能和意义。结合代码和文档,再加上和同时的交流,我对部门项目的架构逐渐熟悉起来,为了更好地理解每一块代码的做用,我还为一些模块的代码写了注释。
到后来,我工位上的书愈来愈多,我对部门的技术也愈来愈熟悉,有时候我还会去听公司内各个团队组织的技术分享,有空的时候看看网上的技术课程,真正地实现了本身在技术广度上的拓展。
有时候我以为,实习生活是会骗人的,你佩戴着和正式员工同样的工牌,和他们作着相似的事情,会让你以为你的水平已经和他们差很少了,但事实上是,在转正以前,你和他们还差得远,因此不要停下本身前进的脚步,抓紧时间学习吧,把握好你在公司里的机会,合理利用公司给你提供的资源。
六.积累与沉淀
研究生期间我有一件事情一直在坚持,那就是作笔记和写博客。
作笔记,就是记录学习中大大小小的事情,多是面试问题,多是一周的学习计划,也可能知识一个知识点,总归都是值得记录的东西,对我来讲,就是一种积累。而对于博客,我从一开始只用于记录项目,到后来作转载,再到后来写原创,整理系列文章,则更像是一种沉淀。
可是在春招刚刚结束的这段时间,我发现一个问题,以前学过的东西忘记了不少,特别是那些理解的不够深的知识点,老是特别容易忘记。另外我发现,虽然我在笔记中记录了不少的知识点和面试题,可是每每我只看过一次,不会再去看第二次。
这也意味着,虽然记录的内容不少,可是真正消化吸取的内容不多,脑子里充斥着老是那些零碎的知识点和面试问题,对于完整的知识体系知之甚少。这些问题在春招期间也不断地暴露出来,让我思考了好久。
面对如此窘境,我想作出改变,趁着如今时间充裕,我想要为这些内容作一次减法,而且借此机会,推翻本身原有的知识体系,重建新的知识框架。
我打算用几点来形容这三个月的复习
七.秋招之路,砥砺前行
无论前期作了多少准备,到秋招的时候也不能掉以轻心,从七月底第一次面试到9月基本佛系,中间经历了大大小小的面试。
在完成知识体系重建之后,我把重点转向了另外几件事,一是完善和熟悉个人简历,以便在面试中可以比较好地发挥,二是持续刷题,保持对算法题和笔试真题的手感和熟练度,三则是看面经查缺补漏,我一直认为看面经是很重要的一项复习内容。
就这样,我一边继续复习,以便开始了一场接一场的面试接力。
起初,我面了几家小公司练手,接着阿里的提早批接踵而至,我战战兢兢地参加了阿里中间件部门的面试,面难难度还算适中,一共四轮面试,当时个人表现也还不错,问题基本都答上来了。面完不到一周之后我就收到了经过的消息,当时还有点懵。没想到第一个offer这么快就来了。
这段时间内,蚂蚁金服的两个部门也给了我面试机会,我都参加了它们的面试,而且顺利地拿到了其中一个部门的offer。因为我对蚂蚁这边的业务比较感兴趣,最终选择了蚂蚁金服的offer。
阿里提早批的胜利确实是意外之喜,但也大大地鼓舞了我,因而我又参加了百度和腾讯的提早批面试,因为百度的提早批不走流程,一共有四个部门面试了我,每一个部门都有2到3轮面试,总计约为12次面试,到后来我已经快晕了,看到百度的电话就惧怕,因为面试次数太多,有时候发挥确实也不是很好,我也没有特别在乎,只当是在锻炼本身了。
百度的面试难度每一个部门不同,可是每次面试必写算法题,一写算法题,时间至少就是一个小时以上,每次面试完都有一种身体被掏空的感受。
经历了百度面试的摧残之后,我手写算法的速度也变快了,不少坑也被我填上了。接下来面对腾讯的面试,我也是既激动又担忧,腾讯的面试难度比较大,对于操做系统和网络的知识喜欢深挖,问的东西也颇有深度,面完前三面之后,第四面拖了3周才进行。当时三面面试官对个人评价比较好,也让我信心爆棚了很久。
在等待腾讯终面的期间,我参加了今日头条的面试,当时有幸拿到了一个白金码,免去笔试,事实证实白金码做用真的很大。头条的面试难度和腾讯差很少,三轮面试,一样须要写各类算法,因为是视频面试,我能够清楚地看到,头条的面试官真的很是高冷啊。面完头条个人第一感受就是应该挂了吧。没想到最后仍是给了offer。
结束这几家大厂的面试以后,我以为个人秋招已经接近尾声了,不过因为以前投的比较多,因此我又面了几家大公司,如网易,华为,快手等。到9月上旬的时候,我接连收到了bat和头条,网易的意向书,阿里最先,腾讯最晚,每收到一封意向书我都很开心,没想到最后我真的能够集齐bat等大厂的offer。
9月之后,除了偶尔和同窗作几场大厂的笔试,我基本就佛系了。直到后来一些外企例如亚马逊,大摩开始笔试面试,我才又从新回到了状态。
截止目前,我基本上把该拒绝的offer都拒绝了,综合各方面因素的考虑,最后应该会签阿里,缘由是部门是我本身喜欢的,同时给的评级也比较高。虽然腾讯也给了sp,可是最后仍是忍痛割爱啦。至于百度和头条,给的offer并非很使人满意,因此就没有考虑了
至此,个人秋招之旅总算圆满结束。
八.笔试经验
提早批的笔试其实不是不少,我参加了网易,网易游戏,拼多多等公司的笔试,应该都是低分飘过。
个人算法基础比较通常,读研以前0基础,因此这方面学的比较艰辛,分享一些个人笔试准备经验。
1 .打好数据结构和算法基础
2 .先易后难,看一些基础的算法书籍
3 剑指offer刷起来,两到三遍,作到成竹在胸
4 .刷个200题左右,记得二刷,作好总结。
5 作其余公司的历年真题,熟悉题型,保持手感。
九.面试经验
面试主要考的仍是你的基础知识,主要须要你对全局上有个很好的把握
我我的也总结了一些面试方面的经验,主要是一些技巧。
1 作好自我介绍和项目总结,把握你发言的主动权
2 搞清楚简历上的技术点,兵来将挡水来土掩
3 注意分点答题,思路清晰,也更容易讲清楚原理。
4 压力面下保持冷静,不要回怼面试官
5 HR面试注意经常使用技巧,能够提早准备。
十.学习资源分享
这几年的Android开发是时间里,接触过不少的资料,网站和课程,也走过很多弯路,因此在这里也总结一些比较好的资源推荐给你们
首先是平台
1.CSDN和博客园,主流的技术交流平台,虽然广告越打越多了,可是仍是有不少不错的博文的。
2.segmentfault,有点像国内的Stack Overflow,适合交流代码问题的地方。
3.掘金,一个颇有极客范的技术社区,强推,有不少技术大牛分享优质文章。
4.开发者头条,一个整合优质技术博客的社区,里面基本上都是精选的高质量博文,适合技术学习提高。
5.v2ex,一个极客社区,除了交流技术之外还会有不少和程序员生活相关的话题分享。
6.知乎.这个就没必要多说了。
7.简书
简书上有些技术文章也很不错,有空你们也能够去看看。
8.Github
有一些GitHub的项目仍是很是不错的,其中也有仓库会分享技术文章。
还有我本身最近整理的一些资料。须要的同窗能够找我领取
领取地址:https://shimo.im/docs/GsAQFU7...
人的一辈子须要不断的修行,刚刚闯过了一关又立刻要迎接下一轮挑战,你不能停下脚步,毕竟你们都在往前走。
但愿还在求职路上的各位少侠好好加油,在将来也可以顺利地拿到本身想要的offer!