互联网技术面试反问,互联网技术面试反问问题
程序员面试真的是“面试造火箭,工作拧螺丝”吗?
本人目前从事Android开发已有5年之久,期间也经历了很多场面试,包括中型公司,互联网头部公司,诸如阿里,百度,腾讯,迅雷,乐逗游戏等;
中国自08开始,互联网大幅发展,从开始2g,3g时代,已经进入5g时代,互联网技术也大幅发展,整个互联网充满了人海红利,促成了整个社会已然变成一个高度信息化的社会,因此,科技企业对于人才的选拔上有了更高的要求,特别是头部大型公司;
中小型公司主要以求稳定,求生存,业务一般投入不会太大,技术相对技术层面要求较低一些,所以这些公司在面试过程中,主要一些基本知识为主,对是否能快速上手要求比较高,这就需要对基础知识掌握良好,但对于一些复杂数据结构,算法,甚至一些开源框架的要求相对较低,处于一个会用,用好就行的状态。所以如果面试中小型的公司尽量把基础知识弄得比较清楚,能够有开源框架了解,深入分析实现原理更佳;
大型头部公司要求就比较严格了,除基本知识以外,需要你对框架设计原理,底层实现原理,算法知识,数据结构等理解的比较透彻,因为此类公司沉淀已久,产品面向群体多,对于性能优化,是否稳定非常在乎,所以在面试过程,这个也是他们十分关心的;
但回过头来,作为一个企业面试要求严格,其实也是为了选拔更加合适该岗位的人才,即便进入到新岗位的时候,不需要马上用到面试的知识,但是有储备的话,对于软件的设计,优化考量,以及后期迁移的成本考量都是比较低的;
面试造火箭,其实也是互联网行业野蛮生长时代过去导致的,以往只要能搞就行,现在对于技术的要求要非常全面,这样公司才能找到最合适的人才,才能够在人才竞争激烈的当下抢先一步,作出用户更愿意买单的产品;
所以,面试造火箭是有必要的,工作拧螺丝只是分工的问题,很多时候你必须具备技能,能需要用到的时候,就不在需要学习成本了,这个是企业最关心的。
个人没有在巨头公司工作过,但有幸做过一段时间的面试官。就个人来看,程序员面试是并非是“造火箭&拧螺丝”,其实是在考察程序员的各方面能力,不仅仅包括技术能力。
- 知识面的考察
面试过程中,面试官不仅仅是针对应聘者做过什么,是否真实进行调查。其实在一定程度上,也会进行问题的扩展延伸问答。
这是在考察应聘者,是否对工作所涉及的相关领域有延伸解读,有没有自主学习或者技术选择能力。
如果应聘者有此方面的能力,说明他真正对工作内容进行了思考。
当然,技术能力是关键的。面试有时常涉及算法问题,即使面试的[_a***_]跟算法其实没有太大的关系。
算法题目其实在考我们的思维方式。实现功能,其实是工作的最基础要求。若没有性能上的考量,应聘者即使通过面试,其工作内容也只是搬砖。
- 态度的考察
有时一些复杂的难解的面试题,不仅仅是在考察应聘者的技术能力。态度或是否认真仔细也是观察的另一方面。
可有时应聘者不自知,从网络上查找答案粘贴后,竟连回车换行都懒得提换。
如果你站在面试官的角度,你会如何理解这样行为?
结论
所以,不要从表面上看待问题。应聘技术岗位,不仅仅看的是技术。别小看那张“造火箭”的面试题,它能在短时间内,从侧面向面试官展示你的工作细节。
这是门槛问题。
比如头条,面试必考算法,不刷300道算法题,你进不去。
至于BAT,面试同样严格。
根本原因1,是因为雇佣关系,程序员太多了,公司太少了,僧多肉少,没办法。
根本原因2,会得越多,哪怕进去写增删改查的代码,也会考虑很多意外情况,保证代码的高可用性和性能。
应届生也可以写增删改查的代码,如果没人审核,可能在特定情况下,bug会更多。
如果你是面试官,你肯定会招人特别严格的,不严格,就容易留坑。
1 对于互联网大厂,钱赚得太容易了,所以可以不惜重金抢夺人才,由于薪酬高了,来面试的人自然就多,面试的人多了,自然就想要挑出一个基础知识扎实又最聪明的人,因为程序员,基本就是靠智商吃饭,为了让问题对面试者有区分度,能鉴别出来哪个是人才哪个是庸才,面试时自然要问一些深入一点的问题了。所以就有 面试造火箭的说法了。
2 大部分程序员大部分时间编写的代码,其实都是一些比较简单的业务逻辑,或者说即使是很复杂的业务逻辑,有经验的程序员,也可以拆分成一个个简单的处理过程。如果有个程序员说自己写的代码都很复杂,自己回过头都看不懂,乱糟糟的一团一团,各种耦合,动一发而牵全身,那就说明这个程序员水平不行,程序设计能力太差。能把复杂业务用简单代码去实现,这才是程序员的能力体现。
3 尽管大部分时候都是一些简单的例如数据的增删改查这样的简单代码,但这不代表这活就像拧螺丝这么简单,代码逻辑如何设计能减少问题的出现(也就是代码的健壮),问题出现时如何跟踪调试解决,这些才是提现一个程序员的能力和技术水平。说白了,尽管入职了是拧螺丝,但是没有造火箭的水平,这螺丝也拧不好的。举个例子,一个工人拧螺丝,质检的人告诉他拧歪了一点点,这个工人是不会使用精密仪器测出来拧歪了多少的,但是程序员,是需要具备相应能力的,比如一行简单的插入一条数据,测试告诉你出错了,你有可能就得从是否并发造成还是不允许为空字段还是就是网络不好等等各种原因排查。
简单来说,原因就是
1 必须要用造火箭的深度选拔程序员。
2编程大多数时候本来就和拧螺丝一样简单。
3虽然大多数时候很简单,但不代表一直都简单,需要造火箭的知识深度解决偶尔出现的难题。
至少大厂需要造🚀,拧螺丝的事情都外包出去了,给你的工资越高,造🚀的可能性就越高。特别是行业领头的大厂,遇到问题想谷歌百度可能都没有多少资料,这时候只能靠自己的人脉圈子,和自己的学习能力。比如让你限流限频,防羊毛党。或者出现系统用户量暴增,导致要紧急扩容。又或者有一个***bug导致oom,限时就要定位到。我在安卓刚刚在国内兴起的时候,负责实现视频截图音频获取,在电脑上做成flv***流,当时没有人做这个。光这个flv格式就搞了两三天,现学ffmpeg又几天。后来有了HDMI以后,使用芯片去做了。当你在一个领头羊企业,和一个全新领域的时候,不会造🚀肯定是不行的。如果能力不够,就会在大厂拧螺丝,维护已有的祖传代码。能力足够,就会去做框架,做全新的领域,试探性项目。
[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系邮箱:83115484@qq.com,我们会予以删除相关文章,保证您的权利。转载请注明出处:http://www.wnpsw.com/post/19480.html