自己在3、4月份参加大大小小的面试估计也有几十场,有几万人的大互联网,也有几百人、几十人的小公司,收获还是挺多的,不仅激励自己学习,更新自己,也知道了自己很多不足之处。面试差不多是一个:学习--检验--再学习、总结--再检验(再学习、总结--再检验)--最终拿到满意offer(选择offer)的过程。如果有时间、有机会还是可以多出去面面,即使有时候需要请假,还是值得的。这一天就算自己给自己发工资、自己给自己投资。
下面就自己的面试感悟,说说面试的好处:
1、知道现在自己所在行业,大家都关注什么
一般面试官问的问题50%以上代表这个行业大家关注的点。
比如an droid前几年特别爱问自定义view、XX源码、插件化、热更新、apk瘦包等,但后来发现apk瘦包都成标配了,大家不爱问了。
现要可能爱问的是组件化、性能优化、音视频等相关的。
2、知道自己的盲点,去盲点化
当问到不会的,说明是自己的盲点,盲点不可怕,可怕的是你明明知道盲点了,还不去努力解开盲点。一般遇到不会的,需要我们回来再努力充电,努力让自己知道。
比如之前别人问到关于自定义gradle插件、埋点、httpdns等等相关的知识点,这些之前我确实没有接触过,确实是我的盲点。我一般会先看几篇相关博客入入门,再自己写几个demo,总结总结, 这样这些知识点就不再是我的盲点,基本对于应付普通面试是没有问题的。
3、了解自己的认可度,激励自己不断的学习、不断去更新自己
一直在一家公司待太久,容易懈怠,人处在舒适区久了,斗志也慢慢没了。在年轻的时候,若不抓紧时间学习,老来学起来可能更难了。不管是记忆力、理解力、精力、专注力等,不经常段炼这些能力应该会随着年纪变大,越变越弱的。
如果一直是在做有挑战性工作或者自己所做的工作是无可替代的,那还好一点,前者至少可以保证自己一直在学习、更新,后者则自己掌握了一门独门秘绝,足以支撑余生。
但一般人的现状可能更多是吃老本,可能你在现在公司是老人,有绝对优势,但很可能去另外一家公司就什么都不是了。还有可能你所做的工作随便一个小兵学个一年半载就可把你替代掉了,如果你要的工资比小兵高,到时公司可以随便找个借口把你优化掉的。所以时时都要有危机意识。
社会是进步的,新技术总是层出不穷,我们不大可能像以前电工一样,掌握一门技术能干到死,不怕别人抢饭碗。现在时不时出一些新技术、新语言,我们不大可能出个新点就去学习,但至少要知道,要去了解行业动态,时不时更新自己。
出去面试,就能知道自己现在掌握的知识,别人认可度有多少,同行业其他公司现在都在研究什么,关注什么,自己不会的或是不知道的要及时学习,更新自己。
4、拥有和其他人(更牛的人)一起交流或是讨论问题的机会
程序员一般工时都比较长,很少有机会和同行业其他人一起交流,虽然通过博客、社区、公众号之类的,也能和一些同行业人交流,但还有很大一部分人你是完全没有机会碰到的。有些东西你可能看了,但都是点式或是片断式,可能无法串成一条线。而去面试,面试官一般问问题都是由浅入深,你会发现有些问题,自己当时可能没想明白,经面试官一提点,会有种豁然开朗、“原来如此”的感觉。
比如当时别人问我:类的静态方法能不能被重写?我当时其实不是很确定,别人一问,你了解多态么?我一下子明白了,静态方法属于类属性,无需创建对象,是放在栈中,而多态是运行时才表现出来的特性,根据创建对象所属类型不同而表现出来,重写所需要的“对象所属类型”这一要素不存在,所以静态方法无法被重写。这样我对这个知识点不仅知道是什么,还知道为什么了。
去面试还有机会一睹真人,和同行业其他比自己牛的人交流,也能学到不少东西,他们考虑问题的深度、说话的条理性、逻辑性等,有很多可借鉴的地方。有时自己不懂的知识点,有些面试官还会给讲解下,比自己整一天,可能作用都大。
利用好面试那一小时,可能还能让自己的认识理念、观念得到改变。
5、反思自己面试中的不足
面试过程中闲聊时,可能一些非技术问题,自己也会被暴露出很多问题来,之前自己没当回事,后来跟老公聊天,才发现自己傻。
比如HR问我,面完了你一会回哪,我说回公司吧,人问你请假了还是直接过来的,我说吃完中饭直接过来的(没请假)。HR说你们工作是比较清松么,我说还好。这表现出什么来,我现在的公司能想出来就出来,轻松,我不请假就直接出来,只是上下班去打个卡,那HR会不会认为我以后去他们公司,也是常常翘班呢?所以以后直接说自己请假了就好了,不要那么率真。。
比如某面试官问我,你们用户量有多少?DAU有多少?因为我们app是to B的,所以用户量并不多,但又怕别人觉得我做的app很烂,结果我瞎编了个千万用户,结果面试官说下载看看,我一看我们那市场安装量都不到1万,露馅了不说,面试官可能还会因此觉得我这个人不诚实,甚至反思我的人品。其实可以说我们产品还没开发多久,还在打磨中;或者说这些数据,是公司机密,不让往外说;或者说这些数据掌握在老公手里,自己不大清楚...
虽然这些都是小问题,而且一般这些不会影响最终结果,但如果面试官正好看重这个,那很可能就和此offer无缘了。
6、查漏补缺
有些东西自以为知道了,了解了,但根本经不起推敲。就像咱们写文章时,还可能各种语句不通、错别字问题。面试时,你会发现明明某些知识点自己好像知道,但经别人一问,好像又答不大上来,或者不能很有条理、很有逻辑的说出来。
比如别人问我知道一些常用的设计模式吧,你把你们项目中用到的设计模式用类图(UML)画出来吧。一下子蒙B了,当时大脑跟短路了一样,反正画得很烂,后来我回来闭眼根据我们现在的工程,画了一个逻辑很完善的类图,可惜我面试已经过去了。
或者别人问迭代器模工和for循环有什么区别,什么时候会用到策略模式。。。
通过上面的问题,说明我对一些知识点掌握得还不够好,经不起推敲,回来自己巩固,知识的深度和广度都得到了提高。
7、学会面试官思维
对于一个知识点,要从:是什么、为什么、如果...会怎么样、它和XXX有什么区别和联系、假如要你实现你会怎么实现...等各种方面去想。
比如对于ViewStub它是布局优化中用到的一个view组件。
问:它为什么能起到布局优化效果。
答:它一开始不显示,只有调inflate或是setVisibility(View.VISIBLE)才显示。
问:它为什么能一开始不显示?
答:因为ViewStub也是继承自view的,它的onDraw方法是空实现,一开始并没有进行绘制。onMeasure方法,它的宽高直接设置为0,也没有进行测量。
问:如果在ViewStub里也写控件的宽高,在ViewStub对应的xml文件里也写控件的宽高,会以哪个为准?
答:....
问:ViewStub里的XML文件可以用merge么?为什么?
答:...
问:调用ViewStub的inflate方法可不可以?为什么?
答:...
....
总结:
面试是一个不断学习、不断自我提升的过程,有机会还是多出去面面比较好,至少能想到查漏补缺效果,而且有些知识点,可能你自以为知道,但让你说,并不一定能说得很好。有些东西有压力才有动力,而学到的知识点,都是钱(因为技术人员大部分情况是根据你的能力来定级、来发薪水的),技多不压身。
大家如果有啥好建议,面试的好处,也可以评论回复哈,我补充,谢谢~
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/smileiam/article/details/90136750
热门关键词: 登录