当前位置:首页 > 运营类 > (CSDN)不是技术不好,而是技术太好引发了“众怒”

(CSDN)不是技术不好,而是技术太好引发了“众怒”

微信用户10个月前 (07-07)运营类602

点击上方“CSDN”,选择“置顶公众号”

关键时刻,第一时间送达!

【CSDN编者按】技术人在职场中,是该做“正确的事”,还是该做“正确的人”?如果想做一番实事,就应该大刀阔斧、扫除一切破旧技术。但如果想在职场中如鱼得水、混得更好,随波逐流或许才是最好的选择。本文的作者 将将试用了五个月,就惨遭辞退了——不是技术不好,而是技术太好从而引发了“众怒”。原因如何,我们来一探究竟。

辞退员工意见书_程序员_辞退意见书怎么写

以下为译文:

在工作了5个月后,我被老板辞退了。一般来说在我们国家,我签的合同包括6个月的试用期,在此期间内任何一方(员工或者老板)都可以终止合同,基本上不用提前通知。

我很惊讶……不是因为我以为自己做得非常出色,很长一段时间里我自己很不开心,我知道一些同事也不是很喜欢我……我觉得惊讶是因为几周前我们进行了“业绩考核”,当时我大多数同事都恭喜我,说我的工作做得很好,只有一个人不太满意我的工作,在和别人一样夸奖了我一番后,给我了一个暴长的列表,上面写着他认为我需要改进的地方。

在讨论这个列表之前,先让我从头给你讲讲我的故事。

我的这份工作的薪资和福利非常好,虽然没有很响亮的头衔,就是个简单的后台开发,我曾要求他们改成软件开发,以准确地表述我的能力,而不仅仅是片面的技术力。我的技术总监对我的技术测试非常满意,而且非常幸运的是:他在面试我的时候,知道我做过,就在讨论过程中问我怎么看(我个人认为是非常好的语言) ,他说他读过一篇文章说的性能非常具有竞争力……结果发现,我就是那篇文章的作者!

这个开头看似好极了,所以我决定辞掉(很有前途的授权与认证的服务商)舒服的工作,并加入了这家做支付系统的公司。

我希望自己学习新技术,并有机会接触、亚马逊ECS和等高访问量以及可伸缩的系统。我已经在产品开发公司工作了多年,一方面能够了解整个代码库是一件好事,在的时候,因为我们做的产品相对较新,所以有很多未开发的领域。但是,另一方面,你所接触的技术非常有限,比如我,过来过去就是Java虚拟机的东西,包括Java及其语言、、、Jetty等等。

新上任的第一周,我被分到了一个临时的队伍,负责修复非常紧急的安全问题。在我第一次接触新同事的时候,就感觉到一丝异样:尽管与我之前的工作相比,此次修改非常的简单,但是其他开发看似对当时的情况倍感压力,他们还说需要几个月的时间才能解决问题。可是,我觉得几天应该就够了!

作为公司的新人,有可能我不清楚一些他们没跟我说的具体细节,但是无论如何,情况非常紧急,经理要求我们在两周内改好,但据我的理解,两周不是硬性规定。

然而,开始着手工作后,我发现根本就没有什么复杂的东西是我没有预见的,实际上问题非常小,我们几乎只用了一周就做完了,尽管之后我们还花了很多时间讨论可能的替代方案。因为我有这方面的经验,所以我带头实装了解决方案,并写了大部分代码(不幸的是,这个项目不是开源的,所以我不能确认,但是我可能写了超过70%的代码)。第二周我们大多时候都在做测试,并与其他相关团队沟通我们的解决方案。

有人似乎很担心将这些代码部署到产品中去……很明显,他们不相信测试系统能在上线之前找到所有的问题。对我来说,这其实是第二个警告,我以前都是尽可能建立一个可以可靠地重现生产环境的模拟环境,这样在代码通过单元测试、系统测试和一些最终的手工测试之后,我可以很自信产品不会出什么严重或明显的问题。即便有问题,也只能说明测试没有覆盖到所有的边缘用例,并不关乎产品和模拟环境的差异。

