我所理解的程序员内卷化。。
↓
工程师时代:PC/互联网时代,专业院校培养出身,各种办公软件 /应用软件 /中间件。
↓
码农时代:移动快餐时代,培训上岗 /全民编程,各种网页 /App/小程序 /小游戏。
解决方案?:提高门槛,提高身份。
解决方案?:提高门槛,提高身份。
但很难说做这些就不内卷…
你看 Unix 这么传奇只是因为 Bell lab 把全美精英都扔到一起放羊,想做啥随便。是这种反内卷的温室早就了这些传奇。
现在已经没有 AT&T 那种超级公司了,每个公司都有很强的忧患意识,必须对市场作出反应,而非反内卷。
而且上面这三个时代的划分,一个是代表的计算机的发展历程,从底向上,以及技术不断的推陈出新。更重要的是,为什么 Android 、小程序,这些平台会使用相对成熟化的语言,出现更完备的 IDE 和框架。不是为了吸引更多人参与其中,共建生态,只是现在生态几乎饱和,没有增量,导致内部竞争加剧(比起其他传统工程师,已经算好得多的)。
再一个我认为挺有意思的是,13 、14 年大家老嘲笑的是“我有一个 idea,就缺一个程序员”;现在 V2EX 上各种副业群等更多的情况是,“大家有什么 idea,我负责开发”。由于高度的细化分工,一个本身创作性的工作,有点变为了制作。缺少一定的思考,能想到的实现自我价值的是我来开发,没法自主去做一些事情(包括我也是一样,不针对大家)。
术业有专攻的代价就是,如果外面的蛋糕做不大,那大家只能看谁钻的更深了(甚至还有体力)。
如果软件卖不出价,那么,其实还是 免费软件+卖广告,就这一个路子是大众路子。business application 方面 主要的就是 Windows 平台的商业软件开发,它在中国的惨淡情况就说明了一切。
2. 工程化 带来的 技术天花板。
现在的程序员写代码会比原来的程序员强,因为他们有强大的基础库。springboot 写出来的 最简单的项目, 在 2002 年 你想写出来 都是不太可能的。 因为 你需要实现几十万行代码。 就算你在 2002 年就能做到, 到了今天 也没什么稀奇的了,刚刚毕业的程序员 随便就弄出来了, 你写的那些都白费了。 当然我这里假设你自己写的没有 springboot 的写得好。 如果你的更好,那么我们会知道你写的库 而不是 springboot. 看到了吗 核心的原因, 你比新程序员更好, 但是如果都是 springboot 下面写,你反而没有任何优势了。 200 年前 小李飞刀 刀无虚发, 但是 200 年后,小李和我一起学习使用 ak47. 他是个 200 年的老人,同样学习 开枪 点火 瞄准。他的经验其实就是失效了。 有人说 我会比新人学得快,学得好。我认为这话有道理,但是不决定。我的经验 工作 3 年后的人,学习新技术和你一样快,没什么差别。
还是我曾经举过的例子, 大家都学 js, 你搞了 5 年 新人学 3 年, 还有一个 1 年菜鸟, 一起做一个特效,支持不同的浏览器, 没有 JQ,那么大概率 你的比 新人的强 新人的比菜鸟的好。 如果都用 jq, 那么效果 大概率 比你直接 JS 的作品好, 你和新人都用 jq 的作品水平应该差不多, 而菜鸟的可能差一点。 但是如果都改成 vue? 那么很可能 你 新人 菜鸟 做出来的作品水平是差不多的。 因为 这个框架让大家使用起来更简单了。 然后新人能加班。
3 开源带来的马太效应
然后就是马太效应, 开源导致了只有头部的项目才会被关注, 如果你在一家公司 使用自己开发的某些库,在这家公司里 你是有技术壁垒的。离开以后你就完全没有价值 了。在大公司里开发很多年大项目的人对这个会很有体会,他们在大公司里的某个项目 可能完全非开源,有很复杂的技术壁垒。但是如果离开了这个公司,他的经验就直接归 0. 要适应社会,那么他只能去学习那些头部的开源技术,这些技术其实就是另一套壁垒而已。所以 老程序员一旦离开原有公司 可能就永远找不到新工作了。因为他过去的经验没有价值。只有学开源头部软件才能活下去。 就像你说 我写了 5 年纯 JS, 但是不会 JQ VUE 我写了 JAVA 但是不会 spring. 你觉得能找到工作的可能有多大?公司没这个成本来试错。
还有些经验是很难直接学到的,这些经验就值钱了。比如 你管理了 QQ 核心服务器的架构,支付宝的设计。这种人是暂时没内卷可能。但是随着开课越来越多,框架越来越成熟,以后随便一个人就能搭建一个支付宝也不是没有可能。