简单算个帐:近十多年来,中国的各种大学每年有30万计算机相关专业毕业生,加上其他行业的转入,编程岗位每年新增超过20万人,全国的规模大约300万。平均每人年15万成本,大约需要4500亿成本。市场有多大呢?手机万亿级,互联网万亿级,游戏万亿,企业服务市场万亿。至于不足的那部分在哪里呢?中国之外, 还有很多国家。
而IT和编程这种转移成本几乎为零的行业,在世界上任何一个角落都可以占领。以美国为例, 它本国市场规模比中国还大, 却也占领了世界上其它国家包括中国的大部分市场。美国大约有700-800万程序员,编程工资相当于中国的2-3倍,原因正是因为我们不能自给。世界范围来看, 把上面的市场单位换成美元就好了。
美国互联网大公司一个高级工程师能解决的问题,在中国互联网大公司需要一个「带人的高级工程师」解决,同样的复杂度一边只需要一个人但另外一边需要一个小团队(10 个人左右)。当然这种事情没有绝对的对与错之分,只是 trade off 而已。就算是在美国互联网大公司,我们也会遇到人才培养的天花板,也会说级别大于 N 的牛人好难培养更多呢,有些问题只能通过团队来解决。在中国,这个 N 更低。但其实哪里的解决方式都是一样的,找不到足够牛的人能独立解决这个问题,那就增加人数吧。如果人不值钱,还可以让多个团队竞争来做,就算每一个团队成功的概率不高,但至少有一个成功的概率可以很高。只要人够便宜,或者只要问题足够值钱,数字游戏可以玩。
从培训机构的角度看,它们肯定会宣扬中国程序员永远是不饱和状态,很明显,这样他们才能不断招进学员。千禧年前后互联网泡沫破裂,那才真叫一个惨,不知多少搞互联网的失业转业。那时你想进阿里巴巴,比现在要简单100倍。如今变成了卖方市场,推波助澜,何乐而不为?
中国只有一线城市才有大的互联网企业,北上广深这些城市的互联网公司又有多少,而每年求职的程序员又有多少,我想大家心里也都有点数。从技术门槛角度看,开发者的门槛其实是不断降低的。十年前的程序员,什么逻辑都得自己写,轮子全靠自己造,没有很高的数学水平可以说是干不成程序员的。到了2018年,国内的技术社区已经很不错,再小的轮子都有人给你造好了,你甚至不需要一点算法知识就可以搭一套商业网站+ios+安卓体系。真的是阿猫阿狗都能上来倒腾几下。
从程序员个人角度看,现在竞争有多激烈就能反应人才是否过剩。应届清北想进阿里腾讯都很难很难,而没有大厂经验的你,工作几年想跳槽都无处可去。人才涌入必定导致竞争激烈,标准提高。
程序员已经成为世界上一大工种,全世界有几千万,中国有多少在职程序员(或软件行业密切相关人员)?csdn注册会员超过2500万 (csdn网站绝大部分内容都是和软件开发相关的),其中活跃用户超过800万(3个月登陆的),按会员统计比例:30%是学生,60%是和一线开发相关人员,500万左右.年龄主要集中在20-40,平均每年需求有500/20 = 25万。
全国有770所的高校开设计算机专业,看着数目不少,假定每个学校每年毕业两百人,总共只能提供15万毕业生。由以上非常粗略的估计可见高校计算机专业毕业生数量与需求的缺口很大,我的身边不乏二本、三本甚至专科出来的半路出家的程序员,更有甚者,零基础去培训班上了几个月,也在从事此行业。有人说程序员的水平服从正态分布,我觉得倒更像是金字塔形:技术差到令人发指比比皆是,而真正的高手凤毛麟角。人工智能的逐渐成熟和普及,注定淘汰大多数低端程序员,但是高手永远都是最稀缺的。
因为当程序员门槛低,相对其它职业,收入又高, 所以大批人往这个行业里跳,像一些普通的行业,如护士、银行、会计、老师这类, 是必须得老老实实的学习考试,或者还需要特定环境的历练才可以上岗, 不然的话, 还真的干不了。 更别说是医生律师或者金融这些高端行业了, 不得念个博士硕士的, 而且还要是名校毕业才能吃的开。当程序员呢,基本没什么硬性门槛,不用学历,不用考试 ,不用证书,只要你会就可以了。 换句话说就是,只要不是太笨,有点学习能力, 对写代码又感兴趣, 搞台电脑,买几本书,能静下心来学几个月, 就有资格上岗了。至于收入,在所有行业里算是拔尖了吧, 不说BAT, 就算是三流小公司开出的工资, 也足够吓到其它行业的从业者了。
赚钱容易,干的人自然也就多了。就说现在比较火的前端开发好了,只需要会用html和css能把一张网页画出来,连JS都不用会, 就足够找一份收入还算体面的工作了,这特么是多么容易的一件事情。如果会JS, 那就已经能撑起一个小公司的所有前端业务了, 这样就算不能混的出色, 也不至于寒碜吧。做后端的门槛稍微比前端高一些, 但也只要会一门后端语言,会使用关系数据库, 再加上会html,js和css都不用会, 这样就有当一个后端工程师的资格了, 收入还高, 多么简单多么幸福的一件事情。
当程序员, 确切的说是码农, 是一个见钱最快的职业, 这也就导致现在干这个的特别多,各种培训机构也满天飞。当然, 程序员也是有分水岭的, 这取决于掌握的知识技能的多少。也有一些比较精深的知识,如数据结构算法、编译原理、操作系统、计算机网络、面向对象等这些, 如果能掌握,会让一个程序员的工作效率和质量有巨大的提高 , 也有了向高阶程序员进化了资格 。 然而, 对于一份普通的写代码的工作, 这些东西最多只能算是绵上添花, 掌握与不掌握, 对于饭碗没有本质的影响 。 假如把掌握这些知识作为程序员的入门标准, 那么程序员的数量估计会少一大半。不过话说回来, 不应该说程序员的数量多, 而是整个IT行业的从业人员多, 像做设计、产品、运营这方面的人, 数量不比程序员少吧。
原文发布时间为:2018-09-25