程序员这个工作上下限差距太大了,上限可以做出管理火箭卫星的系统探索火星、比特币、ChatGPT等等超乎想象的作品,写编辑器,IDE,创造艺术性的游戏。
下限可以换名vscode号称自主研发, 可以把密码明文记录到网页前端, 可以把二维码作为图片压缩传输后沾沾自喜认为取得巨大技术突破。
但在外行看起来,似乎看不出太大区别,只能看到表面功能能不能跑,不管是自己写的,还是白嫖改名的还是如何来的。好比当年一堆外行把熊猫烧香作者捧上天,殊不知只是个病毒搬运工,找工作碰壁还怪社会浪费天才。
本质上,写程序是门创造性的工作,你拥有了比画笔,乐器更强大的创作工具,这个工具可以画画,播动画,放音乐,自动控制机械干活,治病,打架,自动智能分析决策, 编辑基因,甚至创造生命无所不能。几乎没有比这更自由的创作工具了。
一些人认为程序员只是纯粹打工,把别人交给的明确需求原封不动实现出来。但这与机械加工,木工本质不同的是,掌握各专业知识的人并不知道要如何通过程序把专业知识通过程序呈现,不懂写程序是无法变成明确的需求,交给程序员承接。而需要掌握知识的人本身也成为程序员,或者程序员掌握了各专业知识,结合起来才能发挥创造力把创新产品做出来。
比如最近出圈的几个技术和应用,比特币区块链,ChatGPT,云计算云游戏,VR,UE5等等有多少是从计算机以外的知识上创新,是由外行主导程序员协助的呢?我觉得几乎没有,而基本都是对已有技术的组合,架构的创新和应用,都是技术主导的
所以程序员本身没有多大意义,只有结合了各个专业知识,才能真正发挥出强大威力。
有几点原因:1、大部分公司没有太复杂的业务场景,不需要技术太好的程序员;2、要价比较低,今年我们招人,甚至有人愿意3k的价格来搞,就这个价位招来不干程序,干点杂活也划算。何况培养一下还能写点代码,实在不行还能干点运维的活;3、一个资深程序员+几个菜鸟程序员+codereview 效率可以≈2个资深程序员,但是性价比要更高;4、有水货,试用期直接开了,我见过我们大学时候培训机构出来的20个人,其中15个人第一份工作没超过3个月,剩下的5个人只有2个超过一年,一半多转行干测试,产品,运维的工作,只有少部分继续干程序员;5、不可否认,即便是培训机构出身也会有一些优秀的人(ps:踏实肯干,能自主学习的人,放在哪里都会优秀);6、招人的时候会经量必开非本专业的人,并不是说这部分人写代码不行,而是会缺乏一些计算机常识,例如TCP和UDP基本原理都不了解,为了追求效率使用UDP协议通信等;7、有些公司并不是想招一个优秀的人,只是想找一个能干活的人,甚至A部门用人,压根A部门老大参与不到招聘流程,而是招聘好后直接塞到用人部门(成本低,至于人好不好用,人给你了,东西你必须做出来),如果我为我的项目招人,学历、履历、能力、人品、性格、技术都会进行考察,而且会进行严格背调;程序员也是个普通工作而已,其实大部分人就喷学历,说白了。985毕业的搞程序员的,其实7层也是水货。并没有大家想的那么神,尤其是没有进入大型互联网公司的。别的不说,就说我自己的亲身经历,高中毕业,培训机构出身,一直做业务系统,后面搞了p2p行业。说白了大部分公司更加重视的是业务与技术的实现。比如前面说的不了解TCP、UDP原理等会影响一些。但是只要你不是那种顶流的应用其实这个对公司的成本是忽略不计的。宁可要个不懂的,也不要懂的。因为懂的会比不懂的更加贵。我曾经带过一些985的下属,有好的,有差的。差的你是无法直视的。好的的确比没有学历的强。但是没有学历的也有强的。很多公司的系统最核心的其实就是业务数据如果能够快速安全无问题的运转,仅此而已。算法更多的是做一些单一简单的业务比如互联网,其实你去看金融系统,真的对高端算法用不上,核心还是如何把复杂的业务能够简单的系统化,快速出报表,保证数据安全,数据正确,如果用分布式把业务数据拆分,如何解决分布式事务,如何选择掉单时数据处理以及前台相响应的方式,如果使用同步异步与业务客户进行交互,学历能证明过去,但是不能证明你是真的强。做程序员我觉得最重要说白话就是理解能力,说it的专业术语就是抽象能力。其实抽象能力比算法更加难,更加高端,只是算法能够量化而且很快能知道你会不会,但是抽象能力这个是需要一个抽象能力好的人才能去判别另一个人;
作为猿我想说,大佬们别那么努力了,你快把千千万万猿子猿孙干失业了[笑着哭]