一篇非常接地气的面试心得,作者也通过自己的努力,找到了不错的工作。
概述
笔者2016年毕业于一个普通二本学校,工作位置在深圳,第一家公司待的是人力外包公司(外派到TCL),主要做的是电商和智能穿戴的项目,一年半后跳槽到了一家做智能穿戴app的小公司,至今已工作三年。
大家都明白,对于一名没有名校背景,大公司背书的程序员而言,唯一能够加分的就是技术和影响力这两个方面,因此,在去年的3月份,我开始在Github上变得活跃起来,同时,也慢慢养成了写博客的习惯。下面是我的Github和博客地址,有兴趣的可以关注一下~
Github地址
https://github.com/JsonChao
博客地址
https://jsonchao.github.io/
于是,在今年的三月份,我开始投递简历,我投递简历的顺序是按小公司->大公司的套路来的,深圳的小公司比较多,中大型公司比较少,因此,在这一个月的面试历程中,我估算了一下,大概面了6家小公司,2家中型公司和2家大公司。
下面我来结合我的面试经历来谈谈不同公司级别的面试难度。
小公司(0-200人)
一般只要你收到这类型公司的面试邀请,只要你能把自己做过的项目架构,项目重难点说清楚,还有一些基本的Android基础知识,然后你稍微准备一两个深一点的技术点,比如GC机制、基本的热修复原理说个10分钟,offer妥妥的。
但是,个别公司可能会考一些简单的算法题和智力题,比如冒泡、查找等等。
在深圳这类型的公司三年安卓的价位一般在12-15这个区间,个别有钱的可能上限可以到18,一般都是15左右。至于面试题太常规,这里我就不多说了,想要看面试题和详细答案的可以直接看总结部分。
中型公司(200-1000人)
这类公司我只面过两个,但是我感觉都很有"逼格"。。
第一家(BL科技)
第一家是做外汇金融的,公司位置在科兴科学园,好像整个一层都是他们的,刚到的时候,发现面试的人很多,估计正在扩招阶段。
我一来,HR小姐姐就递给了我一张入职登记表,果然,不亏是有"逼格"的公司,填完登记表,我就进到了一个只能容纳两个人的小型会议室里。
等了一会,然后来了一位女面试官,后面才知道是Android主管,问的问题比较广泛,JAVA、Android、算法各个方面都涉及了,但是都是很基础的知识,我除了答出基础答案之后,基本上每个问题都往里面深入了一两个层级,就这样聊了1个小时,感觉主管小姐姐都听懵了,然后,她马上叫来了公司的技术总监来面我,技术总监一来,就出了个海量Top k的面试题给我,这个当时我真没做过。
所以想了一会,没有想出来,后面又问了事件分发和绘制流程的相关细节。
最后,总监说,不想多跟我绕弯子了,直接说:"I want you",说实话,当时我有点懵,然后后面谈到薪资这块,他们3到5年的薪资范围估计是15-20这个区间,我要了个最高的,说下周三回我,结果,你懂的。
第二家(SHJ)
在金蝶科技园这里,好像有一栋楼都是他们的。说实话,本来我是不是很想来的,因为这个职位的薪资范围比较低。
首先,笔试,很常规,最后一道题大概是要你手写应用观察者到一个具体的场景。
之后,便是两轮技术面轰炸,面试的问题大多是JAVA并发、JVM等知识,还有数据库、SQL语句、性能优化、海量Top k(又是这个)等问题,还把他们在项目中遇到的一些问题说出来,看看我的解决思路。
面完之后,我感觉他们没有要招人的意思,只是想和我交流一下o(╯╰)o
中型公司(10000以上人)
第一家(TX)
本来我是准备内推这家公司的,结果,他们的技术在Boss上就邀约我了,然后,约了我进行电面和现场面试,大概的问题是这些:
- 内存抖动(代码注意事项)
- 跨进程通信
- 动画原理
- Https的连接过程,加解密算法的选择,以及为什么?
- TCP三次握手
- 组件化开发流程
- 如何绕过9.0限制?
- 堆内存,栈内存理解,栈如何转换成堆?
- hashcode()和 equals()的作用、区别、联系?
- Handler、Looper、MessageQueue、Thread关系?
- Hashmap如何解决散列碰撞(必问)?
- Hashmap底层为什么是线程不安全的?
- 硬件加速的实现原理?
- handler postDelay这个延迟是怎么实现的?
- 断点续传实现?
- RxJava 变换操作符 map flatMap concatMap buffer?
- Android中ClassLoader的种类&特点
- 性能优化(要求比较细,有实践经验)
- 代码、资源热修复原理
- 有没有研究的比较深的技术点?
详细的答案有 1W 多字,下次我再单独编辑吧,大家可以自行查看:
文字版本:
https://mubu.com/doc/uRmziI6te0
图示版本:
第二家(PA)
这家我是直接内推的,总体给人的感觉是面试流程很繁琐,而且比较慢,前前后后包括定薪大概将近一个月。
面试难度中等偏上。问的问题跟第一家差不多,但是要稍微浅一点,除此之后,因为是做金融安全方面相关的,还问到了安全方面的问题,部门领导那一面比较注重架构设计、热修复、插件化等等技术点。
面试流程为:笔试、第一面两人技术面(重要)、第二面大领导面、HR面、最后,交完一大批入职资料(这个我就搞了好几天),HR就会跟你谈薪,总体来说,这家公司的月薪Base比一般小公司的都要低一些,但是年终很高,不过也是要看你年度的绩效考核的,如果绩效不好,可能没有年终奖,一般的大概也有5个月左右,绩效很好的(前10%),可以拿到10个月以上的年终。
所以,对于敢拼的人还是不错的,而且福利非常多;因此,最后,我就选择入职了这家公司。
总结
面试这一个月来,真的感觉到现在深圳的市场行情非常惨淡,竞争压力非常大。
所以,对于非名校,无大公司背景的我们来说,最好是选中一个比较感兴趣的方向,把它做到极致,同时,我们可以把它记录到自己的博客,再写写开源项目,提高自己的知名度。
这样,我们的竞争力就可以尽可能地提升上来了。
最后,我把我之前和这一个月的面试题及答案按照规范整理在了这个开源项目中: