另一个角度谈谈程序员是不是青春饭

前几天部门分享,有个同事分享了并发编程模型相关的知识(其实就是多线程那一套东西),年轻的程序员听的呆若木鸡。 由此,并结合我这些年的做技术经历,我想了一些,不成体系,随便写写。


往前推 10 年,一个程序员写一个内存池,或者线程池,应该是家常便饭的;而 10 年后的程序员会觉得这些东西,太过底层了, 或者太过理论化了。技术在发展,程序员们变菜了吗?并不是,而是关注的点不再一样了。

10 年的跨度有点大了,我只说一下自己从上大学开始学技术、后来做技术到现在这七八年的一些感受。

在我上大学那会,学习技术主要还是靠看书,还有些人看视频教程。比如说学 C++,Java,还是找一些经典的书学习, 通常称之为经典的都是很好的技术书,我几乎看完了所有 C/C++ 经典的书。工作写代码造轮子的现象比较明显,自己会写很多的库,测试用例啥的。

近三四年,我不用 C++ 了,用 JavaScript 写前端,Python/Go 写后端,框架也一直在变,基本上都是需要什么技术、框架,拿过来就用。对于这些技术,我没有了解的很深入,但确实做了很多事情。造轮子的事情,基本上没干过。

为什么会有这么大的转变,除了技术在成长这种主观因素之外,很客观的因素是做技术的环境不一样了,软硬件在不断的发展。

开源会整个技术圈的冲击太大,社区的力量太强大了。现在无论是 JavaScript 还是 Python,还是 Go,有了 Github 之后,第三方 package 不止丰富,而且优质。需要的库拿过来直接用,几乎不用担心质量问题。

还有,在开源力量的推动下,新技术发展也很快,配套的文档和范例非常丰富,基本上不需要看书(也没有)。

做技术的人,面对的东西不再一样了。曾经我们需要面对的问题是,如何去找学习资料;而现在他们要面对的问题是怎么从很多的学习资料中选择最好的。

技术按照这个节奏发展,到底是不是一件好事?

从广义上来讲,当然是一件好事,编程本身逐渐接近本质,他成为一个更大众的工具,人们更需要关心的是 idea,而不是技术上怎么实现。 我记得《黑客与画家》里面有类似意思的一句话,一个好的编程语言,应该是允许程序员随意涂改的。 起初我是不明白这句话,因为在观念里我是有软硬件性能的考量,但随着硬件的发展,内存越来越大,CPU 越来越快之后,我开始觉得这句话是有道理的, 编程应该是一种简单的工具,是手段,我们应该去关心上层的东西,而不是底层的实现。

但是对个人来讲,这无疑是一件坏事,又或者说对于做技术的人是一大挑战。技术越来越普及,曾经擅长的东西,现在别人从网站搜一搜可以拿过来就用。曾经付出的努力,除了作为茶语饭口的吹资,想象不到其他的用处。 年轻人会越来越厉害,是因为我们一开始面对的是做技术,而他们面对的则直接是做事。

而无论对于资深的程序员,还是年轻的程序员,他们都将面对的一件事是: 编程越来越不值钱了,你所擅长的东西很快就被会淘汰

倒退五年,一线的业务程序的工资是高于后台的技术人员的(运维,中间件,DBA),而现在几乎反过来了。且不说中后台理念, 随着技术组件化、产品组件化,微服务架构下,一线业务程序做的事情更是无聊的拼凑来实现产品经理所需要的功能即可, 技术难度向中后台偏向,那么中后台程序是不是会越来越吃香了呢?短期来看是的,长期来看他们好不到哪里去,只不过是工具成熟度的问题。

尽管如此,软件工程相比传统行业的工程,还是落后很多,但是长期来看会逐步趋近,无论是技术还是运营,无论身处企业大小, 最终都会沦为流水线中的一个环节,就像建筑工地的工人一样。

某种意义上,我们这一代程序员也真的就是青春饭而已。


每一代人总有每一代人的幸福和困局。

任何行业出现淘汰第一批永远是金字塔底部的人,我们要么力争上游,要么等着被淘汰。

Date: 2019-09-27 15:48:08

Author: JerryZhang