视频:为什么员工一直抱怨公司老员工抱怨多的种种不好却又不辞职

点击上方“全球Java架构师集中营”选择“设为星标”

技术文章第一时间送达!

本文整理自知乎上的同名讨论帖:《为什么有些大公司老员工抱怨多技术弱爆了?》版权歸原作者所有,原文地址:/question/

今年年初到一家互联网公司老员工抱怨多实习,该公司老员工抱怨多是国内行业龙头不过技术和管理方面,却弱爆了那里的程序员,每天都在看邮件查问题工单。这些问题多半是他们设计不当,造成的代码写的一团糟,全是复制粘贴连作者都没改,大家普遍不写注释也不格式化,代码歪歪扭扭

一个项目里,httpclient竟然出现了四种一种是该公司老员工抱怨多研发部写嘚,一种是老版本的开源项目一种是新版本的开源项目,还有一种是开发人员造的轮子

打接口请求响应日志,竟然不知道用拦截器

咑错误日志竟然不打上下文信息,每个人一种日志风格千奇百怪。

许多重要的中间流程居然不打日志。

该公司老员工抱怨多混了两年嘚程序员跟快递公司老员工抱怨多做查询接口,竟然不知道加密运单号

所有服务间通讯,都没有设requestId导致跟踪会话很困难。

一个没什麼qps的边缘接口居然做消费者生产者+阻塞队列的异步模式。

不知道异步会增加维护成本提高测试难度吗?

而且任务队里没有考虑持久囮,赶上发布丢了好多任务。

读取一个小小的xml和exc配置文件居然用流式解析,没见过这么二逼的真是醉了。

做优化全靠拍脑门拍大腿难道不会用excel分析日志,用jprofile扫项目

一个100以内的常数集合遍历,他也要写个优化算法进去算法跟业务还搅在一起,一团乱麻

每个人都茬嚷嚷性能、算法、分布式计算……

几乎没有文档,全靠从代码反推逻辑

有枚举他不用,非要在每个页面上把枚举值挨个儿写死,知噵后面改代码多么费劲吗

欺骗性的变量名,里面存储的是AES加密的变量名后缀却写成了DES;里面存的是小写字母,却写成upperStr

一个方法十几個参数,有三分之一是极其简略的缩写注释肯定也没有的。

一个类写到三四千行是常事

开发自测,居然要把代码全丢到公共机器上洏且都是走svn,他们把svn当ftp用

svn里面大量的无意义提交,一多半的提交连都编译不过去

我看到有个应届生,改了两句话马上提交,说是怕玳码丢失

一个运行了两年的项目,spring的包扫描明显配错了有些bean根本扫不进来,居然没有人发现

一半的bean在spring管理下,另一半的bean他们自己写單例模式来实例化

他们用mysql来做审计系统,出报表有个报表要跑8分钟。

原来是有人用字符串来存多值(逗号分隔)sql里写了like,导致没有利用到索引

为什么不用pg,pg在sql编程方面功能更丰富,更适合做统计它本身就支持数组。

程序员们都是得过且过的态度怎么把代码灌進去,跑的通测试就算交差了。

为什么大型互联网公司老员工抱怨多技术和管理这么差劲,是怎么形成的

楼主你好,我试着给你解釋一下希望你能满意。

新手经常会有这样的想法——「这代码怎么这么烂写的人干什么吃的?怎么能这样为什么不按照书上说的做?」这很正常,大家都年轻过经历过这种阶段,我懂你心里的想法所以也愿意详细地向你解释,这一切发生的原因是什么

不过技術和管理方面,却弱爆了那里的程序员,每天都在看邮件查问题工单。这些问题多半是他们设计不当,造成的

你真的觉得『国内荇业老大的互联网公司老员工抱怨多』会是技术和管理弱爆了的样子吗?

你以为团队应该像永动机但现实永远有各种摩擦、辐射、损耗。

内燃机的能量转化率通常只有 30% – 50%,但是它却是驱动全世界运转的核心引擎顺丰京东的快递小车、联通全国的高铁动车绿皮、瞬时直達的飞机……

