我认为 IT 行业可以分为 互联网 和 传统软件 两个行业,虽然在外行人看来都是搞 IT 的,但业内人士都知道,这其中的差别可谓是天差地远。
互联网行业目前主要集中在一线大城市,产品面向全国乃至全球用户,有着庞大的用户基数。而在三线城市,主要的还是传统软件企业。
互联网企业的压力要比传统软件企业大的多,网上常说的,35 岁是 IT 行业的一道坎,我觉得,这主要是针对互联网企业的。而我所在的传统软件行业,这种现象要好很多。我今年正好 35 岁,依然在一线做着开发工作,身边认识的人,多数都是 30 - 35 之间的人,也都还在一线码着。
在传统软件行业,对技术的要求其实很低,高性能基本不会涉及到,因为用户数量就那么点,TPS 都不用考虑。高可用大多数情况也不会涉及到,服务器停个 2 小时没啥关系,即便是有些场景,要求高可用,一般也就是双机热备就完事了。可扩展性,理论上是有要求的,实际上还不是前人挖坑后人填?这些公司面对的最大的技术问题恐怕还是业务的复杂性以及客户的认知,很多客户认为软件就是啥都能实现的,所以需求他们想怎么提就怎么提。
Code Review?大多数公司是没有的,老板也不关心代码的质量如何,验收能过就行。开发人员每天焦头烂额的都是满足客户各种无理的需求,以及无休止的需求变动。从上到下,谁也不会去关心你的代码是怎么写的。就算你变量定义成 fuck1、fuck2... 也无所谓。(别笑,我真见过,还见过以球员名字命名的,以指环王人物命名的...)
还曾经见到过一个工作了一两年的程序员,尽然不知道数据库表的关联查询,分别查询了两张表的数据,在代码中用 for 循环进行关联的。就这样的代码,一样在生产线上跑着,还跑了一年多。
几年前,一个朋友跟我说,他每天都在做 CRUD(增删改查),很无聊,干了几年连 MVC 都不会,想换家用 MVC 的公司,跟着做几个项目学学。后来他真换了家公司,做了几个 MVC 的项目。然后跟我说,MVC 是会一点了,可以应对目前的需求写写了,但发现,自己依然每天在做 CRUD。
这大概是很多传统 IT 公司程序员的写照,写了很多年,水平依然平平,因为“高级”点的技术,根本用不到,甚至永远都用不到。就算有些人原本是好学的,在这种环境中,慢慢的也就没什么学习的激情了,尤其是结婚以后,有家庭有孩子,就更没有时间来研究这些工作中用不到的东西了。更何况,即便你学了很多东西,没有真正的实战,那也只能是个纸上谈兵的水平,而且时间一长就忘得一干二净。
在[路人甲]的星球中见到他说的一句话,大意是:如果面试的时候,面试官都不问你数据结构的,那么要当心了,这公司是不是把你当码农用的。[大飞]哥在他的星球中写道:程序员可以分为两种,码农和程序员。码农指从事一些重复的工作(例如 CRUD),无需太高的技术含量,依靠出卖体力赚钱。而程序员是需要有创造力的,像一个艺术家。
我工作 10 年,大部分时间都待在了两家公司,一家待了 4 年,现在的公司待了快 5 年了。但好歹也是面试过十几家公司的,还真没有哪家公司问过我数据结构的问题,包括有些公司会做笔试,笔试中也没有……做的项目虽然各不相同,但论到本质,我觉得,也就 CRUD 四个字而已。
我想,这大概就是在三线小城,我所处的传统型软件公司,35 岁不像网上很多文章说的那样是一道大坎的原因吧。
在这个行业时间久了,也会有一些朋友来问我,有些是孩子要高考了,问这个行业将来发展如何,有些是孩子毕业了工作不理想,想转入这个行业,问有没有可能。一般情况下,如果是女孩子,我都会劝退,因为这行业实在是太苦了,别说是 996 的互联网行业,在传统软件行业,加班一样的凶,技术含量低也架不住客户三天改一次需求啊,架不住老板觉得啥需求都简单分分钟搞定。男孩子,我都极力的劝说他们的家长,不管孩子是科班出生还是培训班出来的,都让孩子去北上广拼搏上 5 年,一则磨练技术开阔眼界,为将来安身立命打下坚实基础,二则,毕竟钱多。(很多父母尤其是爷爷奶奶,都舍不得孩子离家。)
IT 注定是一个激情的行业,一个拼搏的行业,所以,如果有梦想,就离开安逸区吧。