无论如何,我们将此次修改部署到生产环境,就是很大的胜利,尤其是对我来说,我才在这个公司干了一周,就可以在修改严重问题的工作中担任重要的角色。

但是从这次最初的经历中,我发现了这个公司的开发流程中的很多东西还差得比较远,所以我决定指出我们需要改进的地方。

我注意到,每当我指出什么东西不对时,技术组长就非常不高兴,很明显他个人以为我指出的这些错误是针对他的:没有输入验证,很多半途而废的修改,缺乏单元测试,生产环境与模拟环境之间显著的差异,开发人员从自己的机器上发行代码而不是从CI服务器上……等等问题导致了代码质量的低下,在我看来,这些都是不可忽略的。他们给我的答复总是千篇一律:他们不得不考虑时间限制,或人手不够……都是常见的,惯用的(即便无法令人满意)借口。

但是,我不能只指责别人,而不提出更好的方法,所以我马上开始修改最明显的问题,那些当我刚开始接触微服务时注意到的问题。这些问题需要很大范围的修改,并需要写很多单元测试。我将写的代码分成几次提交,希望有人能帮我确认测试的用例是有效的。

就在此时,我和我们队伍的关系开始恶化。我经常发现我提交的PR闲置好几天也无人问津。我不厌其烦地找他们,求他们审核我的修改,但是很显然我做了太多改动,即便我事先将PR分成了几次提交,也没人愿意审核我的代码。这种情况一直持续发生,也可能是导致我们之间出现问题的根本原因。

我注意到不仅是我……其他人的PR也会被搁置好几天,甚至几个月都是常见的:我甚至发现别的项目中有的PR甚至整整一年都没人审核。

如果我有一个搁置的PR,那么我会从PR分支上创建一个新的分支,然后继续我的工作,直到我准备提交下一个PR,所以PR审核不够快的话,会导致PR堆积成山。请注意我们说的是几天,而不是几个小时!

我跟组长讲了这个问题,结果他说他们不能花整天的时间审核我的代码!我感觉是因为自己工作太快而惨遭人指责。

队伍中的另一个人开始指责我,说我的PR太乱。一些人抱怨我去帮助别的队伍的工作,就好似他们可以做主我可以干什么不可以干什么,可是对我来说那都是很简单的工作,而且我绝对没有影响到我们的进度。所以,很显然每个人都不满我拿着白菜的钱,却做着太多的工作。

不止一个人跟我说,工作慢一点,别着急。

为了给大家做个榜样,我很快地审核了别人提交的PR,结果有人抱怨我说,他的PR还没准备好我就给审核掉了……但是我觉得吧,如果你没有准备好让别人审核你的PR,那你为什么要提交PR呢?!你压根不应该提交PR呀!!

这个时候,我感觉自己所做的一切都受人指责(除了代码,尽管我倒是很希望有人能指出我代码上的不足),这种氛围太浓烈,我有点难以承受……所以我开始越来越有戒心,这让情况愈演愈遭!我想着干脆重回我之前的工作(原来的同事很欢迎我回去),但是我有点担心我的简历看起来似乎我是一个喜欢跳来跳去的人。而且,我天生不喜欢放弃,如果事情进展不顺利,那我更要倾尽全力。

一两个月后……直到现在我们都在做数据库的迁移,这项工作不仅涉及代码,还需要数据的变更,包括数据结构。这类的工作如果是发生在等SQL数据库上那很简单,但是不一样,这基本上可以让我们的数据分崩离析。

