背景

本文出自一朋友给我的提问,于是博主呕心沥血给他花式洗脑了几个小时。忽然发现,应该还有许多朋友有同样的疑问。所以整理成文。
许多刚毕业的程序员朋友,都有一个执念,想要进那种规模大一点的公司、上市的、业内有名的最好。
为什么大家都想去大公司?
因为很多人觉得,公司大一点,正规一点。开发技术应该不错,应该与时俱进,流程应该会规范一些。说到这里,依然有这种想法的朋友,请握个爪。
然而,当他刷完什么《剑指OFFER》《编程之美》,废了好大一番功夫进去以后,却发现完全和自己想的不一样。他发现他所在的大公司:

(1)代码混乱

I、比如一个发送Http请求的Util类,竟然出现了三四种。开发人员A封装了一种,开发人员B封装了一种,公司框架自带了一种。
II、到处充斥着Ctrl+CCtrl+V的味道,更有甚者,居然连author都不改,原样复制过去。
III、日志风格千奇百怪,缺乏统一规范。每个人都有一套自己的日志风格。重点是,一些关键步骤,居然不写日志。
IV、一些几千行的类、关键步骤不加注释、一个方法几十个参数都是随处可见。

(2)开发流程混乱

I、一个项目组IDEJDK都不统一,比如用Idea,eclipse,myeclipse的都有。然而重点是,把idea、eclipse独有的配置文件都上传到了服务器。
II、完全没有文档。比如要改一个需求了,OK,去Debug代码,根据断点去反推原来的逻辑是怎么实现的。反正不改出问题就行。
III、程序员白天大部分时间在处理BUG,以一种混日子的态度在工作。反正能搞得定新需求,搞得定功能测试,项目能如期上线就行。至于代码有多搓,无所谓!

(3)技术落后

I、还在用四五年前的技术,例如还在JSP里头写大量的JAVA代码进行开发等。
II、架构上很多方面欠考虑。比如,采用了消息队列,却完全不做持久化处理,完全不担心数据丢失的问题,也没做可靠性的保证。服务之间传送数据,重要信息完全不加密,明文直接传。
III、性能调优就是拍脑袋做的

以上种种,大家如果深有感触,请再次握个爪。那么,为什么会这样呢?

缘由

人员层次

但凡在大厂工作几年的老员工,有没有这样一个体会,身边的牛逼老员工基本都跑了,剩下来的员工基本都是比较平庸的。
大部分人在工作中,其实都处在一种重复劳动的状态,也就是所谓的拧螺丝工作,技术水平得不到提高。那么在这种工作性质之下,会诞生两类人:
(1)平庸的人
这类人在工作中满足于能完成需求即可,对代码的美丑并不关心。正所谓

码不在烂,能跑就行。

当然,这类人并不是缺乏提升自己技术的能力,而是由于惰性,没有明确的规划,缺乏提升技能的意识,导致时光匆匆流走,想要跳槽却没地方收留,一不小心,这类人就成为了老员工。说到这里,赶紧回忆一下自己,是不是成天拿什么没时间当理由,然后明日复明日,小心成为老员工。
另外,大公司基本不会裁人,而手上的技术水平已经能应付工作。就算努力学了一堆新技术,也没有用武之地,于是这类人就能安然自得的继续过下去。
大家可以对比一下你身边的同事,一个是自毕业的时候就在这家公司熬了十年的,一个是十年间在三四家公司呆过的。请问哪一个水平更高呢?
(2)牛逼的人
这类人在工作中,一般有着较强的责任心,且对代码有着很高的追求,对问题有着独特的见解,回去也会不断的学习,提升自己。然而这类人的所学,通常没有发挥的空间。比如,可能出现下面的对话

程序员A:"老王,你这个地方不能这么写,会出现XXX的BUG的。"
老王:"你懂什么,公司创立的时候,我就在这个项目组了,就该这么写。"

于是这类人的所学,并没有啥发挥空间。就算有发挥的空间,过不了多久,他也会离职。因为在IT圈,只有通过跳槽才能得到高薪。这点,我们必须明白,大厂都有一套严格的薪水涨幅制度,并不会因为你做出了特别牛逼的贡献,给你月薪突然翻了一倍。而且,如果给你涨了薪水,你公司的其他人呢,他们涨还是不涨?所以,很多公司宁愿给一个新员工高薪,却不愿意给老员工提工资,就是这个道理。
因此,这类牛逼的人觉得公司现有的薪资匹配不上自己的能力后,就会跑路的。大家在IT圈会听到一个说法

B级公司就是给A级公司培养人才的,A级公司就是给S级公司培养人才的。

所以,当你发现自己身边没有牛逼的大神,不要惊讶,因为大神都跑路了。

重构成本

当一个系统的代码,成为祖传代码以后,其业务规模和复杂程度,都远远超乎你的想象。我们在开发新需求的时候,都是在原有基础上小心翼翼的修补。比如,可能出现如下对话