机器尚不能 100% 效率运转,何况是人呢

你说我们的程序员每天都在查看邮件、问题工单,你说这些问题多半是我们设计不当造荿的请问你有试过统计数据吗?你大概只是『感觉』如此吧

事实上,经过十几年的发展我们内部的『效率改进团队』已经非常高效荿熟,每月、每周、甚至每天都会有新的改进现在的业务处理方式,不说全世界我可以自豪地说在全国我们是领先的,甚至是遥遥领先不然凭啥坐到了全国龙头老大的位置呢?

所以啊你只看到了程序员花在业务上的时间,没看到我们内部的『效率改进团队』为程序員们省掉的时间我觉得我有必要站出来为默默付出的『效率改进团队』说几句。

当然楼主作为实习生,不知道这些事情进而产生了这些疑问也暴露了我们的不足。我已经在『团队建设委员会』里提出了这个问题大家一致通过了决议,以后我们会对新员工——包括实習生加强企业文化、历史培训确保我们的新伙伴们不仅知道要去哪儿,也要清楚我们从哪里来长路漫漫,我们一同前行

代码写的一團糟,全是复制粘贴连作者都没改,大家普遍不写注释也不格式化,代码歪歪扭扭

当初公司老员工抱怨多起步的时候,整个项目都昰几个初创程序员加班加点熬出来的我知道你看过《代码大全》、《程序员修炼之道》、《Unix 编程艺术》,你对上面的准则信手拈来你鈳否翻开床头柜上的这几本书,看看它们的出版时间呢

是的,公司老员工抱怨多起步的时候这几本书根本还没有出版,彼时中国互联網方兴未艾大家都是摸着石头过河。现在你遇到问题你可以问朋友、问导师、用谷歌、用栈溢出、用知乎,我们写程序那个年代看嘚是谭浩强、严蔚敏,用的是 52k 拨号上网语言只有 C,编辑器是没有语法高亮和实时编译的编译器是没有智能准确的报错的,没有现在这麼多知识、也没有这么多规范和好资源、好工具不过我们还是把项目做出来了,把公司老员工抱怨多一步步推到了现在的位置

不过这個问题是客观存在的问题,谁也不否认但是你知道为什么你被分配到了一个『代码看上去一团糟也不够规范』的项目吗?我们需要新鲜血液来重构一些老代码所以你会被分配到艰苦的岗位上。我们希望你是勇于战斗的战士我们更希望你能成长为经验丰富的老兵,而把伱放到这种岗位是对你来说成长最快的方式。

一个项目里httpclient竟然出现了四种。一种是该公司老员工抱怨多研发部写的一种是老版本的開源项目,一种是新版本的开源项目还有一种是开发人员造的轮子。

你不知道的是我们最初用了开源软件(也就是你所说的『老版本』),它构成了我们早期项目的基石随着业务复杂性增加,我们改进并最终切换到新版本

这个软件跑老业务非常成熟,但是在一些新業务上有不可调和的矛盾所以在痛苦的适配后,研发部的同事们自告奋勇用 20% 的时间写了新业务的组件——是的你没看错我们也有 20% 时间峩们鼓励工程师的创新。

至于你说的开发人员造的轮子——这说起来可真有趣它其实是前年来的一个清华大学实习生写的。

当时他来了の后针对他接手业务的需求,向我抱怨说现有的 3 种都不好要写一个新的来『统一天下』,这话是他的原话我记得非常清楚,因为以峩多年经验来看这样的做法是不可取的但是本着锻炼年轻人的心态(加上他的确是不可多得的天才),我同意了他的请求于是我用自巳的业余时间接管了他的大部分工作,全力支持他写一个新的组件帮他挡住了所有上面的压力,后来的故事就是你看到的这样

是的,怹后来越深入、就越来越感到业务的复杂不断推翻重构、拆东墙补西墙,但始终发现和自己想的根本完全不一样受不了了就走了,留丅来这个

我们明年的规划中,就包括剔除这个组件的 codebase因为它实在是太糟糕了。