一个自称专家的家伙写了一些代码进行数据转移。但是很显然他遇到了麻烦,每次他尝试在较大的数据卷上运行数据转移时都会报错。他说数据配置源已经崩了,因为内存中的数据太多了(或者其他这方面的问题)……我调查后发现这个错与内存一点关系都没有,只是Java的中出现了冲突,从而引发了代码中的一个路径抛出了的错误。我试图跟他解释,但是貌似他根本听不懂我在说什么,很显然他对Java运行时的知识非常有限。这让我对他的技术信心大打折扣。后来与他争论技术问题的时候都很困难,因为我知道不能相信他的判断(之后这个人也曾几度在技术上做出了错误的判断),而当我跟他说“你说的不对”,“我不相信你”(当别人大放厥词,比如他说“不能在中迭代所有行”时,我只能这么回答他)的时候,别人可能感觉我很不理性。

不管怎样,之后我找到了我们所需的正确的代码库版本,那段代码终于跑通了……但是他争辩说在中我的方法行不通。他建议我应该去读一读的书,还问我知不知道自己在干什么,即便是我推动了整个进度,解决了问题,而不是他。可能我不是特别了解,但是我有、、MySQL、等等数据库的经验……我无法想象一个数据库居然不能提供在表内做所有数据分页等基本的功能。

最后不照样好使了嘛。测试显示所有的数据都按照预想的正确地迭代了。但是有一个坏消息:在不了解情况的人看来,我是个愚昧的人,不懂,有人给出专家建议,我还不听(如果他真的是专家,就该由他来写代码,但是他忙着玩,试图自动部署新的数据库集群,我们都明确说了这根本没必要。)还有更甚者,另一位同事指出我非常愚蠢,居然用BATCH语句往新的数据表中插入数据,而这个人从来也没有写过一行代码帮助我们的工作!

问题在于:书中确实不允许在加载的时候使用BATCH语句,因为会影响到节点的稳定性。所以他没说错……但是我没有直接使用BATCH语句,而是通过类似Java的东西写的,我读过文档,说与这个问题一点关系都没有。无论怎样,我在大家心目中的形象已经毁了,因为我在批处理中使用了BATCH语句这样大的错误。

我不喜欢大家这样看我,所以我决定用数据验证这个问题。我测量了一下在使用BATCH语句和独立的语句时节点产生的负载状况。我完全无法理解为什么应该发送成千上万的独立语句到DB上执行,而不是像任何正常的数据库客户端那样利用BATCH将它们打包到一起。我的测试很全面,所有测试都表明,无论在JVM还是OS上,BATCH导致的负载都显著低于独立语句,其结果与书上完全相反。有可能BATCH在拥有大量节点的情况下会过于昂贵,但我们只有几个节点而已!所以这个问题完全不会影响到我们。我还给团队做了次演说来展示我的发现。

最后有人认同我的努力并同意使用BATCH吗?没有!相反,他们认为我太固执,从来不肯听取意见。

没错,我确实很固执!但如果测试结果表明BATCH性能更差,那我肯定会第一个改变看法。这个偏见还导致另一个结果,他们认为我太强势(有人对我人身攻击),估计这是压垮他们的最后一根稻草。

最后我们决定不用BATCH。但是,他们让我负责数据库转移过程中的流量控制。在我看来这十分荒谬,而且透露了他们对技术的无知:我已经采用了限流的方式防止语句冲垮数据库——“生产者”每次只发送一组请求(我们不再用BATCH了)然后等待所有请求结束后才发下一组。在这种情况下,在“批次”之间通过sleep进行流量控制似乎完全没有必要——特别是当“消费者”是时,这个数据库的目的就是处理高吞吐量。而且我的测试结果显示这种方式对最终用户完全没有任何影响(我通过在运行脚本的服务器上运行模拟实际情况的负荷测试进行的)。

但无论如何,我的争论似乎完全没有意义。

最后,数据库转移成功了。虽然我们花费的时间比实际所需得要多,但是最后只出现了一些小问题,并没有影响到产品。

技术总监说,我们应该买个蛋糕庆祝一下,一般来说这种情况都值得庆祝。几天后,我离开了公司。

在公司的5个月里,每一个任务我都做得很出色,但是很多方面我做得还不够,最重要的是不讨人喜欢。

