连续两次职级晋升失败,分析一下原因

2019-12-05 08:51:52 +08:00
 lcingOnTheCake

我们公司虽然不是知名大公司,但每个员工也有相应的职级,类似阿里巴巴 p6/p7/p8/p9 这种。每年我们有两次职级晋升的机会,报名后由相应的技术委员会进行评审,其实就相当于公司内部的面试,面试通过则升级,不通过则保持原有级别。员工的待遇福利和职级挂钩,一旦职级晋升,收入随之提升,因此职级晋升是每个员工都很重视的事情。

我申请过两次职级晋升,但是都失败了,失败的原因有一定的代表性,几乎是每个程序员在职业生涯中遇到瓶颈的缩影。

我是一名程序员,评审的标准很重要的一点是技术水平,于是我在那次晋升面试之前做了非常周详的准备,对跟我岗位相关的技术要点做了周密以及深入的温习,并预测评审委员会会问到的一些问题,事先寻找答案,其实就相当于猜题。在晋升面试的那一刻,我信心满满,觉得任何跟我岗位相关的技术问题都难不倒我了,然而评审委员会问我的问题却令我措手不及,完全打乱的我的计划与设想。

“请问你最近半年的工作给你所在的部门带来了哪些帮助?”评审委员会的一位成员问道

“我使我们部门所开发的一套系统速度提升了 50%以上,同时修复了另一套系统几年来没有办法修复的一些顽固 BUG”我回忆了一些我最近的工作成果作为问题的答案,这个问题在我的预料之外,因为这不是一个技术上的问题

“你说的这些是你的本职工作,是你应该完成的任务,并不是你对你部门带来的帮助。我的问题是指,你的工作对你们部门带来了那些帮助,比如说对整个部门所有成员的工作效率带来了多少提升?让部门对公司的作用带来了多少提升?”评审委员会的那位成员问道

“呃,你问的这个问题里面的内容好像是我领导做的事情”我被问的措手不及

“那你没有在这些方面有所成就咯”他继续问道

“是的,”虽然我很不愿意承认,但是我不得不承认这是事实“可是我只是个写代码的啊,这些事情根本轮不到我管”我不甘心的争辩道,因为这的确不是我的问题

“即使你没有实践的机会,那么如果这件事情真的让你去做,你会怎么做呢”

“呃…”我思索再三,还是没答出这个问题,这个时候我的专业知识、编程能力完全失去了用武之地,我的代码写的再好,程序跑的再快,在管理层眼里也不如让项目提前几天完成,让程序员加班加的更晚来的有用的多。“我暂时不知道怎么做”我回答道

“你平时没有考虑过这些事情吗”

“是的”,我也不争辩,实话实说

“好的,那我们知道,你的评审先到这里吧,我们会根据你的情况做出判断的”

“好的”我起身走出面试的会议室,心如死灰,大失所望,精心准备许久的技术问题储备居然完全没发挥威力,评审委员会问的问题根本不在我的格局之内,一个回合就把我杀的人仰马翻。一整天, 我都没回过神来。

几天后,评审结果出来了,不出所料,我晋升失败。

这次评审几乎改变了我原本的职业发展规划,本来,我觉得程序员就应该好好研究技术,把代码写好,把业务吃透。但是经过这次职级评审,我发现由公司管理层组成的技术评审委员会对程序员技术有多好并不关心,他们更关心是员工给公司带来的直接价值,比如你完成的这项工作让公司节省了多少成本,而不是你写的代码有多块,因为现在公司业务发展的瓶颈并不在程序运行的快慢上面。

于是在这次评审过后,我改变了之前以技术为导向的工作风格,我的给自己的定的工作目标变的更偏向于业务以及部门整体的工作成果。比如在产品制定需求的时候,我会提出质疑或者向他们建议怎么做或许更合理;比如我会主动承担一些没有技术含量,但是又难以处理的繁琐问题,处理掉这些问题能对这个项目带来莫大的好处。换句话说,我现在工作模式是以大局为重了,而不仅仅只关注之前的一亩三分地,因为这更符合管理层的口味。

在以这种模式工作了一段时间后,我摸索出了一套与以往完全不同的经验,如果此时评审委员会再对我进行面试,相信我能游刃有余的应付,晋升到下一个级别不在话下。因此,我磨刀霍霍,等待下一次职级晋升报名的到来。

吸取了上一次失败的教训,面对这次评审我进行了全新的知识储备,一切以公司的利益出发,如何使团队发光发热,如何使公司业务增长是我重点关注的项目。 评审开始,我信心十足。

“你们项目组用的 Java 吧”评审委员会一位成员问,这是一张新面孔,在上次评审中没有见到他

“是的”我回答

“数据库用的 MySQL 吗”他继续问

“是的”

“那么你是如何应对高并发场景的,MySQL 显然在这方面并不擅长”

怎么开始问纯技术问题了,也太不按套路出牌了,因为上一次评审的缘故,这次技术方面的内容我没有提前准备,所以只能临场发挥了