打接口请求响应日志竟然不知道用拦截器。打错误日誌竟然不打上下文信息每个人一种日志风格,千奇百怪许多重要的中间流程,居然不打日志idea、eclipse、myeclipse的配置文件竟然全部传到项目里去叻。该公司老员工抱怨多混了两年的程序员跟快递公司老员工抱怨多做查询接口,竟然不知道加密运单号所有服务间通讯,都没有设requestId导致跟踪会话很困难。

拦截器并不如你所想的那班美好也许你在自己的电脑上写过一些玩具代码,觉得这样很方便、酷炫但是真正箌了战场,你会发现没什么才是必须的、好的只有适合的才是对的。

至于配置文件这么说吧,IDE 的配置文件传到代码仓库是我定下的规矩『怎么会有人定这样的规矩?』是的你可能从软件工程的教科书上或者某些『知名博客』上读到了不能这样做,但实际上这样做在佷多情况下是必须的

这样可以确保代码克隆即可用,而不是让每个人都去设置一大堆无聊的东西这样不仅节省时间,也确保了每个人嘚环境一致性你想想这几年火热的 docker,应该明白了这样做的正确性和必要性了吧

你可能会说即便如此、插件也不用上传到服务器保存,峩告诉你这样是不行的你要考虑到我们这个项目前后十余年,你觉得几个插件能坚挺十余年很可能我们早期用的软件,现在你已经完铨不可能找到了所以保存一份备份是非常有必要的,决不能错误地认为是冗余

教科书只会教你基本通用的原则,树立你基本正确的观念但是如果只是死守教条,如何能拥抱日益复杂的变化呢

你看的教科书,且不说时间上已经是二十多年前的了在适用性上,也不说僦是真理IT 行业发展日新月异,几个月就是沧海桑田为了适应这样的变化,认真地思考、总结、判断才是最重要的

一个没什么qps的边缘接口,居然做消费者生产者+阻塞队列的异步模式显得你技术少是不是。不知道异步会增加维护成本提高测试难度吗?而且任务队里沒有考虑持久化,赶上发布丢了好多任务。读取一个小小的xml和exc配置文件居然用流式解析,没见过这么二逼的真是醉了。

你大概不知噵当初跑在你口中的「一个没什么qps的边缘接口」上面的业务带来了公司老员工抱怨多曾经 90% 的收入,所以我们用了复杂的设计以应对当时嘚需求当然现在业务转变,老系统不再需要处理那么多业务了但是更没有理由为一个『works perfectly well』并且不再重要的业务重构代码吧?

所以不昰我们秀技术,而是业务需求 + 业务变更使然年轻人还需要多学习一个。

做优化全靠拍脑门拍大腿难道不会用excel分析日志,用jprofile扫项目一個100以内的常数集合遍历,他也要写个优化算法进去算法跟业务还搅在一起,一团乱麻每个人都在嚷嚷性能、算法、分布式计算……几乎没有文档,全靠从代码反推逻辑有枚举他不用,非要在每个页面上把枚举值挨个儿写死,知道后面改代码多么费劲吗欺骗性的变量名,里面存储的是AES加密的变量名后缀却写成了DES;里面存的是小写字母,却写成upperStr一个方法十几个参数,有三分之一是极其简略的缩写注释肯定也没有的。一个类写到三四千行是常事

我再强调一次——我们是全中国同类公司老员工抱怨多中技术能力第一的,你所说的問题当然是不存在的。

我们有专门的 Hadoop 集群来分析日志当然也就用不着 Excel 了。

对于我们这种体量的公司老员工抱怨多来说不存在什么『瑺数集合』,代码必须用合适的数据结构——这是常识吧

特殊的算法和业务掺杂以增加内聚性,这是我们多年的经验的确,它和教科書上说的不一样但是我前面说了,死守教条是不行的——想必你一定知道 OSI 7 层网络模型吧

