准备
距离大四毕业只剩几个月时间,不想浪费几个月时间不工作,所以踏上了找工作之旅。
由于同学在深圳居住或实习,互联网科技就业选择不是广州就是深圳,所以二月末在决定到深圳,和两个同学找房子买日常用品前后倒腾一个多星期,开始投简历。
投递190+简历,历时23天,5个面试邀请,4间面试,3个offer
简历投递在三个网站:拉钩、Boss直聘、猎聘,岗位都是Android开发工程师。
拉钩和直聘对应届生求职最友好,应届生成功率最高;
猎聘最合适有工作经验跳槽的技术人,但可以把简历挂上;
不建议智联、应届毕业生网、中华英才、前程无忧投简历,行业契合度低浪费时间
第一份简历在2月28日拉钩投出。刚开始投递的时候,很多都是没有回应的,感觉是简历不够吸引HR的眼球。然后按照同学的建议对简历进行大面积修改,接二连三地接到面试通知。
简历除了遵循STAR法则,更重要是在项目描述中用数据描述您的贡献,数据在一行行文字中是最显眼的,每个成就都用一个具体数据表示,能节省HR的阅读时间。就像做数学题,结果对,过程最多扣一两分;若结果值算不出来,就会被狠狠扣分。我们现在就是直接把结果展示给HR,不需要让她看过程。
超简略举例:性能优化提升9%;混淆压缩节省1.99MB空间;内存平均占用减少299MB;高峰期访问并发量39W;
不要这样写:参与9个项目;编写19页文档;写了9999行代码;
这些数据来源你平时工作过程中的实践,通过主动尝试、记录、测试获得。这个作假通过HR筛选,但是技术官质问实现过程,你解说方法效果对不上简历数据就会原形毕露。所以说到底,还是基础和技术深度决定简历的高度。由于应届毕业生没有工作经验,所以广度一般会有欠缺,这个没关系,注重基础就可以。
谈互联网寒冬
很多同学都说互联网寒冬,但我并不这么认为。
互联网寒冬最早出现在2015年年中的样子,当时很多互联网公司遇到了发展瓶颈,融资失败并停止招聘,甚至到了裁员的地步。BAT实习生招聘也缩减人数,整个互联网瞬间遇冷。很多人就算是工作不满意,都不敢跳槽。时至今日,已经是2017年春,即使互联网寒冬余波犹在,整个行业的人员始终是要流动的。没可能寒冬就没有任何机会。
我的同学在2016年8月左右进入了一间新创业公司,这间公司在寒冬才创业半年已经融资到B轮几千万,从原来几个人到现在50多个人,不断拓展的业务还需要新的开发人员。而公司的CEO也不过是和我一样的大四学生,当我还在找工作的时候,他们已经拥有一家运行良好的公司。除了这种特例,互联网行业总会有人员离职、退休、出国等流动,就算公司不扩招,我们还是应该抓住流动期窗口获得机会。
一般来说,每年新年两个月之后的3月-5月,是互联网行业跳槽和招聘高峰期。原公司的职员拿到了公司的年终奖,开始寻找新的机会。企业也在这个时间招聘大三实习生和有多年从业经验的开发人员加入,初创企业也抓住这个窗口为公司招揽人才。我下面介绍的3个offer,有两个是创业公司。
下面收到offer的公司全部匿名,主要是保护我个人信息。
面试
第一家 智能果
智能硬件公司,来自直聘,智能家具。
公司地址在深圳龙岗的一个工业园里面,因为租的房子在西乡。这样的距离上班时间坐地铁就要1个多小时,还没有算出门前的准备、地铁后换乘其他交通工具,每天上下班妥妥的4个多小时,又不能再租一个房子,所以回复并婉拒了这个面试。
第二家 富途证券
面试邀请来自拉钩,最后没有offer。富途证券前几年创业建立的,公司创始人是腾讯前18号员工,业务主要是港股、美股的交易,港股的资讯消息。公司地点深圳高新园腾讯大厦D区。公司正门有很宽的落地玻璃,前台也非常大,里面装潢设备也非常新。前台大厅就是面试区,要在Android的话需要做一份面试题:内容是C语言基础、计算机网络知识、智力题。做完之后就和面试官交谈。
因为是前台的大厅,做面试题的时候,旁边坐也会有人在面试聊天,因为相隔不远,所有声音非常大,会对面试题有影响。不知道面试官什么岗位,主要和你了解简历中之前公司的经历,会要求你描述项目中的技术架构等等,应该是比较希望深入了解面试者的经验和能力。面试中没有怎么问Java和Android的基础和深入的技术,所以比较轻松。
第三家
直聘邀请,拉钩上也有这件公司,收到offer,准备入职。
一间创立才一个月的金融公司。公司的CEO在华尔街高盛集团工作过很长时间,某证券从事技术开发工作多年,现在刚刚创业出来。公司的业务发展是证券交易、金融行业技术服务及革新。
一轮电话面试 和HR约定是3月10日早上10点30分,因为技术官开会到11点30才开始。技术官是Java的,从事高性能开发,多年从业经验。技术电话面试持续近一个小时。
所有问题和相关知识点:
- 为什么学的Android,通过什么方式学习?
- Scala函数式编程的理解,为什么要学?用来做过什么东西?
- JVM GC区别与JMM了解
- 垃圾回收有几种算法
- 老生代与新生代区别
- 操作系统堆栈、进程线程、进程线程与堆栈的关系,线程有什么资源,线程如何切换
- 线程锁:自旋锁、锁粗化。为什么要自旋?先比其他的优点?自旋多久?自旋能获得什么提升?前一个线程死锁了呢?
- 计算机TCP Socket,WebSocket,comet
- 拓扑排序,有向无环图,和库加载有关的算法
- 设计模式:只能介绍除了工厂模式和单例外其他模式:依赖注入、状态模式、装饰模式、依赖倒转;装饰模式用了Python装饰器解释,依赖倒转用了一个故事解释
- 如何实现乐观锁安全队列?CAS和Synchronized区别?
- 使用过的第三方库,介绍一下
- Spring依赖注入有几种方式,分别是什么
- 对RxJava的了解和使用
- 介绍Android网络库使用的经历
- 对Lambda的了解,为什么要用Lambda
- 用过什么单例,为什么不用枚举单例?
- 流式编程,事件驱动
- TCP状态机,状态机和状态模式关系
- Android Activity生命周期有什么,特殊的变换场景有哪一些
- 什么是多态,多态如何实现,虚函数表实现多态过程是怎样运作的
- Java容器类:ArrayList、LinkedList、并发的HashMap、HashTable
- 还有记不起来的知识点
可以看出,面试官非常注重计算机组成原理、操作系统、计算机网络、Java底层基础和设计模式。
面对一个大牛且有多年工作经验的人,一定会有你不会的知识。如果是完全不会的知识,就直接说不会,不要含糊其辞。遇到了解但是不深入的,就应该努力解释,尽量说出知道的所有知识,包括猜测的。也可以让面试官给点提示,然后继续解释自己的了解。
如果问题自己非常熟悉,就应该把记得的所有知识点全部说出来,其中插入一些问题的延伸,把方向继续带到自己熟悉的领域里面去。用自己的知识带着面试官跑,而不是被面试官带节奏。
第二轮面试 3月13日早上。公司租的地方在装修,所以去了临时办公地点面试,两个员工先后来面试技术,年龄都比我大几年。Java容器类、类与继承、虚拟机等基础且简单,不详细介绍。
第三轮面试 3月14日下午,在后海海岸城一个咖啡厅进行HR面和技术官面试。HR面试风格和BAT大公司的面试差不多,和你聊家庭的情况、朋友、运动、爱好、校园生活等。大概半小时后,技术官找到路也到了咖啡厅。这个技术官就是第一轮和我电话面试的面试官,原来是清华大牛。和面试官面试的过程中,会一直给你抛出技术问题去思考,问你计算机底层运作的机制。主要内容围绕线程、协程的应用和通讯,如何实现一个不用synchronized的安全队列等等深入的知识点。聊了一个半小时,脑汁都干了,不过收获很多。
第四轮最终面试 3月20日早上10点 和CEO在临时办公地点面试。CEO先介绍了自己的国内外(技术)工作经验,介绍公司创立的情况和将来发展方向。然后和我探讨了一下简历中项目的技术实现。CEO人很健谈且没有架子,交流过程中一直把自己和面试者放在一样的高度,在询问面试者的过程后,会对问题给出自己的构思和理解,然后和面试者互相交流。
面试最后问了offer的情况,我没什么忌讳,就介绍了已经拿到两个offer的公司业务,CEO听了就说这两天就能答复。虽然CEO工作比较忙,最后还是给我10分钟问我自己想要了解的东西。由于前几轮面试已经了解了很多,暂时想不出问题,当天面试就这样结束。
结束第二天下午HR电话通知拿到offer。由于没有毕业,以实习身份先进入公司了解业务。
评价 这件公司是我很多面试中评价最好的:HR很优雅,面试进度、流程、注意事项都会说的非常明白,面试的进展也会很快通知面试者。技术官技术非常有高度,面试过程虽然会狠狠地深挖你的技术深度,但是会给你不懂的知识做介绍和交流,而不是一直问问题咄咄逼人那种。而CEO非常健谈和风趣,问私人的问题前会先征求面试者的同意。据了解正在装修的新地点参照谷歌开发式办公,且公司崇尚无等级交流与沟通,他们同事之间称呼都用名字或昵称,而不是老总经理那一套。
第四家
从研发、设计、生产、销售一体的硬件科技公司,ODM,主业务是国外市场,产品是学习机、电脑、平板电脑和智能设备等,系统主要是Android,需要涉及底层Framework的开发。
3月16日 早上一面 首先做了一份入门的Android的笔试,没有难度,半个小时3页全部写完。整张纸写得满满当当的,吓得来技术面试的人以为我是从百度抄的,我回答:“我只用半小时,用百度能抄的完吗?”。
然后见了经理,简单介绍项目经历,又以为我是培训班出来的,我否认并介绍了我自学Android的经历后,经理面试也过了,由于老板出差,明天早上还得来一趟。这天从开始笔试到经理面试结束,不够一个小时。
3月17日 早上二面 进公司直接到CEO的办公室。CEO问是否有考研的意愿、开发需要接触Android Framework能否接受。我否认要考研,并表示希望接触Framework后面试结束,下午HR才发来offer。实习期薪资4.5K,转正再议,对准应届毕业生来说也是不错的。
第五间
拉钩。也是一件创业公司,在深圳科技园一个很小的孵化器里,还有一些员工在另外一个地方的办公室,筹备好几个月,刚建立一个月,正在找Android及Java后端的技术人员。在拉钩上是CEO兼技术官直接发的邀请,刚创立公司没有HR,CEO也不愿意在最重要的时间走过多的行政流程。
面试的时候,CEO介绍了自己在国外攻读的学位,在外国域名公司、寿险等大型公司从业的经历。然后开始讨论技术的东西,主要知识点是:lambda和匿名函数的区别、RxJava、虚拟机内存模型、类继承和接口实现的差别与功能、Java桥模式还有其他想不起来的知识点。
结束离开后一个小时,刚刚回到住的地方,CEO就来电话发offer,4.5K并希望尽快入职。由于这次面试时间比较后,较早的公司面试流程还没有走完,而且刚好随后几天还要回家和处理学校毕业资料的,没有办法马上入职,所以推迟入职时间,并约定入职前一天给是否入职答复。
这件公司给我的影响是“直接”。技术官就是公司的CEO,面试邀请、确认都是CEO亲自完成,交流过程很真诚直接,不会兜圈圈。对公司现在情况的不足和入职以后可能遇到的方方面面问题都提前说好,让人非常踏实。同时这家公司的薪资和第四公司一样并列最高。
用短信直接沟通的时候,CEO还表达不能加入他们的遗憾和可惜,又给我发了一个技术网站推荐阅读。希望这位CEO能一帆风顺。
选择
3月21日,经过4间公司面试,拿到3个offer,我最后没有选择薪资最高的两家公司(4和5)中的任何一个,而是选择了薪资远低于这两个公司的(3)公司,这基于考虑到岗位契合度、公司发展、公司员工技术能力和技术的接触面考虑的。
选定了offer准备入职,我就开始编写邮件给发offer的公司一个答复,毕竟任何公司在面试者上使用的面试时间都是对面试者的尊重,给公司答复是一个面试者最基本的个人素养。
经历23天求职历程就此结束
阅读书籍
下面介绍我准备看、看过和正在看的书籍,范围比较广,包括Java、Android基础、Android Framework、C++、设计模式、Java虚拟机、Java并发、代码风格等等不同方面。标注英文原版的原因是国内出版社翻译质量,建议直接选择英文原版,阅读难度稍高,但没有翻译造成差错。
建议阅读
《计算机组成原理》
《计算机网络》
《数据结构与算法》
《深入理解Java虚拟机》
《Java性能权威指南》
《实战Java高并发程序设计》
《Design Patterns: Elements of Reusable Object-Oriented Software》 GoF
《C++ Prime》
《疯狂Java讲义》推荐的Java基础教材,即使是国内的
《Java编程思想》
《Effective Java》
进阶和高难度书籍
《Java8实战》
《Android开发艺术探索》
《Android群英传》
《重构 改善既有代码的设计》
《Android源码情景分析》
《LeetCode》
《Understanding the Linux kernel》 英文原版
《Understanding the Linux network internels》 英文原版
《Linux Device Drivers 3rd》 英文原版
不建议阅读书籍
《Head First Java》
《疯狂Android讲义》
网友评论