1. 程序员面试,为什么感觉很多都和运维有关
不会运维的程序员不是好程序员。 这个信条要时刻谨记,不管是面试还是自己平时在工作中都要坚持这个准则,因为这对你以后的发展大有裨益。
一直以来,很多圈外人对我们程序员的观念就是永远的一本正经,着装单一,了无生趣,聪明绝顶,其实这是他们对程序员的误解,因为多才多艺,多姿多彩的程序员比比皆是,但是传统的观念或者说以偏概全的观念蒙蔽了他们的双眼,而他们自己又没有尝试去了解,所以导致人云亦云,给程序员披上了一层灰。
同样的,我们大部分程序员的观念也跟他们差不多,认为程序员就只是搬砖撸码的,至于各种部署服务器相关的工作应该是运维做的,其实非也,如果真的这样认为的话,那就真的太不把自己当程序员了。为什么这么说呢?因为我们程序员是实实在在撸码开发产品的群体,可是如果我们开发出来的东西只能自个在本地玩耍,却不能众乐乐,那还有什么意义,此时,你可能会说,交给运维啊,那么如果没有运维呢,就没法玩了,所以我们不能总是将希望寄托在别人身上,当自己有能力能够将系统进行部署的时候,那就该学会部署。
其实不仅仅是程序员,优秀的运维工程师也是需要会开发撸码的,因为有时候他们也需要开发一些小工具来进行验证,或者开发网页来进行服务的管理,所以说程序员和运维都是相辅相成的。
像我们现在很多的公司都没有明确的人员分工,特别是小公司连运维都没有,所以就谈不上让运维去部署了,那么怎么办呢?肯定就是开发人员自己去部署了,如果不会部署的话就可以去网上查找资料,其实总体来说不会很难,因为我看过很多运维其实也是在网上找资料按步聚进行操作。
另外公司之所以这么要求,一方面是基于人员成本的考虑,毕竟如果一个人能干好的事为啥非得招两个人;另一方面可能基于公司的发展问题,像一般的小公司确实没必要专门招一个运维,不过随着公司的发展,后期肯定会招专业运维,毕竟专人做专事,事半功倍。
永远记住“不会运维的程序员不是好程序员”,其实作为程序员不能总是把自己陷在撸码的深渊,除了撸码,我们还要学会产品需求分析、简单的UI画图、数据库分表分库及性能优化、运维服务器部署、单元及系统测试等等,总的来说,要想成为优秀的程序员,我们有必要把产品线上的每一个环节都略知一二,这是经验收获,一定会成为我们日后发展的资本。
技术迭代是需要时间的,而且公司预算不多的话,会选择现有系统继续使用。有的企业也会选择维稳,不会轻易开发新系统代替现有系统。
这是一个非常好的问题,作为一名IT从业者,我来回答一下。
首先,在当前的大数据、云计算时代,程序员在面试的过程中,经常会遇到与运维相关的问题,尤其是有自身产品(平台类)的企业,往往对于程序员的运维类知识有比较多的要求,所以当前的程序员,尤其是Java程序员,要想获得较强的岗位竞争力,一定要重视运维类知识的学习。
在当前的大数据时代背景下,很多程序员在日常开发过程中,需要与运维人员进行配合,所以程序员在面试过程中,经常会被问及与运维相关的问题,通过这样的问题,也能够全面了解程序员是否面对过大用户的并发问题,这对于判断程序员是否适合当前的招聘岗位也有一定的参考价值。
以大数据开发岗位为例,程序员在进行大数据任务开发的过程中,不可避免地需要与运维人员打交道,其中大数据平台的搭建就是比较繁琐的过程,另外还有一系列产品的安装和部署,这些通常都需要运维人员来完成。对于一款平台类产品来说,运维人员的技术能力能够在很大程度上决定软件平台的性能,而且运维人员与开发人员的配合也非常关键。
当然,对于程序员来说,如果能够自己掌握一定的运维知识,对于开发任务的开展还是很有帮助的,如果什么问题都需要运维人员来完成,不仅需要更多的运维人员,同时也会影响项目的整体开发进度。从这个角度来看,随着未来大数据技术的逐渐落地,程序员掌握一定的运维类知识,对于提升自身的工作效率,还是很有帮助的。
在程序员面试过程当中,通过一些运维知识也能够更加直观地了解到程序员的技术栈,相对于比较复杂的开发问题来说,运维知识的脉络还是比较清晰的,通过运维知识能够在一定程度上挤出一些“技术水分”,这也是很多面试官比较愿意问运维问题的主要原因。另外,对于一些创业型公司来说,程序员掌握一定的运维类知识,也会节省一些投入,尤其在产品研发的初期。
从技术体系结构来看,要想解决大用户的并发问题和系统扩展性问题,通常需要从两个角度出发,一个角度是技术选型,比如采用扩展性比较强的大数据平台,另一个角度就是硬件扩充,但是硬件扩充的前提是要有一个可扩充的平台体系,而通过运维知识,程序员的交流会更明确,技术方案也比较直观。
从岗位任务划分的角度来看,程序员的工作任务与运维人员的工作任务有比较明确的边界,但是在云计算技术的推动下,程序员接触运维场景的情况也在不断增加,比如通过云计算平台的支撑,很多传统的运维类任务,程序员也会比较方便地完成,比如安全配置等等。
最后,程序员在进行面试的过程中,如果遇到的运维类问题并不清楚,一定要如实回答,因为运维类知识需要一个积累的过程,而且经验往往非常重要,所以很多运维类知识,在短期内是无法掌握的,如果盲目扩展自己的知识面,会为后续的工作带来很多麻烦。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!
一、提问之前的准备
首先,最重要的是,你自己一开始就应该想清楚:
只有明确这些根本性的问题,才能正确高效地完成面试。
二、提问的原则
假定你对上一节的三个问题,已经有了清晰的想法,那么接下来就可以设计如何提问了。
有一些提问的原则,是你应该遵循的:
三、考察专业能力
为了确认面试者是胜任的,你可以问一些与职位相关的专业方面的问题。(不过通常来说,一次面试不足以看出一个人的专业能力。)
比如,你的招聘职位是系统管理员,你可以问"如何快速地在50台机器上部署Linux?"(提示:正确答案不是刻录50张安装光盘。)
另外,你还应该向面试者了解他的过去,因为过去是未来的最好预测依据。不过,提问的重点不要仅仅是他过去的成果,更要关注在当时的环境中,他是如何决策和实施的。
四、考察综合素质
因为人是会发展的,所以某种程度上,面试者的综合素质要比他的专业能力更重要。
所以,具体的技术问题(如何调用API、什么是设计模式、编程语言的语法等等)可以少问一些,更应该关注面试者的事业心、对工作的热情、进取心、自律能力、毅力等方面。
下面是一些典型问题:
五、考察理性思维
某些情况下,你可能需要了解面试者的分析判断能力,看他能否全面地思考问题、客观地评价自己。
那么,你可以依次提出这样三个问题:
这里的重点是,让面试者从正反两方面评价一件自己熟悉的东西,看看他的思维是否片面。答案无所谓对错,只要面试者有一个明确的立场,能够从正反两方面说出令人信服的理由,就可以了。比如,某个软件的口碑不好,但是面试者说他很喜欢,而且说得出一大堆理由,清楚地解释了这种软件的优点和缺点在哪里,这样就很好。
不邀自来。众所周知,越大型的公司,分工越明确。在BAT里面,有专门的前端,后端,ops,dba等等。他们专研一方面,所以有深度,有沉淀。遇到问题了,找到相应的人,能够快速解决问题。
但绝大多数中小公司,更偏爱样样都会的全栈,恨不得你一个人把所有活儿做完。并不一定需要有多大深度,能干活儿就行了。
再说,现在提倡devops,开发懂点运维,能够更好地定位问题,部署和架构项目,这是需求,也是趋势。
对小公司而言基本没有专门的运维,所以需要研发具备一些运维的知识,比如数据库的搭建、nginx、jdk部署,其它开源中间件,比如Kafka、es等等
其实这个目前真正大规模用的少,炒概念的多,很多公司根本没机会用. 但是他会问
我觉得很自然的事,为什么总有人说得高大上?装个软件,调个参数,做个逻辑卷,调一调网络,配置一下分布式组件,搞个文件系统程序员就应该不会?
这些工作,我们公司一般运维人员搞不定的。所以用啥,自己整。
个人观点,计算机知识就必须全面,才能做好一个程序员吧?
而且看大家回复,我有8成猜对,有8成以上的架构师,不懂底层,知识面也没传说中那么广。
现在devops在流行,说白了企业为了省成本,研发要干一部分运维的活。运维只负责硬件网络和k8s维护,其他什么部署啦,服务编排啦,通通交给程序员做。
不过这样倒也合理,运维只负责全公司通用的设施建设,至于cicd,服务编排,熔断限流等等,都和业务强相关,交给开发做比较贴近实际业务
2. 为什么程序员越来越排斥面试时做题
说到程序员面试题目的问题,正常来讲越是老程序员越是不怎么喜欢做些面试题目,更多的老程序员由于长期在一个行业呆着,知识的全面性差些,如果不注重涉猎,在做面试题目的时候,有些很简单的题目都回答不上来,这是程序员的一个通病,有问题已经习惯于从网络寻找问题的答案,所以直接在没有网络状态下有些题目做起来感觉相当的吃力,大部分的程序员都会存在类似的感觉,所以很多老程序员去参加面试的时候,发现有笔试的题目,有的直接就走人。
坦白来讲笔试的题目,最初设置的初衷是为了设置门槛,检查下基本功,对于真正的高手,很难通过一两个题目就能得出一个人水平的高低,毕竟编程不仅仅是掌握个基本功,还要需要编程思想以及框架思想,这种内在东西主要还是靠真正的技术面试辨别。
这就是很多老程序员有点鄙视笔试的一个很重要的原因,毕竟这只是基本功主要还是编程思想做依靠。
不待见笔试的程序员不见得水平不咋样,主要觉得靠几个题目很难辨别出真实水平,从内心还是有一丝鄙视的意思。程序员的差距一方面表现在编程思想,还有很大一部分是基本功,基本功扎实了才能敢于做一些事情,不要为自己的年龄找借口,很多程序员觉得自己都工作好多年了出来找个工作还要做什么笔试题目,从心理上接受不了,很多时候是胆怯的表现,平时他专注于一个领域的研究,把很多基础的东西都给忘掉了,内心当然有恐惧感,所以高水平的程序员何惧笔试题目。