公司老员工抱怨多的技术氛围浓厚,是和公司咾员工抱怨多的基因分不开的我们公司老员工抱怨多最重要的原则就是——『拥抱变化』,从十几年前的机房托管单机到现在的庞大自建集群技术跃迁了何止千万里,所以每个人都在学习新知识、每个人都沉浸在新知识的喜悦中

你的问题,大多都是因为没有考虑到公司老员工抱怨多的庞大体量和十几年的技术跃迁才有的疑问这点不再赘述,自行体会吧

开发自测,居然要把代码全丢到公共机器上洏且都是走svn,他们把svn当ftp用svn里面大量的无意义提交,一多半的提交连都编译不过去我看到有个应届生,改了两句话马上提交,说是怕玳码丢失一个运行了两年的项目,spring的包扫描明显配错了有些bean根本扫不进来,居然没有人发现一半的bean在spring管理下,另一半的bean他们自己写單例模式来实例化

其实那不是 SVN,那是我们公司老员工抱怨多自主研发的适应我们内部需求的 源代码管理系统 和 文件管理系统你可以往裏面放任何东西。

你所说的「无意义提交、一多半的提交连都编译不过去」其实只是表象这套系统代号 TITAN,它自带 CIDD(持续继承、交付、部署)所以这些无法编译的提交都是不会有机会走到下一步流程的的。

如果你工作了一年你就会发现这个需求是很重要的,改动、尤其昰大型改动中间会有很多非可用但有需要存档的步骤,现有的源代码管理系统都不能很好地支持这些需求因此你也被教育了一套适应落后工具的思想。人啊最重要的能力是改进工具,所以用 TITAN 的时候要拥抱全新思维不要被落后思维捆绑。

如果你工作了几年你可能还會问为什么我们没用 Jenkins、Travis 等工具,其实呀就在 TITAN 之中呀,它凝结了公司老员工抱怨多最优秀的人才的十几年宝贵经验和心血

By the way,我们最近正計划开源它为中国开源社区做贡献,也希望提高业界的综合素质欢迎你提交 PR 哦。

他们用mysql来做审计系统出报表,有个报表要跑8分钟原来是有人用字符串来存多值(逗号分隔),sql里写了like导致没有利用到索引。为什么不用pgpg在sql编程方面,功能更丰富更适合做统计,它夲身就支持数组程序员们都是得过且过的态度,怎么把代码灌进去跑的通测试,就算交差了为什么大型互联网公司老员工抱怨多,技术和管理这么差劲是怎么形成的?

为什么不用 pg如果你抱着这种想法,那用了 pg 也要被喷的到时候就就会说 —— 「为什么不用 sqlite,轻量簡单搞这么复杂真的有必要吗?」真的有必要。。

这只是一个很简单的系统做的事情也很简单,当初做这个系统的同事更熟悉 MySQL當然 MySQL 是不二之选了,对于简单的东西追求的是开发速度、使用便利性。

你觉得一个月跑一次的审计代码8 分钟有什么问题吗?就算是一周跑一次当然也是没问题的。

程序员的单位时间是如此宝贵为了优化一段一个月跑一次的 8 分钟代码,值得花费数天的时间来做这件事嗎

重复一遍,你的问题大多都是因为『没有考虑到公司老员工抱怨多的庞大体量和十几年的技术跃迁才有的疑问』,这点不再赘述還请自行体会。

当然年轻人乐于思考,这是好事是希望,新鲜血液替换老旧部件系统才能健康发展成长人如此、公司老员工抱怨多洳此、国家也是如此。

希望你勤于思考努力学习,有问题的话我们公司老员工抱怨多是鼓励同事们向 CEO、CTO 写信的,不然也不会有 CEO、CTO 信箱叻你说对吗

当然,这样的技术性问题、你写给我就好CEO 是船长,不需要关心底层锅炉房的细节

另外我想补充一下我的想法,希望对你囿所帮助

你看你都没说加班问题,我们公司老员工抱怨多没加班啊这多好,怎么做到激烈竞争下还能不加班的都亏了公司老员工抱怨多老领导和元老们的一手决策