“我们的做法是,高并发模块的数据读写是在 Redis 上进行的,然后在某种符合要求的情形下再将 Redis 中的数据同步到 MySQL,从而减少 MySQL 的读写压力”我回答

“那如果最新的数据未完全同步至 MySQL,而 Redis 又因为某种原因突然挂了,那数据不是丢了吗”

“我们的 Redis 是集群的,即使有个别节点挂了,也不会造成数据丢失”

“如果所有节点都挂了呢”他追问

“不可能所有节点都挂的啊,不同节点分布在不同机器上,所有节点同一时间挂掉几乎不会发生”

“怎么可能不会发生,我以前就碰到过整个机房所有机器一起断电的。而且现在虽然用云服务器,但阿里云、腾讯云也时常会出问题。你不能让我们公司项目的安全性受到一丁点不确定因素的影响,你应该百分百保证数据的完整性,在任何情况下都不能让他丢失,哪怕是几秒钟的数据。”

“呃…”,我一下子无言以对,他说的也有一定的道理

“那么在你的这种方案中,如果所有 Redis 节点集体崩溃, 你如何保证用户数据不丢失”他继续问

“我们的 Redis 会定时将内存中的数据持久化到磁盘,但不是实时,对于数据完整性的保障,Redis 无法跟关系数据库相比。所以,在所有节点集体崩溃的极端情况下,用户数据会回档几秒钟”,我实事求是的说出了我负责项目的缺陷

“好的,我们对你的情况已经有了解了,你的评审先到这里吧,我们会根据你的情况做出判断的”

“嗯”我起身走出评审办公室,这次的晋升结果显而易见,又失败了,之前的精心准备再一次没派上用场。然而,即使不考虑 因为没有在技术层面进行准备的原因,这次的失败也挺冤枉的。在评审中讨论的方案从可靠性来说的确是一个失败的设计,我也知道这个问题。但是一来这个项目并非我设计,而是从别人手里接过来的。二来这种设计的确不完美,但是实际出问题的概率极低,因此我也没有动力去改进。再加上因为前一次评审没有涉及到技术问题,我先入为主觉得这次也不会有,然而评审的成员问的第一个问题就是技术问题,我被问的措手不及,乱了方寸,根本回忆不起完善的方案,毕竟写代码是确定一个方案需要仔细反复的思考,甚至写 demo,而我现在相当于要在旦夕之间完成这个任务,结果可想而知。所以,虽然因为技术层面准备的不充分,我没有一定能通过评审的把握,但是死在第一回合,还真的是冤枉。

表面上看,我两次内部面试都失败是因为踩错了点,但事后我仔细考虑,我所晋升的这个级别,既要具备专业的技术能力,又要具备在更高的层面上考虑和解决问题的能力,只是第一次评审和第二次评审的评审项目顺序对调了,所以,我两次都没晋级,其实也在情理之中。

总而言之,程序员在职业生涯之中,到达某个阶段后,想要更上一层楼,除了专业能力不能落下, 从部门层面或者公司层面考虑或者解决问题的能力也要培养起来,否则你在某些公司,想往上爬,连那些只有硬性指标的关卡都过不了。

30071 次点击
所在节点    程序员
156 条回复
WillGoh
2019-12-05 10:37:28 +08:00
任重而道远,这世界得把自己必成什么样子才行😭
mattx
2019-12-05 10:37:38 +08:00
能不能晋升,在你去答辩几乎就确定了,你应该和你领导加强沟通。
frostcake
2019-12-05 10:38:35 +08:00
@murmur redis 比较适合读频繁的场景,题主这个 case 貌似用的 mysql 并不能很好解决高并发写,解决高并发写似乎需要分库分表了
petelin
2019-12-05 10:38:58 +08:00
@frostcake 同问 一致性呢
wangxiaoaer
2019-12-05 10:38:59 +08:00
我觉得吧 公司既然有了晋升机制那么就要公开、明确评估标准。看了楼主第一次的面试,感觉楼主是按照技术面试准备,而委员会按照贡献度评价,二者除了偏差。

另外,我觉得委员会不是很厚道:

”你说的这些是你的本职工作,是你应该完成的任务,并不是你对你部门带来的帮助“