在我之前的工作中,我很确定很多人喜欢我(我离职的时候,好几个人挽留我),即便是在现在这份工作中,我也有几个很好的朋友。但是由于不清晰的流程引发的碰撞和技术争论,再加上不同的工作理念,所以导致我目前的情况,我的队友不喜欢我,他们要我走人。

这给了我一个很大的教训,我希望这篇文章可以帮我自己和别人明白,冰冻三尺非一日之寒,小不忍则乱大谋。

那张列表上指出的我需要改进的地方包括:多听别人并接受他们的意见,不要过于有戒心,不要太强势……基本上就是说要更加讨人喜欢。

我知道了我犯了很多错误,但是我相信犯错的不只是我一个人……但是我还在试用期,所以,再见,谢谢所有的人。

以上即为作者 惨被辞退的经历。对于他的这一遭遇, News上有很多网友给出了自己的看法。

扫描二维码推送至手机访问。

版权声明:本文由点度点度金讯时代-BLOG发布,如需转载请注明出处。

本文链接:https://lmwmm.com/post/1060.html

分享给朋友:

“(CSDN)不是技术不好,而是技术太好引发了“众怒”” 的相关文章

万字长文:ChatGPT能否成为互联网后下一个系统性机会?

万字长文:ChatGPT能否成为互联网后下一个系统性机会?

2023年险峰线上沙龙的第一期,我们和四位行业大牛聊了聊最近大火的ChatGPT。首先介绍一下本场嘉宾:陶芳波博士是前Facebook高级研究科学家,回国后进入阿里达摩院,搭建了阿里的神经符号实验室,属于全球最顶级的AI科学家之一,目前正在...

早资道|京东集团CEO徐雷因个人原因主动退休;微信公众号今日起可带货“视频号小店”

早资道|京东集团CEO徐雷因个人原因主动退休;微信公众号今日起可带货“视频号小店”

京东集团CEO徐雷因个人原因主动退休,CFO许冉接任5月11日消息,京东集团公告称,本公司现任首席财务官许冉女士将接替徐雷先生担任京东集团首席执行官兼执行董事。而京东集团原CEO徐雷因个人原因提出退休申请,将于下月卸任。京东方面同时回应,徐...

一文讲透如何把ChatGPT融入工作和生活?

一文讲透如何把ChatGPT融入工作和生活?

最近几个月,ChatGPT无疑成为了当前最热门和最令人兴奋的话题,没有之一。ChatGPT于2022年11月发布,并在2023年3月份推出了基于GPT-4的全新版本。ChatGPT是一种基于深度学习技术的自然语言处理模型,能够适用于广泛的语...

盘点实力被低估的中国动作打星,第一名竟然是他

盘点实力被低估的中国动作打星,第一名竟然是他

说起武打明星,我们一定会想到成龙李连杰或是吴京甄子丹,但中国动作片中还有很多比他们还能打的人。为了让大家简单了解,小虎来盘点一下实力被低估的中国动作打星。 第十 王宝强 提到王宝强你,眼前就会出现士兵突击许三多,他的从影生涯多半都是在拍摄...

想起王宝强,你会想起什么呢?——《hello,树先生》

想起王宝强,你会想起什么呢?——《hello,树先生》

想起王宝强,你会想起什么呢?是《士兵突击》的许三多,是《hello,树先生》中的树先生,还是《一个人的武林》中的封于修。有的人可能仅仅只是站在那里,就是一场戏。 戏里戏外都是他的人生。 在中国电影圈中,王宝强是一个备受瞩目的演员。他通过自...

王宝强:“没喝过”,傻里傻气的一口就干了

王宝强:“没喝过”,傻里傻气的一口就干了

王宝强和冯小刚第一次见面的时候,此时的冯小刚已经是贺岁之王,王宝强站在他面前。 冯小刚问王宝强:“你会喝酒吗?” 王宝强:“没喝过” 这时候冯小刚拿起酒杯,倒了一杯红酒,递给王宝强,就这样,王宝强接过这人生中的第一杯红酒,傻里傻气的一口就...