所以我想补充的不是技术问题,技术问题都不是问题年轻人可以学习、交流,技术都会很快成长毕竟姩轻人的冲劲大、头脑灵活。

我想说的是整体观、大局观、大棋战略

黄金的导电性最好,为什么电脑主板还要用铜

清华大学最好,为什么有人要去普通学校

飞机最快,为什么还有人坐火车

因为资源都是有限的,我们在现实生活中——而不是教科书上——必须兼顾成夲和产出的平衡 

你问我每行代码都多人多层人工 review 好不好?问我支不支持我说好,review 我怎么能不支持呢我今天在知乎这个公众平台我明確说了我支持。

但是你也应该多学习一个这个现实毕竟是现实,我们要兼顾各种考量

你今天在这里渲染「大公司老员工抱怨多技术和管理这么差劲」,是不对的、是失实的、是欠妥的、是缺乏认真思考的、是未加深入考量的

将来舆论出了偏差,你虽然不用负责任但昰你认识到自己的错误的时候,会后悔、会内疚、会难过的吧

何处乌托邦?或许……等下一代

总结就是,生产效率才是最重要的世間万物最重要的是平衡。

怎样取舍、如何妥协这不仅是大自然的规律,也是我们前进、发展的准绳和仰仗的原则

题主你看到了很多槽點,但我认为你不能只看到槽点和大概怎么解决有没有想过怎么改进,如果是你的话你怎么做这些项目里面临的主要挑战是什么,次偠的挑战又是什么

不要只告诉我技术A弱爆了,用B就可以完爆这个项目了你知道用B的优劣,B的适用场景以及适用B的成本吗对于一间公司老员工抱怨多来说,成本是很重要的我这里说的成本不是金钱。而是假如你看不爽一份代码,你打算重构它你觉得你需要投入多尐时间,多少人力重构之后,又要花费多少时间和人力去升级依赖这份代码的其他项目不要以为开会无用,老板就只是在天天发邮件如果你重构了一份代码,不能通过沟通说服其他组去升级他们的组件又或者你只是重构了一份虽然很丑陋,但其实并没有多少程序依賴它的代码又又或者你重构了代码只是让代码技术含量更高了,更好看了却没给公司老员工抱怨多带来多少收入甚至KPI,那你的工作和荿果就很尴尬了

其实上述也解释了为什么你身边的同事都眼睁睁地看着这些丑陋的shit存在而无动于衷。因为他们也是需要投入成本的先鈈论他们个人技术水平高低,试问谁愿意挑一个又艰难又不能产生多少效益的任务去做?当然你会说,写好代码是程序员的节操抱歉,节操多少钱一斤北京三环商品房多少钱一平?

编程高手都有真爱但现实就是编程高手凤毛麟角。我们身边的大部分同事可能只是唏望养家糊口他们头上还挂着十几个bug等着修。我们数落他们没追求但追求从来都不是嘴上说说,吐吐槽就能实现的

人心如此,公司咾员工抱怨多也如是

矛盾分主次,公司老员工抱怨多的目标都是一样的:用最少的成本投入到最能产生效益的项目中去或者投入大成夲去解决公司老员工抱怨多最需要解决的问题,这间公司老员工抱怨多才能继续运作

所以题主你想想,在你吐槽的个案中有多少是公司老员工抱怨多真正关心的?有哪些是你的老板认为可以创造最大效益的有哪些才是主要矛盾或者挑战需要最牛逼的人挺身而出第一时間解决?去辨别解决这些关键的问题吧,骚年必要时带上(忽悠)一队人马(同事)跟你一起干,苟富贵勿相忘。不要像祥林嫂一樣天天抱怨着生活,日日思考着辞职得罪点说一句:“沦落”到要跟这样的人共事工作,难道自己身上就没有原因

这个世界有更好嘚公司老员工抱怨多,有更牛逼的人如果你认为解决这间公司老员工抱怨多的这堆问题不值得,又或者同事实在太不给力就远走高飞吧。

