自述:为何一部分大公司还在采用过期的技术,做为技术人而言该去大公司仍是小公司

背景

本文出自一朋友给个人提问,因而博主呕心沥血给他花式洗脑了几个小时。突然发现,应该还有许多朋友有一样的疑问。因此整理成文。程序员

许多刚毕业的程序员朋友,都有一个执念,想要进那种规模大一点的公司、上市的、业内有名的最好。面试

为何你们都想去大公司?编程

由于不少人以为,公司大一点,正规一点。开发技术应该不错,应该与时俱进,流程应该会规范一些。说到这里,依然有这种想法的朋友,请握个爪。性能优化

然而,当他刷完什么《剑指OFFER》《编程之美》,废了好大一番功夫进去之后,却发现彻底和本身想的不同。他发现他所在的大公司:服务器

(1)代码混乱

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

(2)开发流程混乱

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

(3)技术落后

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

以上种种,你们若是深有感触,请再次握个爪。那么,为何会这样呢?架构

原因

人员层次

但凡在大厂工做几年的老员工,有没有这样一个体会,身边的牛逼老员工基本都跑了,剩下来的员工基本都是比较平庸的。
大部分人在工做中,其实都处在一种重复劳动的状态,也就是所谓的拧螺丝工做,技术水平得不到提升。那么在这种工做性质之下,会诞生两类人:并发

(1)平庸的人框架

这类人在工做中知足于能完成需求便可,对代码的美丑并不关心。正所谓eclipse

码不在烂,能跑就行。分布式

固然,这类人并非缺少提高本身技术的能力,而是因为惰性,没有明确的规划,缺少提高技能的意识,致使时光匆匆流走,想要跳槽却没地方收留,一不当心,这类人就成为了老员工。说到这里,赶忙回忆一下本身,是否是整天拿什么没时间当理由,而后明日复明日,当心成为老员工。

另外,大公司基本不会裁员,而手上的技术水平已经能应付工做。就算努力学了一堆新技术,也没有用武之地,因而这类人就能安然自得的继续过下去。

你们能够对比一下你身边的同事,一个是自毕业的时候就在这家公司熬了十年的,一个是十年间在三四家公司呆过的。请问哪个水平更高呢?

(2)牛逼的人

这类人在工做中,通常有着较强的责任心,且对代码有着很高的追求,对问题有着独特的看法,回去也会不断的学习,提高本身。然而这类人的所学,一般没有发挥的空间。好比,可能出现下面的对话

程序员A:”老王,你这个地方不能这么写,会出现XXX的BUG的。”

老王:”你懂什么,公司创立的时候,我就在这个项目组了,就该这么写。”

因而这类人的所学,并无啥发挥空间。就算有发挥的空间,过不了多久,他也会离职。由于在IT圈,只有经过跳槽才能获得高薪。这点,咱们必须明白,大厂都有一套严格的薪水涨幅制度,并不会由于你作出了特别牛逼的贡献,给你月薪忽然翻了一倍。并且,若是给你涨了薪水,你公司的其余人呢,他们涨仍是不涨?因此,不少公司宁愿给一个新员工高薪,却不肯意给老员工提工资,就是这个道理。

所以,这类牛逼的人以为公司现有的薪资匹配不上本身的能力后,就会跑路的。你们在IT圈会听到一个说法

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

因此,当你发现本身身边没有牛逼的大神,不要惊讶,由于大神都跑路了。

重构成本

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

老王:”谁让你乱改这个模块代码的,知不知道,你这么改致使了XX模块不能用了。”

程序员A:“我。。。。只是想让代码看起来更好看而已。”

老王:”你觉得我不知道这么写很挫么,乱改出问题了,你抗么。赶忙改回去。”

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

再打一个比方,

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

所以做为技术人,咱们要时刻给本身充电,而不是等待着公司的被动选择,说到这里顺便给你们推荐一个Java方面的交流学习社区:586446657,里面不只能够交流讨论,还有面试经验分享以及免费的资料下载,包括Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。相信对于已经工做和遇到技术瓶颈的码友,在这个群里会有你须要的内容。

因此,从重构成本上来看,又提升了。

另外,不少中层的领导,基本都是守着本身的一亩三分地,不求无功,但求无过。所谓祖传代码的出现,实际上是整个部门的责任。你一我的重构的开开心心了,后续就可能整个部门一块儿加班,谁去作这种吃力不讨好的事情。并且最重要的是,在技术leader水平和开发流程没有改变的状况下,你的新代码过不了几个月又会变成所谓的祖传代码。

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

公司性质

其实,大部分的公司都是重视业务价值,而看不到技术价值

有些大厂存在一个颇有趣的现象,产品经理的薪资比技术人员的薪资还高。由于他们以为,无外乎是增删改嘛,找点应届生就能做了,不必花大价钱请牛逼的人来写。

因而呢,不少中层是所谓的没写过代码的业务员,又或者是没撸过一行的代码的产品经理,而后就很搞笑了,会出现以下情形

产品经理:”这个功能,大家看一下要多久才能实现。”

研发人员:”大概下个月十五左右吧。”

产品经理:”什么!要这么久。就初一,下个月初一,必定要上。”

研发人员:”我!!!!这个功能XX地方比较复杂,须要点时间。”

产品经理:”你当我傻么,就是if else。。能够实现的,怎么要这么久!” 研发人员:”我!!!”

产品经理:”就下个月初一了,作不出来,公司的损失你背仍是我背!”

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

“咱们能够在前期作好设计和规划后,再开始开发啊,这样就能减小出现渣渣代码的可能性。”

确实,我认可这么作能够减小出现烂代码的可能性。然而,你们都知道,需求是一个善变的小姑娘,一天一个样。你再牛逼的设计,也顶不住需求的频繁变动啊。

其实,在某些时候,没有必要把代码当成一种艺术品,应该要可以接受适当程度的瑕疵。只要到点能够跑,能够追踪BUG,基本能交差就成。我相信,给任何一我的足够的时间,都能把代码变成一个艺术品,可是这有什么用。等你弄好,黄花菜都凉了。迅速上线,能挣到钱才是重点啊,才是你的KPI体现啊。不少优秀的代码,是给了重构的时间的,大牛们都是一边写一边重构的。若是不给时间,大牛们也写不出优秀的代码的。换句话说,你彻底能够后面挣到钱之后,再把原来的架构推导重来。

咱们要明白,写代码是为了挣钱,而不是为了雕琢一个所谓的艺术品。若是将写优秀代码比做一种情怀,请问

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

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

审视本身

这个地方,我但愿你们好好审视一下本身,由于重点不是

大公司为何还在采用过期的技术

而是

你为何只能进采用过期技术的公司

其实,每个公司都有一个所谓的标杆部门,这个部门的技术一般是拿的出手的。但是,这样的部门,一般是最难进的。因此啊,你要去拿的出手的部门,好好努力吧,少年们。

OK,到这里,你们好好思考一下吧。你们有什么问题,也能够给我留言。

总结

啰里啰唆的扯了一堆,但愿你们看完之后,能有所收获。工做中,不断的提高本身,少一些抱怨吧

相关文章
相关标签/搜索