我们公司虽然不是知名大公司,但每个员工也有相应的职级,类似阿里巴巴 p6/p7/p8/p9 这种。每年我们有两次职级晋升的机会,报名后由相应的技术委员会进行评审,其实就相当于公司内部的面试,面试通过则升级,不通过则保持原有级别。员工的待遇福利和职级挂钩,一旦职级晋升,收入随之提升,因此职级晋升是每个员工都很重视的事情。
我申请过两次职级晋升,但是都失败了,失败的原因有一定的代表性,几乎是每个程序员在职业生涯中遇到瓶颈的缩影。
我是一名程序员,评审的标准很重要的一点是技术水平,于是我在那次晋升面试之前做了非常周详的准备,对跟我岗位相关的技术要点做了周密以及深入的温习,并预测评审委员会会问到的一些问题,事先寻找答案,其实就相当于猜题。在晋升面试的那一刻,我信心满满,觉得任何跟我岗位相关的技术问题都难不倒我了,然而评审委员会问我的问题却令我措手不及,完全打乱的我的计划与设想。
“请问你最近半年的工作给你所在的部门带来了哪些帮助?”评审委员会的一位成员问道
“我使我们部门所开发的一套系统速度提升了 50%以上,同时修复了另一套系统几年来没有办法修复的一些顽固 BUG”我回忆了一些我最近的工作成果作为问题的答案,这个问题在我的预料之外,因为这不是一个技术上的问题
“你说的这些是你的本职工作,是你应该完成的任务,并不是你对你部门带来的帮助。我的问题是指,你的工作对你们部门带来了那些帮助,比如说对整个部门所有成员的工作效率带来了多少提升?让部门对公司的作用带来了多少提升?”评审委员会的那位成员问道
“呃,你问的这个问题里面的内容好像是我领导做的事情”我被问的措手不及
“那你没有在这些方面有所成就咯”他继续问道
“是的,”虽然我很不愿意承认,但是我不得不承认这是事实“可是我只是个写代码的啊,这些事情根本轮不到我管”我不甘心的争辩道,因为这的确不是我的问题
“即使你没有实践的机会,那么如果这件事情真的让你去做,你会怎么做呢”
“呃…”我思索再三,还是没答出这个问题,这个时候我的专业知识、编程能力完全失去了用武之地,我的代码写的再好,程序跑的再快,在管理层眼里也不如让项目提前几天完成,让程序员加班加的更晚来的有用的多。“我暂时不知道怎么做”我回答道
“你平时没有考虑过这些事情吗”
“是的”,我也不争辩,实话实说
“好的,那我们知道,你的评审先到这里吧,我们会根据你的情况做出判断的”
“好的”我起身走出面试的会议室,心如死灰,大失所望,精心准备许久的技术问题储备居然完全没发挥威力,评审委员会问的问题根本不在我的格局之内,一个回合就把我杀的人仰马翻。一整天, 我都没回过神来。
几天后,评审结果出来了,不出所料,我晋升失败。
这次评审几乎改变了我原本的职业发展规划,本来,我觉得程序员就应该好好研究技术,把代码写好,把业务吃透。但是经过这次职级评审,我发现由公司管理层组成的技术评审委员会对程序员技术有多好并不关心,他们更关心是员工给公司带来的直接价值,比如你完成的这项工作让公司节省了多少成本,而不是你写的代码有多块,因为现在公司业务发展的瓶颈并不在程序运行的快慢上面。
于是在这次评审过后,我改变了之前以技术为导向的工作风格,我的给自己的定的工作目标变的更偏向于业务以及部门整体的工作成果。比如在产品制定需求的时候,我会提出质疑或者向他们建议怎么做或许更合理;比如我会主动承担一些没有技术含量,但是又难以处理的繁琐问题,处理掉这些问题能对这个项目带来莫大的好处。换句话说,我现在工作模式是以大局为重了,而不仅仅只关注之前的一亩三分地,因为这更符合管理层的口味。
在以这种模式工作了一段时间后,我摸索出了一套与以往完全不同的经验,如果此时评审委员会再对我进行面试,相信我能游刃有余的应付,晋升到下一个级别不在话下。因此,我磨刀霍霍,等待下一次职级晋升报名的到来。
吸取了上一次失败的教训,面对这次评审我进行了全新的知识储备,一切以公司的利益出发,如何使团队发光发热,如何使公司业务增长是我重点关注的项目。 评审开始,我信心十足。
“你们项目组用的 Java 吧”评审委员会一位成员问,这是一张新面孔,在上次评审中没有见到他
“是的”我回答
“数据库用的 MySQL 吗”他继续问
“是的”
“那么你是如何应对高并发场景的,MySQL 显然在这方面并不擅长”
怎么开始问纯技术问题了,也太不按套路出牌了,因为上一次评审的缘故,这次技术方面的内容我没有提前准备,所以只能临场发挥了
“我们的做法是,高并发模块的数据读写是在 Redis 上进行的,然后在某种符合要求的情形下再将 Redis 中的数据同步到 MySQL,从而减少 MySQL 的读写压力”我回答
“那如果最新的数据未完全同步至 MySQL,而 Redis 又因为某种原因突然挂了,那数据不是丢了吗”
“我们的 Redis 是集群的,即使有个别节点挂了,也不会造成数据丢失”
“如果所有节点都挂了呢”他追问
“不可能所有节点都挂的啊,不同节点分布在不同机器上,所有节点同一时间挂掉几乎不会发生”
“怎么可能不会发生,我以前就碰到过整个机房所有机器一起断电的。而且现在虽然用云服务器,但阿里云、腾讯云也时常会出问题。你不能让我们公司项目的安全性受到一丁点不确定因素的影响,你应该百分百保证数据的完整性,在任何情况下都不能让他丢失,哪怕是几秒钟的数据。”
“呃…”,我一下子无言以对,他说的也有一定的道理
“那么在你的这种方案中,如果所有 Redis 节点集体崩溃, 你如何保证用户数据不丢失”他继续问
“我们的 Redis 会定时将内存中的数据持久化到磁盘,但不是实时,对于数据完整性的保障,Redis 无法跟关系数据库相比。所以,在所有节点集体崩溃的极端情况下,用户数据会回档几秒钟”,我实事求是的说出了我负责项目的缺陷
“好的,我们对你的情况已经有了解了,你的评审先到这里吧,我们会根据你的情况做出判断的”
“嗯”我起身走出评审办公室,这次的晋升结果显而易见,又失败了,之前的精心准备再一次没派上用场。然而,即使不考虑 因为没有在技术层面进行准备的原因,这次的失败也挺冤枉的。在评审中讨论的方案从可靠性来说的确是一个失败的设计,我也知道这个问题。但是一来这个项目并非我设计,而是从别人手里接过来的。二来这种设计的确不完美,但是实际出问题的概率极低,因此我也没有动力去改进。再加上因为前一次评审没有涉及到技术问题,我先入为主觉得这次也不会有,然而评审的成员问的第一个问题就是技术问题,我被问的措手不及,乱了方寸,根本回忆不起完善的方案,毕竟写代码是确定一个方案需要仔细反复的思考,甚至写 demo,而我现在相当于要在旦夕之间完成这个任务,结果可想而知。所以,虽然因为技术层面准备的不充分,我没有一定能通过评审的把握,但是死在第一回合,还真的是冤枉。
表面上看,我两次内部面试都失败是因为踩错了点,但事后我仔细考虑,我所晋升的这个级别,既要具备专业的技术能力,又要具备在更高的层面上考虑和解决问题的能力,只是第一次评审和第二次评审的评审项目顺序对调了,所以,我两次都没晋级,其实也在情理之中。
总而言之,程序员在职业生涯之中,到达某个阶段后,想要更上一层楼,除了专业能力不能落下, 从部门层面或者公司层面考虑或者解决问题的能力也要培养起来,否则你在某些公司,想往上爬,连那些只有硬性指标的关卡都过不了。
101
calpes 2019-12-05 12:35:40 +08:00 2
我确定第二次没过不是你的问题,你们的 TC 里怎么还有这种菜鸡选手呢?
|
102
native 2019-12-05 12:46:24 +08:00 via Android 2
赶紧换公司吧,你晋升后也不过如此
|
103
lawler 2019-12-05 12:57:21 +08:00 9
第一次,技术的意义,不是改变世界。而是服务资本。
第二次,缺乏应用视野面。当说到 mysql 不擅长高并发读写时,策略是 mysql 层面的分表分库为首选方案,涉及数据区块划分策略。当涉缓存时,缓存读写日志+日志收集中心也是构建应用必不可少的组建。集体掉线或内存断电,可以通过到达服务器的请求日志数据来恢复 /补偿数据。 还是蛮欣赏这俩面试官的,目的明确,各有所思。 |
104
Jack0 2019-12-05 13:01:16 +08:00 1
我确定第二次没过不是你的问题,你们的 TC 里怎么还有这种菜鸡选手呢?
|
105
TxoafrBKth4edoz6 2019-12-05 13:08:55 +08:00 via Android 3
楼主是专门注册一个小号,来这里发这种职场小说的吗?
|
106
yinzhenyu 2019-12-05 13:09:40 +08:00 via Android 1
公司有毒
|
107
rockagen 2019-12-05 13:32:19 +08:00 1
关于 redis 那个问题,和之前我遇到过的 kafka 挂了一样,你给他一个方案他下一句就是如果这个方案挂了怎么办,这种人就是浪费时间,你牛逼怎么不把恐龙给恢复了我看看
|
108
ddzzhen 2019-12-05 13:34:12 +08:00 via Android 1
站在领导的角度思考工作的意义,在公司眼里,技术永远是工具,解放和发展生产力的
|
109
crackhopper 2019-12-05 13:39:04 +08:00 1
建议跳槽升级。
|
110
zhybb2010 2019-12-05 13:46:21 +08:00 1
刚来深圳的时候,也遇到一个面试官问容灾的问题,直接说异地容灾全部 GG,真他妈抬杠。
|
111
zjsxwc 2019-12-05 13:48:48 +08:00 1
“怎么可能不会发生,我以前就碰到过整个机房所有机器一起断电的。而且现在虽然用云服务器,但阿里云、腾讯云也时常会出问题。你不能让我们公司项目的安全性受到一丁点不确定因素的影响,你应该百分百保证数据的完整性,在任何情况下都不能让他丢失,哪怕是几秒钟的数据。”
结合 CAP 定理,在容错性必然存在的事实下,只能牺牲可用性来保证数据一致性,也就是暂停对外服务,23333 |
112
zhangdszq 2019-12-05 13:50:21 +08:00 1
@crazypig14 厉害 学习了
|
113
murmur 2019-12-05 13:51:49 +08:00 1
@lawler 那你回答一下我第三个问题,天津港爆炸整个机房被物理损毁怎么恢复数据(实际上没炸多严重,但是说明整个机房物理 GG 不是不可能)
什么叫缺少应用视野,再牛逼的技术不做异地容灾冗余也是无用,机器都没了去哪里找日志 |
114
lietoumai 2019-12-05 13:58:47 +08:00 1
我会觉得公司的晋升管道并不透明
两次晋升评审的面试官虽然不是同一个人 但是管道不能因为不同的人而发生变化 假设楼主明年又要晋升答辩了 知道如何做准备么? |
115
dovezsskurumi 2019-12-05 14:08:34 +08:00 1
看了其实感觉就是小说,
|
116
jiyingze 2019-12-05 14:13:54 +08:00 1
@sadfQED2 哈哈哈,是真的,我遇到过。我 leader 就做过,本来别人都有现成的服务,leader 让我们在包装一下接口,这一包装,就写了个独立的应用。以前在一个应用的业务,现在都拆分为好几个独立的应用。多的有时候都不知道这些应用是干嘛的。但是大家晋升时有的说呀,我完成了某个应用的搭建开发与上线,面向 KPI 编程,哈哈哈
|
117
youngster 2019-12-05 14:36:51 +08:00 1
感觉贵司的评审是不是很严格,这感觉有点挑刺了,正常来说是按分数来过评审的,不至于一个问题直接死掉;另,这俩问题实在是蠢,有点钻牛角尖了,从 java 入手,问你 mysql,然后问你 redis,感觉是个不懂技术的人,从你的回答不断的挑刺,直到你答不上来;对付这样的人有两个办法,一种是直接把解决方案说到底,不让他有问的机会,另一个就是回答的时候反问他一下,因为 redis 和 mysql 的同步一直都是没法实时同步的,一旦设备全部宕机很大可能丢失数据,你可以问他公司有相应的解决方案吗?
|
118
yEhwG10ZJa83067x 2019-12-05 14:37:34 +08:00 1
问题是在于为啥两次晋升答辩都只问一个问题,一个问题就就能判断或者否定一个人了?
|
119
lc7029 2019-12-05 14:41:32 +08:00 1
所以要自己搞事啊
|
120
Enya 2019-12-05 15:06:16 +08:00 via iPhone 1
其实这种考评机制,我觉得楼主在考核之前结果已经定了的。
招呼过去参加这个考评无非就是走个过场,问几个尖酸刻薄的问题来把楼主镇住。楼主想想自己还有不足,不还要再努力工作半年。 又能让马儿继续跑,又不用喂马儿吃草。 换工作吧。 还有以前我在的公司也出现过这个状况,从固定 12 个月加一次薪,改为 6 个月靠考评制度来决定部分人才能加薪。美其名曰给大家更多的调薪机会。结果就是直接导致公司走了一大拨人。 |
121
rocksolid 2019-12-05 15:10:47 +08:00 1
这种不看贡献,就来次面试么,那为何不到外面多面几次呢,就等公司的?
|
122
SunoAries 2019-12-05 15:22:12 +08:00 1
总是有不足的。那只看到不足,看不到优点,无法发挥长处的地方。留着干嘛
|
123
wangyzj 2019-12-05 17:08:03 +08:00 5
支付宝挂了
快去问第二次的面试官为什么 |
124
jrient 2019-12-05 17:10:05 +08:00 2
第二次的问题,回他建立日志中心,并且异地灾备。
什么如果异地的机房也同时宕机,那就多地灾备。 什么,全部同时宕机?那还用个锤子,世界末日来了吧。 |
129
Acoffice 2019-12-05 17:43:01 +08:00 1
@nekoleamo #50 我想到这张图
![UTOOLS1575538974906.png]( http://yanxuan.nosdn.127.net/a913f2fd21b6960dffc6d12a2859396e.png) |
130
JerryCha 2019-12-05 18:05:25 +08:00 1
二面这种场合在竞争中挺常见的吧,你的对手揪着你的方案的某个小缺点往死里怼,你反驳不了你就输了。
|
131
shudaineng 2019-12-05 18:17:56 +08:00 1
都是概率问题,怎么不问问地球爆炸了怎么保存数据?
|
133
Leigg 2019-12-05 18:24:22 +08:00 via iPhone 1
你们这个技术委员会的人是不是很不想你们晋升?问的问题都很无脑啊,是我当然就怼了,什么叫集群挂了怎么办,公司只有这么点钱,有钱我建议上同城多机房啊,异地容灾啊,如果担心地球炸了导致数据丢失,还可以出钱让马斯克在火星上帮建个机房。有这个钱吗? sd,没钱?没钱闭嘴!
正经的,跟领导反馈这个事情,如果领导就是委员会的人,那就走吧… |
134
Leigg 2019-12-05 18:29:43 +08:00 via iPhone 1
@lawler 还洗地呢?你以为你的回答能过?人家说一秒的数据也不能丢。就算是多机房他也会问多机房同时断点电怎么办,这人分明是问问题分明是无脑的,xjb 问,生怕别人晋升
|
135
KeyboardManAnAn 2019-12-05 18:38:46 +08:00 1
@rxh12352 大部分都是普通人,为何不愿意接受这个事实
|
136
fengtons 2019-12-05 18:41:44 +08:00 via Android 1
感觉就是存心刁难
|
137
HangoX 2019-12-05 19:13:38 +08:00 1
我觉得楼主没答到点上,委员会的水平不怎么样,他估计是想问 MYSQL 的读写优化,结果你迁移到 Redis 上了。他不知道答案了。。。建议楼主多出去面试,面试经常遇到这种沙雕问题,一定要顺着来。
|
138
HuHui 2019-12-05 19:15:02 +08:00 1
内部评审的话,大多数还是靠你老大
|
139
Exin 2019-12-05 19:21:42 +08:00 via iPhone 1
我挺佩服楼主能保持内归因的心态的
建议换公司 |
140
lawler 2019-12-05 19:51:15 +08:00 1
|
143
google54321 2019-12-05 20:29:53 +08:00 1
估计面试官是候选人,只有把 LZ 搞死才少个对手
|
144
bonfy 2019-12-05 20:53:19 +08:00 2
不用分析了,晋不晋升根本跟你问题答的对不对没半毛钱关系,是给晋升的答不对也会晋升的,名额基本上都是内定的,走个过场而已,别太当真
想要涨薪的,如果公司不给,就出去看看吧 开心点就行了 |
145
nomoon 2019-12-06 02:54:37 +08:00
....这个,第二个如果再问 mysql 挂了呢?机房断电 mysql 也没了啊。就是瞎杠吧- -
|
146
kknd22 2019-12-06 08:34:47 +08:00
支付宝已经正面回答了楼主的问题:
当网络波动来临,该完犊子还是完犊子 |
147
vipppppp 2019-12-06 08:38:46 +08:00
LZ 是不是在广州.
|
148
iuvi 2019-12-06 08:45:52 +08:00 2
兄弟,在中国想晋升记住一句话:除了自己有真本事外,上层关系必须搞好,群主基础也要一级棒。
俗话说:说你行你就行,不行也行;说你不行你就不行,行也不行;你不服不行!且行且珍惜吧! |
149
bmzxdwgqz 2019-12-06 09:50:45 +08:00
怎么可能不会发生,我以前就碰到过外星人入侵地球全球一起断电的。#手动滑稽
|
150
zhuzhibin 2019-12-06 10:04:24 +08:00 via iPhone
小伙子 如果世界末日 你怎么保证公司的重要业务数据完整留存给下一代?
|
151
murmur 2019-12-06 10:11:26 +08:00
|
153
foamvalue 2019-12-09 10:42:05 +08:00
收藏了,第一次的晋升失败。心态崩了,已经没有第二次了。
|
154
luciferQiu 2019-12-11 14:30:37 +08:00
我个人感觉,第二次晋升考核你的人,你考核他,他也不一定能回答出来你擅长的领域。其实没有什么值得牛逼和自责的,愈发觉得成人社会里,很多时候靠的是运气,就像王八对绿豆。如果两个人擅长领域不同,还互相较真。着实没有那个必要
|