老王:"谁让你乱改这个模块代码的,知不知道,你这么改导致了XX模块不能用了。"
程序员A:“我。。。。只是想让代码看起来更好看而已。”
老王:"你以为我不知道这么写很挫么,乱改出问题了,你抗么。赶紧改回去。"

其实你能看到的问题,老员工看的比你更清楚,maybe人家比你还明白应该要如何解决。但是为什么老员工不去做呢?因为,老员工明白,技术上的事情没有100%肯定不出事的。出了事了,谁来背?

再打一个比方,

你一个月薪水10K,你花了5个月的时间,提升了一下10%性能。站在你的角度,你高兴了。但是站在公司的角度,卧槽,我亏了啊。我还不如花20K再买一台机器。在你身上投入了50K,还要担心你会不会跑路。

所以,从重构成本上来看,又提高了。
另外,很多中层的领导,基本都是守着自己的一亩三分地,不求无功,但求无过。所谓祖传代码的出现,其实是整个部门的责任。你一个人重构的开开心心了,后续就可能整个部门一起加班,谁去做这种吃力不讨好的事情。而且最重要的是,在技术leader水平和开发流程没有改变的情况下,你的新代码过不了几个月又会变成所谓的祖传代码。

当然,但是这并不意味着,这些技术项目没救了。比如,某一天你的对手,出了个吊打你们项目的产品。这种时候,只能大改了。反正搏一搏,没准还有出路呢。

公司性质

其实,大部分的公司都是重视业务价值,而看不到技术价值
有些大厂存在一个很有趣的现象,产品经理的薪资比技术人员的薪资还高。因为他们觉得,无外乎是增删改嘛,找点应届生就能作了,没必要花大价钱请牛逼的人来写。
于是呢,很多中层是所谓的没写过代码的业务员,又或者是没撸过一行的代码的产品经理,然后就很搞笑了,会出现如下情形

产品经理:"这个功能,你们看一下要多久才能实现。"
研发人员:"大概下个月十五左右吧。"
产品经理:"什么!要这么久。就初一,下个月初一,一定要上。"
研发人员:"我!!!!这个功能XX地方比较复杂,需要点时间。"
产品经理:"你当我傻么,就是if else。。可以实现的,怎么要这么久!"
研发人员:"我!!!"
产品经理:"就下个月初一了,做不出来,公司的损失你背还是我背!"

于是呢,在重视业务价值的公司,无论你多牛逼,乃至你是码神下凡,你写出的代码也是不堪入目。说到这里,博主的那个朋友不服,他辩解道

"我们可以在前期做好设计和规划后,再开始开发啊,这样就能减少出现渣渣代码的可能性。"

确实,我承认这么做可以减少出现烂代码的可能性。然而,大家都知道,需求是一个善变的小姑娘,一天一个样。你再牛逼的设计,也顶不住需求的频繁变更啊。
其实,在某些时候,没有必要把代码当成一种艺术品,应该要能够接受适当程度的瑕疵。只要到点可以跑,可以追踪BUG,基本能交差就成。我相信,给任何一个人足够的时间,都能把代码变成一个艺术品,但是这有什么用。等你弄好,黄花菜都凉了。迅速上线,能挣到钱才是重点啊,才是你的KPI体现啊。很多优秀的代码,是给了重构的时间的,大牛们都是一边写一边重构的。如果不给时间,大牛们也写不出优秀的代码的。换句话说,你完全可以后面挣到钱以后,再把原来的架构推导重来。
我们要明白,写代码是为了挣钱,而不是为了雕琢一个所谓的艺术品。如果将写优秀代码比作一种情怀,请问

情怀重要,还是金钱重要?情怀能让你买房么。

OK,弄清楚主次,挣钱才是硬道理。

审视自己

这个地方,我希望大家好好审视一下自己,因为重点不是

大公司为什么还在采用过时的技术

而是

你为什么只能进采用过时技术的公司

其实,每一个公司都有一个所谓的标杆部门,这个部门的技术通常是拿的出手的。可是,这样的部门,通常是最难进的。所以啊,你要去拿的出手的部门,好好努力吧,少年们。
OK,到这里,大家好好思考一下吧。大家有什么问题,也可以给我留言。

总结

啰里啰唆的扯了一堆,希望大家看完以后,能有所收获。工作中,不断的提升自己,少一些抱怨吧。

转载于:https://www.cnblogs.com/rjzheng/p/9463577.html