我以前也跟题主一样看我第一份正式工作的很多技术环节都相当不爽。这份代码写得丑那个设计像大学生作品,重要的项目居然連单元测试都没有……但是我后来反观我自己并没有发现比起那些丑陋代码和糟糕实现强悍多少。我跟我的同事没有质的区别我笑话怹们代码混乱bug不尽,我何尝不是少处理了一个field倒腾错了一个片段的数据搞到要翻工重跑?在我心底里艹了隔壁组那个“我的程序好像不能跑你帮我debug下”的同事一千次之后,带我做ML让我倒腾数据并且被我的程序搞坏了几份数据(当然后来搞好了)的T9君在会议上说:“她已經很努力了我承认我有时候也逼得她太紧,她应该有多些时间的”

更多此问题的回答,请查看原文哦!

}

给女友听的睡前小2113故事有:

有一忝天堂放假,一个天使来到人4102了化解自己的无聊,1653对一个女孩说我可以实现你一个愿望,权利金钱,美貌爱情…… 

女孩想嘚很认真,天使有些害怕如果她说一些他实现不了的愿望,会很没面子总之一定要让她看到天使是多么厉害,我要她崇拜我我要让她感激我。  

“我想每天睡前都能听到你对我说晚安!” 

“兔小灰你说,你究竟喜欢我哪一点呢”

“讨厌,你怎么也学会人类的那些花訁巧语啦我知道我有许多缺点,你不可能每一点都喜欢的”

“那么,或许我喜欢的是你的优点但我更宠爱你的缺点。”

“那在优点Φ最最喜欢的是哪一点呢?”

“真的很难说出具体的哪一点”

“因为喜欢又不是呈点状分布的。”

在一个精神病院里有一天院长想看看三个精神病人的恢复情况如何,于是在他们每人面前放了一只小白兔

 第一个精神病人坐在小白兔的上面,揪着小白兔的两只耳朵嘴里嚷着“驾”,院长摇了摇头 

第二个人背对着小白兔,拍着它的屁股嘴里说着“给我追”,院长叹了口气 

第三个蹲在那里一个劲兒的摸着小白兔,院长看后满意地点点头,只听他说了一句:“小样的放你300米,等我擦好车再追你!”院长倒地晕倒……

冬天到了覀北风呼呼的吹着,一阵阵寒流袭来小河里的水都结冰了,像一面闪闪发亮的镜子

早上,小熊刚刚从床上爬起来走到小河边,看见河水都结冰了小熊一蹦三尺高,开心地想:“我可以去溜冰了”

于是,它兴冲冲的跑回了家对妈妈说:“妈妈,我要去溜冰”

妈媽说:“冰面薄,很危险的”

小熊暗暗的想:“我才不信,我就去溜一会儿才不会有危险呢。”它想着想着就轻手轻脚的溜了出去。

到了小河边迫不急待地跳到冰面上。突然只听见“咔嚓”一声,冰面裂开了小熊掉到了冰窟窿里,冷的直打哆嗦大声哭喊着:“救命啊!”

这时正在水底休息的大乌龟听到了,浮上水面把小熊救上了岸,并语重心长地对它说:“以后可不能再任性了!”

“大爷你鉯后都不霸道了吗?”小白兔认真地看着狼

“当然,狼大爷说话算话!”狼恨不得立正敬礼“我对着你美丽的大眼睛保证!保证不踩伱的花,保证不在你漂亮的耳朵上绑蝴蝶结也保证……”

狼不舍地接道:“不揉乱你特别柔顺的头发了。”

“蝴蝶结可以绑的……”她想了想又小声说,“头发也可以给你揉……”

“你把你的妹!把老子绑兔耳朵上干什么”蝴蝶气急败坏。“别动别动”狼尽量温柔哋劝着,一边摁着蝴蝶往兔子耳朵上凑“大爷,咱们之间是不是有什么误会”小白兔一脸木然的坐着,“这就是你说的惊喜”

“我知道你内心有多么开心,你就不要再掩饰了!”狼一脸得意“果然妈妈说的没错,长得好看的女孩子就是会演戏!”

}

我要回帖

更多关于 公司老员工抱怨多 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信