勤勤恳恳做到 30 岁,3 名百度 ,京东,完爆面试官
100 多 w 的阅读量,说明越来越多的程序猿都在关注这个话题,也侧面反应了这个话题不仅仅是话题,而是每个程序员身边都在经历的。
###二、面试经历
一些心里话
近年来,从互联网跳转到物联网,实际上,遇到的开发 30 岁以上的,挺少的,不是转管理了,就是转行了。更别说 Android 开发者了,就更少了!正好,来了一个 30 岁的 Android 开发者,说实话,对我来说,还是蛮期待的,希望对我有所启示。
面试开始
因为时间点有点尴尬,面试者给我发信息是中午 1 点钟,为了不影响别人的休息,越好在楼下咖啡厅见面
面试者:“我已经到了”
小编:“我马上下楼,在楼下的咖啡厅开始等待之旅,等了小 20 分钟左右,面试者来咯,穿着一个 T 恤,一身的日常装,手上空荡荡的,走路急忙忙的,我猜这个人,应该就是过来面试的。”
…
这样的过程持续了半个小时
面试细节
小细节
如果存在因为一些事情耽搁,导致时间有延期,应该及时的跟安排你过去面试的人沟通。毕竟,在实际面试过程中,会遇到很多客观的原因,例如堵车等等
ps:个人的小建议,提前跟 HR 打招呼说,可能会晚一点到达。实际上,有些公司,可能需要到客户那边提供一些技术支持,实际上,面试的时间点,HR 跟面试官都是有协商的,所以,可能会导致失去一次面试机会。
面试题
PS:由于文章篇幅问题,只以图片形式展示本次面过程我把他整理成了一份 2124 页的 PDF(包含本次面试及解析,按系统知识分类)
一面
二面
三面
答案整理
(群文件夹有以下学习笔记,自行下载!)
经验总结
有的面试官不让你做自我介绍,上来直接问。不管有没有,都要和面试官沟通好,做一个好的自我介绍,让他了解自己的真实水平。不然他以为你精通客户端,上到问设计架构,下到问源码或者很细的基础知识。
问到感觉超越自己知识水平的题还是不要乱说,并且要及时阻止面试官继续往那个方向问,比如京东二面后面那些很细的我几乎都不会但还是任其摆布了。最好要学会引导面试。
有些问题虽然真的不会,但还是可能有发挥空间的。可以先主动承认自己不是很了解这个东西,再说“根据我对另一方面的了解,如果是要我去设计这个东西/解决这个问题可能会怎么做”,“这个我不是很熟悉,我可以跟你讲讲另一个类似的东西”。我觉得这样回答对错也关系不大了,而且他会觉得你善于思考。
最好不要所有的问题回答得太像背面经,一个问题不要回答得太浅,对知识也要理解地透彻一点。不然他察觉到后,会想办法来拆你台的,或者问你大量的问题。
基础的还是要掌握好的,我面挂其实主要还是开发基础不好。比如手写快排、非递归遍历二叉树。我当时是真没写出来,怨不得谁。
###三、为什么会遇到 30 危机?
实际上,以我在谷歌的工作经历以及对其他公司的了解,大部分程序员都处于 30 岁上下的阶段,他们是公司的主力军。因为 30 岁恰恰是一名程序员的黄金年龄——在 3-5 年的工作磨练之下,不仅技术会更加熟练,职场规划和发展也会更加清晰。
北美的各大科技公司对于员工的职业发展,大都有一个基础的规划的要求。以谷歌为例,程序员如果要从 Level 3 到 Level 4, 一般需要 1-2 年,Level 4 到 Level 5,一般允许 2-3 年。按照多数人的轨迹,24、5 岁走出校园进入社会,一步步学习,成长到 30 岁刚好进入一个比较成熟的阶段,达到 Senior 水平。
心里有了更为明确的目标,并且也更加有能力去实现自己的目标。所以说,30 岁正应该是程序员们充满干劲、大展拳脚的好时候。
那么,为什么有些人还是会产生“三十之惑”呢?在我看来,很多抱怨和焦虑都来源于个人现有能力的不匹配,你现在具备的技能不足以支撑你晋升到更高层次。
程序员的 30 岁问题,**是能力问题,也是视野问题与心态问题。**从 Senior 继续向上,想要实现级别的跨越,往往需要付出更多的努力。如果你不具备持续学习的能力、不能保持技能更新,那么在不进则退的职场中,原地踏步的你,自然只能被赶超、甚至被淘汰。
在很多情况下,所谓的年龄困惑更像是一种借口,年龄不应该是你不成功的理由。如果你真的有核心竞争力,年龄还会成为你的问题吗?
当然像我们现在核心的东西,几乎接触不到,框架也搭建好咯,每天就是重复的工作,像后端可能就是 crud,这样技术能提
高(这句话对小编自己说的)。
为了保证,多年后的,自己还有核心竞争力,我总结了几点:
1.了解最新的新技术
2.深入底层源码学习
技术更新换代是很快,但是,每一个技术,都是借鉴某个技术的思想,或者在某个技术上衍生出来的,例如 OC 是方便,但是,这些技术给我们带来便利的同时,如果不对他底层有所了解,遇到问题,你也会很被动,应该知其然而知其所以然。
3.保持一颗谦虚的心,须知人外有人
评论