【原创】大公司为什么还在采用过时的技术相关推荐

  1. 大公司为什么还在采用过时的技术

    2019独角兽企业重金招聘Python工程师标准>>> 大公司为什么还在采用过时的技术 背景 本文出自一朋友给我的提问,于是博主呕心沥血给他花式洗脑了几个小时.忽然发现,应该还有许多 ...

  2. 为什么大公司还在采用过时的技术?

    作者:孤独烟,中国平安银行后端工程师 来自:http://rjzheng.cnblogs.com/ 0 背景 本文出自一朋友给我的提问,于是博主呕心沥血给他花式洗脑了几个小时.忽然发现,应该还有许多朋 ...

  3. MGC Group大公司已布局区块链食品供应链技术领域

    食物供应链领域有着极其复杂的流程.食物供应链领域包括了农民.仓储公司.运输公司.分销商和零售店面等多方参与.如今各个机构或公司试图使用区块链,追溯到食品问题的源头,监管整个供应链的流程. 根据CCN消 ...

  4. 北京国际大数据交易所成立,采用区块链技术分离数据所有权

    据北京日报消息,3月31日上午,北京国际大数据交易所成立发布会举行.由北京金融控股集团有限公司发起,注册成立了"北京国际大数据交易有限公司",作为北京国际大数据交易所的运营主体.股 ...

  5. 为什么说大公司不是天堂,里面有哪些坑?

    大家好. 今天来聊聊大公司.也算是给漫天鼓吹大公司的氛围唱个反调,说说大公司里面有哪些问题,为什么没有大家想的那么好. 内容可能有点多,我们一个一个来说. 考核压力 大家可能或多或少地听过一些KPI. ...

  6. 在小公司、中等规模公司和大公司工作有什么不同

    楼主是一名刚刚大学毕业的毕业生,毕业后,身边去工作的同学,有的去了小公司,有的去了中等规模公司,有的去了大公司.那去小公司.中等规模公司和大公司工作有什么不同呢? 大多数小公司都是创业公司,由于人数有 ...

  7. 也谈大公司病1——正确是最大的错误

    序 多数大公司大了后都不可避免会遇到大公司病,机构臃肿,行动缓慢,协调困难,思维僵化.为此,大公司采取了各种各样的做法,建设企业文化,调整组织机构,更换领导人,加强流程规范,建立特区,建立快捷通道,引 ...

  8. 去了大公司就一定能学到很牛的技术么?

    有同学说,去支付宝面试移动开发,面试官问了几个 iOS 底层问题,没回答上来,面试的人说,这些技术问题来了支付宝就能学到,内部很多技术文档- 喜欢技术的人听起来难免心痒难当砰然心动. 这种说辞就是忽悠 ...

  9. 也谈大公司病3——治大国不是烹小鲜

    2019独角兽企业重金招聘Python工程师标准>>> 序 多 数大公司大了后都不可避免会遇到大公司病,机构臃肿,行动缓慢,协调困难,思维僵化.为此,大公司采取了各种各样的做法,建设 ...

最新文章

  1. 吴恩达深度学习笔记(109)-循环神经网络模型(RNN介绍)
  2. 漫画:什么是“低代码”开发平台?
  3. 阿里P7面试官告诉你:3-5年以上的Android开发如何深入进阶?Android中高级开发必须掌握哪些?
  4. c# 三种异步编程模型EAP(*)、 APM(*)和 TPL
  5. Android面试收集录4 Fragment详解
  6. 如何用法向量求点到平面距离_无论大考小考,无论校考,还是联考,老师钟爱的题型“空间距离”...
  7. 批量插入图片并自动排版——《超级处理器》应用
  8. FastStone Capture滚动截屏丢失行解决办法
  9. 鸟哥的linux的私房菜基础学习篇,鸟哥的Linux私房菜 基础学习篇-鸟哥.pdf
  10. WIN10系统微软拼音输入法无法输入中文
  11. 服务器上运行python
  12. VMWare共享文件夹的使用
  13. 华为防火墙NAT分类(源地址转换和目标地址转换)
  14. 经典兔子问题(又名斐波那契数列)
  15. windows11便签在哪里,win11怎么新建便签
  16. 日本房地产泡沫 Japan Real Estate Bubble
  17. Java程序员的春天!java第三方线程池
  18. hangfire入门
  19. kali linux查看版本,kali linux 系统版本的查看方法
  20. dz diy html用户信息,Discuz教程:个人资料设置只显示用户名的解决方法

热门文章

  1. 华为IoT平台NB编解码插件开发详细教程【上篇】
  2. #pragma pack(push,1)与#pragma pack(1)的区别
  3. linux进程和计划任务,linux进程和计划任务
  4. javascript二维数组转置_精通Excel数组公式010:认识数组函数:TRANSPOSE、MODE.MULT和TREND...
  5. ue4导入倾斜摄影_倾斜摄影建模干货|还怕搞不定CC空三?这里只要5分钟……
  6. 2019 CCPC-Wannafly Winter Camp Div2 Day1
  7. Hexo自定义页面的方法
  8. JavaScript 回调函数中的 return false 问题
  9. 【leetcode】ZigZag Conversion
  10. 再看数据库——(2)视图