按照这个理论,没有人能够通过晋级,因为都他么可以用本职工作一带而过。
malthae
2019-12-05 10:43:57 +08:00
这些评价太主观了 说实话很不公正 也许不管你答成什么样结果都是注定的?
Rekkles
2019-12-05 10:45:27 +08:00
这也就是运气不好
第一个失败的原因是因为不善于管理团队还说得过去
第二个 机器全挂了还能提供服务,弱智吧,你咋不说运营商全崩溃了你还想打电话呢
lazyfighter
2019-12-05 10:46:33 +08:00
公司有毒,
index90
2019-12-05 10:48:51 +08:00
毒鸡汤
Vitali
2019-12-05 10:48:55 +08:00
咦,我们公司评级,一群副总给你评,除了技术总监,都不认识,就看你的表现,例如你连续加班表现特别好,有那么几个副总就会说,哎呀,这个人好像不喜欢交流,太木讷了,总评级:B,晋升失败
wangyzj
2019-12-05 10:49:38 +08:00
两次造火箭失败
l8g
2019-12-05 10:50:42 +08:00
楼上讨论 Redis 的难道都不知道 CAP 定理吗?
在 P 的前提下,怎么可能同时保证 C 和 A ?
zpf124
2019-12-05 10:51:54 +08:00
第一个我觉得可以说是自身问题, 个人目标与公司目标不一致,给人工作自然要以公司目标为准。

第二个我觉得就是抬杠。
你不把应用部署到卫星上怎么防止核弹洗地之后的服务可用?你考虑过没有?
你不考虑数据多次多重的数据正确性校验怎么保证在例如太阳黑子爆发影响到电脑内存数据的时候读取的数据是对的? NASA 和医院又不是没遇到过这种问题?
mikulch
2019-12-05 10:54:09 +08:00
为什么 lz 总认为公司的领导,或者技术委员会的人是正确的?因为他们的否定所以你认为你自己错了?

先不说第一轮的问题。
第二轮的答案应该是下面这样:
1. mysql 几乎是国内几个常用数据库里面最擅长处理高并发的。只要不联表,单表查询和单表 modify 性能非常之高。完全不怕大部分高并发场景。所以能单表就不联表。能在内存里处理就不在 mysql 里面处理。
2. 至于 reids,在开发过程中的最佳实践是,能够使用 mysql 的地方就不要使用缓存。如果你一定要使用 redis,那就按照最佳实践去使用。redis 集群挂掉,不是普通业务开发人员开发的事情,也不应该由普通的开发人员考虑,这是开发设计 redis 的人的事情。现代资本主义社会之所以效率高,不就是因为分工明确各司其职吗?
3. 纠结 redis 集群全部挂掉的人,你应该反问他一个问题。如果你的系统 mysql、redis、mq、nginx 全部挂掉以后,怎么办?你有什么方案吗?现代计算机工程是从下往上建立的,每一层的设计都站在上一层能够「正确」使用的基础上。这也是这个行业发展的如此快速的原因之一。
4. 国内这些杠精钻牛角尖的程序员太他妈多了,而且大部分面试态度极度恶劣,缺乏最基本的尊重,就跟整个社会都在和他作对一样。
钻牛角尖特别厉害,实际上写出来的代码屎一样。
如果永远去纠结各种中间件集群挂掉的问题,那这个程序就没法开发了。要不然大家都去写汇编?

@murmur
@NotFoundEgg
@scukmh
blackbbc
2019-12-05 11:00:38 +08:00
很真实,顶一个看看大佬们是怎么回答这些问题的
Martin9
2019-12-05 11:02:21 +08:00
@mikulch NICE !
dongeast52123
2019-12-05 11:03:42 +08:00
我只能说,可能你之后大概率也晋升不了。
先说下我的观点:
1 你先说明了自己并不是“知名大公司”,但却有大公司的体系。
2 从你连续两次晋升的问题来看,你们负责晋升的人并不专业。评测一个人要考虑一个人的综合素质,或者是否拥有这个岗位必要的要求,但从你的描述来说,基本上一个人问的问题,回答不顺畅,直接就完蛋了。真想晋升你的话,肯定是想要挖掘你的潜力,综合你的素质。说句小白的话,你过不过,完全看运气,看面试官的心情。这和大部分公司的面试流程是一模一样的。如果你跟面试官比较趣味相投,那你就过了,不然的话你再牛也过不去。
再回到那个 redis 的问题,你完全可以说什么异地容灾,实在不行全中国每一个省市都放一个机房,吹牛逼么,有能力公司就做这样的方案。任何一个通电的机器,都有可能发生这种问题,问题是成本能不能划得来。
yhxx
2019-12-05 11:05:30 +08:00
风格确实很像是广告,我直接拉到了最后发现没有公众号才回来重新看了一遍

我觉得这就是不想让你过故意找茬吧

我记得当年被评委从 DNS prefetch 一路问到 cname、traceroute、nginx resolver、rndc、rarp、报文 rd/ra。。。

现在看来这些问题倒也平常,但是当时我只是个刚毕业几个月的初级前端

像这种问题明显就是在故意为难你,就像楼上说的,如何保证地球爆炸后数据可靠。。。
dongeast52123
2019-12-05 11:06:02 +08:00
@dongeast52123 我再补充一下,如果想过,不如考虑下怎么在这些“委员”面前混个脸熟。
zeromake
2019-12-05 11:09:24 +08:00
这种难以晋升的情况一般是,拿职级做强制不加薪的理由,最有趣的是这种情况下管理层是不参与职级游戏的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626085

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX