程序员面试,为什么不要大谈高并发?

作为一个看过几千份简历,面试过几百人的面试官,常常会看到简历中有如下文字:

  • 对业务逻辑解耦,高并发等有比较深入的研究和丰富的开发实战经验
  • 对解决高并发问题有深入理解
  • 熟悉大并发技术,如:反向代理、负载均衡、Keepalived

而当我在面试中,问及对方的职业规划的时候,也有一大半人会回答

  • 希望将来可以处理高并发业务
  • 希望学习高并发相关技术
  • 希望开发数千万/数亿级别并发的应用

但是当我问及以下问题的时候,绝大多数人都会麻爪:

  • 负载均衡有几种分配方式?(大概不到1/10的简历提及高并发的人能答出来)
  • 有没有用任何方式(比如虚拟机)模拟过各种集群(API服务器,数据库,CDN等等)?
  • 有没有用任何方式测试过采用了高并发应对策略后对项目的改进和提升?数据有什么变化?
  • 如果业务规模再次扩大,下一阶段应该用什么技术和策略?


问题就在这里了,

  • 为什么我会把简历里提及“高并发”的绝大多数人KO掉,或者在面试中,对职业规划只有“高并发”的人发拒信?
  • 很爱“高并发”的面试者,应当如何在简历中体现自己的能力和期待?

首先,绝大多数人没有考虑过如何把技术应用于高并发场景

我经常会问沉迷于高并发的面试者:当你有了一个数千万乃至数亿级别的高并发解决方案的时候,你准备用在哪里?让谁买单?

显而易见,买单的是企业,企业为用户服务,但是这样规模的企业本身已经不是很多,而且它们使用的方案或者是已有的成熟方案,或者是企业内部长期迭代得来,不太会有人冒业务中断的风险去应用一套外部的没来头的方案。

另外,解决高并发的方案不是单纯的三五项技术,而是许多套完整的技术栈,把它运行起来需要一个完整的研发、运维团队来进行支持,没有几个单独的个人可以百分百解决,那么这个人的技能短板会立刻导致方案不可靠。

因此,脱离使用场景的技术价值是要大打折扣的。

第二,高并发背后的高成本是大多数人没有考虑过的

硬件成本的问题:一般在企业中做开发,都至少要有开发环境,集成测试环境,生产环境,有的时候还需要有镜像的灾备环境。如果用了服务器集群,那么高并发方案的服务器的数量就要比堆硬件硬抗的方案翻好几倍。而且运维的成本也会增加很多。

人力因素也很重要,人肉运维自然是成本贵,能写程序搞自动运维的工程师显然更贵。

成本需要企业来买单,程序员学了用了新技术开心了,企业成本提高做挂了显然不是企业想看到的。

因此,如何用各种方式降低你的方案的成本【比如在虚拟环境做各种测试】并且说服企业应用,是面试者要思考的问题。

第三,高并发只是业务规模巨大导致的众多严重问题中的一个,还不一定是最重要的那个

高并发只是表象,业务规模用户规模巨大会导致一系列严峻问题,不仅仅是高并发。

举例来说,团购秒杀拍卖之类的场景是常见的高并发应用场景。总而言之都是卖货,但是在卖货的大前提下,商品库存数字的变化(要不要实时,要不要各端同步),订单状态变化对业务流程的影响(下单减库存还是付款减库存还是发货减库存,预售和返现等营销行为导致的钱款卡券变化)都有可能导致整个方案变化。【想想12306,处理商品库存数据的实时性要比处理高并发请求复杂的多】

因此,结合具体业务场景,展示出面试者在整个业务场景中,包含但不限于高并发技术而体现出来的价值,才能为面试加分。

第四,你说你擅长高并发,你得要证明给我看

从面试的角度来说,我除了预设的面试题之外,还会很细致的询问对方的简历细节。

知乎用户:为什么有面试官喜欢让面试者用纸笔写代码?

面试者在简历上写了擅长高并发,那我就要三段论问一下:是什么问题,怎么解决的,效果如何?

即使去掉伪造简历和过度美化简历的人,仍然有大多数人无法回答第三个“效果如何”的问题。

大量的声称研究过负载均衡的面试者都是用两三台电脑搭一个环境测试能够实现平均分配的负载均衡策略,但是如果问“如果我想测试三五台或七八台服务器的场景应该如何实现?”就又答不出来了。

(答案:现在有docker,古时候有各种虚拟机【vmware,virtual box】和云端部署【gae,sae之类】,实在不行还可以用各种云服务器的按量付费按小时启动服务就好)

因此,用丰富的细节和深刻理解的心得体会来证明面试者的技能水平,是面试要解决的一个最核心的问题

总结:

  1. 掌握高并发技术不是坏事,技术好不仅仅体现在能处理高并发
  2. 有水平需要证明,证明需要实践(企业没有责任挖掘面试者的价值,面试者需要自己证明)
  3. 能解决实际业务问题的技能才是企业需要的,企业里没有龙,面试者的屠龙之技就没有卖点
  4. 不要过度美化简历(我的建议:至少要能够抗住3-5个刨根究底的问题才能写到简历上)

最后,觉得有收获的同学,可以关注一下我的公众号:【Java技术zhai】,不定期的技术干货分享,带你重新定义架构的魅力!

原文地址:https://www.cnblogs.com/lfs2640666960/p/11560008.html

时间: 2024-10-10 18:05:10

程序员面试,为什么不要大谈高并发?的相关文章

《Python程序员面试算法宝典》PDF高清版

<Python程序员面试算法宝典>PDF高清版 链接: https://pan.baidu.com/s/1Rtvk_KCmdwvGliyq9Pg9OQ 提取码: i69a ? 内容简介  · · · · · · 本书是一本讲解程序员面试笔试算法的书,代码采用Python语言编写,书中除了讲解如何解答算法问题以外,还引入了例子辅以说明,让读者更容易理解. 本书几乎将程序员面试笔试过程中算法类真题一网打尽,在题目的广度上,通过各种渠道,搜集了近3年来几乎所有IT企业面试笔试算法的高频题目,所选择题

程序员面试需要掌握的谈薪技巧

参与文末话题讨论,每日赠送异步图书 --异步小编 对大多数软件开发人员而言,编码才是有趣的,而如何与客户.同事以及经理们打交道,如何保证工作效率,如何保障财务安全,如何保持自己的体形,如何找到真爱--这些则统统被视为畏途. 我常常很惊讶,许多软件开发人员根本不做任何薪酬谈判,或者尝试谈判一次就放弃,人家给什么样的薪水就接受什么样的薪水. 薪酬谈判非常重要,不只是因为随着时间的推移,你的薪水会不断累积,最后所得摆在桌上可以越垒越高,还因为在薪酬谈判中你如何评价自己与如何把控自己会极大地影响你所服务

程序员面试的时候如何谈薪酬待遇?

在社会这所大学里混了那么多年,很多人最惨痛的经历就是,在应聘一家企业的时候,总是羞于谈薪酬待遇.大概这是很多职场新人都会遇到过的尴尬吧--觉得自己经验不够,或者想应聘的企业比较好,就觉得对方提多少就是多少吧,甭说什么五险一金,就连基本工资的坎都不敢谈. 然而这个坎如果你自己不去过,以后多的是坎儿跟你整.曾经做过一段时间的人力资源,我可以很明确的说,你入职的时候谈定的基础工资将决定了以后你在这个公司的岗位级别和晋升程度. 说白了就是,基础工资越低,你以后晋升就越慢--所以尽可能地与雇用单位抬高你的

初中没毕业的男子能到大公司当程序员,还能自己谈薪资,这是为何

说起程序员,很多人脑海中的第一印象就是格子衬衫.直男等词汇,但是同时大家都知道这也是一个高薪行业,基本上做的好的人年薪都是六位数,但是实际上,这个行业也并没有大家想象中的那么好,很多程序员都自称码农,因为每天的事情一直都做不完,晚上加班通宵也是常态,而且自己总是一个可有可无的状态,随时可以被替换掉,就算你的学历比别人高,但你可能并不如人家 最近网上有一个帖子是一个程序员说自己跟一个初中没毕业的朋友吃饭,那个朋友告诉他自己要去国内的一个大公司,目前已经通过了5轮面试,目前已经进入了谈薪资的阶段.看

Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. #1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”.面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经验.成就和技能可以给企业带来的

java基础知识强化52:Java程序员面试失败的5大原因

下面是Java程序员面试失败最有可能的5大原因,当然也许这5点原因适用于所有的程序员,所以,如果你是程序员,请认真阅读以下内容. 1 说得太少 尤其是那些开放式的问题,如“请介绍下你自己”或“请讲一下你曾经解决过的复杂问题”.面试官会通过你对这些技术和非技术问题的回答来评估你的激情.他们也会通过模拟团队氛围和与你的交流互动来判断你的经验和能力. 所以,仅仅只用两三句话来回答不但不能显示出你对这个专业的兴趣,还会让整个面试过程显得非常无聊.如果你不能很好地说明你的经验.成就和技能可以给企业带来的价

Java程序员面试失败的5大原因!

如今的企业不仅要程序员做的了专职码农,还要你有一定的工作经验和过硬的技术,不仅找的到bug还能搞的定产品,不仅逻辑思维细密还要能抗压力,这样多的要求要在一场短短的半个小时面试中完全展现,那么在面试中怎么让程序员大放异彩,而Java程序员在面试中到底应该注意哪些方面呢?达妹为大家总结了程序员面试失败的原因,大家有则改之无则加勉吧:糟糕的礼仪和态度 迟到,不适宜的着装,抖手抖脚,没有眼神接触,过于紧张,没有提问,显示不出对这份职业的兴趣,"我什么都知道"的高傲态度,贬低你的现在和以前的雇主

金九银十,浅谈关于java程序员面试的一些事项

本篇博文针对的是应届毕业生以及工作两三年左右的java程序员. 为什么要跳槽? 这是一个很广义的问题,每个人心中都有一份答案. 例如: 公司的待遇不好, 薪资涨幅不符合预期要求, 厌倦了出差的荒无天日的繁重工作, 公司的妹子太少, 领导太傲娇, 同事之间关系太逼格, 某某同学跳槽到某某公司之后涨到了多少多少钱, 某某同学的朋友的同事的三姑妈家的大儿子的好基友在某某高就, 等等辞职理由. 咱们就不多说了,还是谈谈怎么应付面试吧. 以下内容是我在面试中总结的一些经验,希望这些可以给各位带来帮助和启迪

程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦

程序员面试.算法研究.编程艺术.红黑树.数据挖掘5大系列集锦