首先,在当前的大数据、云计算时代,程序员在面试的过程中,经常会遇到与运维相关的问题,尤其是有自身产品(平台类)的企业,往往对于程序员的运维类知识有比较多的要求,所以当前的程序员,尤其是Java程序员,要想获得较强的岗位竞争力,一定要重视运维类知识的学习。
在当前的大数据时代背景下,很多程序员在日常开发过程中,需要与运维人员进行配合,所以程序员在面试过程中,经常会被问及与运维相关的问题,通过这样的问题,也能够全面了解程序员是否面对过大用户的并发问题,这对于判断程序员是否适合当前的招聘岗位也有一定的参考价值。
以大数据开发岗位为例,程序员在进行大数据任务开发的过程中,不可避免地需要与运维人员打交道,其中大数据平台的搭建就是比较繁琐的过程,另外还有一系列产品的安装和部署,这些通常都需要运维人员来完成。对于一款平台类产品来说,运维人员的技术能力能够在很大程度上决定软件平台的性能,而且运维人员与开发人员的配合也非常关键。
当然,对于程序员来说,如果能够自己掌握一定的运维知识,对于开发任务的开展还是很有帮助的,如果什么问题都需要运维人员来完成,不仅需要更多的运维人员,同时也会影响项目的整体开发进度。从这个角度来看,随着未来大数据技术的逐渐落地,程序员掌握一定的运维类知识,对于提升自身的工作效率,还是很有帮助的。
在程序员面试过程当中,通过一些运维知识也能够更加直观地了解到程序员的技术栈,相对于比较复杂的开发问题来说,运维知识的脉络还是比较清晰的,通过运维知识能够在一定程度上挤出一些“技术水分”,这也是很多面试官比较愿意问运维问题的主要原因。另外,对于一些创业型公司来说,程序员掌握一定的运维类知识,也会节省一些投入,尤其在产品研发的初期。
从技术体系结构来看,要想解决大用户的并发问题和系统扩展性问题,通常需要从两个角度出发,一个角度是技术选型,比如采用扩展性比较强的大数据平台,另一个角度就是硬件扩充,但是硬件扩充的前提是要有一个可扩充的平台体系,而通过运维知识,程序员的交流会更明确,技术方案也比较直观。
从岗位任务划分的角度来看,程序员的工作任务与运维人员的工作任务有比较明确的边界,但是在云计算技术的推动下,程序员接触运维场景的情况也在不断增加,比如通过云计算平台的支撑,很多传统的运维类任务,程序员也会比较方便地完成,比如安全配置等等。
最后,程序员在进行面试的过程中,如果遇到的运维类问题并不清楚,一定要如实回答,因为运维类知识需要一个积累的过程,而且经验往往非常重要,所以很多运维类知识,在短期内是无法掌握的,如果盲目扩展自己的知识面,会为后续的工作带来很多麻烦。
我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。
如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!