程序员的上下限

95 阅读4分钟

什么是程序员?

码农、程序猿、程序媛:使用 程序实现价值。

程序=数据+算法

软件=程序+软件工程

程序员=工程师?

添加图片注释,不超过 140 字(可选)

程序员,怎么说呢,上限很高,下限很底,确实有一些个没什么难度的程序员,例如写写python 写写前端 JavaScript等。但真正计算机科学还是有很大学问,很高难度的。

面试造火箭,工作拧螺丝

会什么是你的下限,能够会什么是你的上限

越底层的东西越决定上限

因为程序员这个工作上下限差距太大了,上限可以做出ChatGPT, 发明比特币,写浏览器,IDE,创造艺术性的游戏。

下限可以换名VSCODE号称自主研发, 可以把密码明文记录到网页前端, 可以把二维码作为图片压缩传输后沾沾自喜认为取得巨大技术突破。

但在外行看起来,似乎看不出太大区别,只能看到表面功能能不能跑,不管是自己写的,还是白嫖改名的还是如何来的。好比当年一堆外行把熊猫烧香作者碰上天了,殊不知只是个病毒搬运工,找工作碰壁还怪社会浪费天才。

添加图片注释,不超过 140 字(可选)

就程序员职业本身来说。它是从有难度开始,然后没有难度,然后再有难度,越来越难这样变化的。

最开始的有难度,是人要从自然思维,转变成程序思维,这是一个难度。程序思维不单单是线性,死板这种行外的刻板印象,更重要的是形式逻辑,抽象,意外处理等非“人类”的思考方法。转变思考方法,是很难的,很多人无法学上手,就是在这一步上无法突破。

突破了人和编译器之间的界限以后,就开始没有难度。也就是初级到中级程序员一直抱怨疑惑的“总是重复劳动,增删改查”。这是因为在这个阶段,尚未接触到大规模的软件工程和软件架构。在没有大量接触到软件工程和软件架构之前,程序员囚困于“编码”。注意,编码只是编程的一个子集,纯粹地代码编写,是没有难度的,只需要记住语言的语法特征就可以了。

突然了语言以后,会面临软件工程和软件架构的难度,这个阶段开始,直到退休,难度是无限上行的,越来越难。其原因不在于单一内容的深度,而在于整个软件行业的广度和更新速度,在于内容的无限复杂化。比如很多QQ群“大牛”都会吹,软件架构最难的就是高并发,动不动几百万几亿并发如何处理。但是,在软件架构当中,高并发,最多只占其中的五分之一,其他的比如高可用,灾备,安全性等等,都随着软件本身的规模而极具放大。这种难度,是没有上限的。而不理解这种无上限的难度的QQ群“大牛”,就会在掌握了一门语言的语法之后,认为整个软件世界是没有难度的。

也就是说,无知者无畏。

本质上,写程序是门创造性的工作

你拥有了比画笔,乐器更强大的创作工具,这个工具可以画画,播动画,放音乐,自动控制机械干活,治病,打架,自动智能分析决策, 编辑基因,甚至创造生命无所不能。几乎没有比这更自由的创作工具了。

一些人认为程序员只是纯粹打工,把别人交给的明确需求原封不动实现出来。但这与机械加工,木工本质不同的是,掌握各专业知识的人并不知道要如何通过程序把专业知识通过程序呈现,不懂写程序是无法变成明确的需求,交给程序员承接。而需要掌握知识的人本身也成为程序员,或者程序员掌握了各专业知识,结合起来才能发挥创造力把创新产品做出来。

比如最近出圈的几个技术和应用,比特币区块链,ChatGPT,云计算云游戏,VR,UE5等等有多少是从计算机以外的知识上创新,是由外行主导程序员协助的呢?我觉得几乎没有,而基本都是对已有技术的组合,架构的创新和应用,都是技术主导的

所以程序员本身没有多大意义,只有结合了各个专业知识,才能真正发挥出强大威力。

添加图片注释,不超过 140 字(可选)

添加图片注释,不超过 140 字(可选)

本文使用 文章同步助手 同步