type
Post
status
Published
date
Jan 28, 2023
slug
summary
到底学计算机学的是什么? 程序员的核心竞争力是到底什么? 为什么之前那些大神可以在车库里编程创业,现在已经几乎不可能? 这篇文章里尝试给出解答。
tags
文字
思考
category
学习思考
icon
password
Property
Jan 28, 2023 01:37 PM
之前跟朋友讨论过的一个idea,今天突然有了一丝明悟。几个散乱的点很有趣地穿起来了。 到底学计算机学的是什么? 程序员的核心竞争力是到底什么? 为什么之前那些大神可以在车库里编程创业,现在已经几乎不可能? 这篇文章里尝试给出解答。 (文章内人名皆为化名或网名)

“全球范围内值得被雇佣的能力”

好像从大学毕业开始,大家之间对未来的讨论就从未停歇。客观来看,经济衰退似乎已成定局,国内房价高攀不起,有些人躺平有些人摆烂。或许是我们这个年纪本该迷茫,又或者是我们这个时代就该迷茫。
大家都希望在这“乱世”中谋一份“稳定”,但人人对“乱”和“稳定”的理解又不同,有人考研考公,有人拼命挤进大厂,有人出国,有人下海。
而我呢,我是一个程序员。抛开我的那些所谓的“斜杠”,计算机和编程的确是我的专业。而我的程序员朋友们也确确实实讨论过或许是一个最能适应任何环境的最优解
印象很深,最早是流光说的:全球范围内值得被雇佣的能力
最初的想法并没有那么细节,解释起来就是英语+编程能力
这其实就避免了全球化或反全球化的风险,可以自主地选择适合自己生活的文化环境和政策环境。但其实这个编程能力是很模糊的概念。
在最初的讨论中,这个概念并没有被解释清楚。
 

“你需要核心竞争力”

如果说想要创业的话,那资源、人脉和能力三者缺一不可。不过好在这些东西是可以相互交换的。对于我个人来说,我缺少的就是资源和人脉,那么有没有过硬的能力,也就是我的核心竞争力,就成了关键。

那么程序员的核心竞争力是什么呢?

在我思考这个问题的时候,我陷入了苦思,Mandy姐姐说你应该做到行业顶尖,不错的,但是我深知行业顶尖是什么概念,需要耗费多少时间和精力,而且最关键的是行业顶尖并不代表他具有不可替代性
notion image
这就是一个比较矛盾的点了。因为一般来说,你能力越强,那么你的不可替代性越高,这对专业性强的职业来说都是如此,比如:律师、医生、老师、设计师等等……
那么我为什么说程序员的行业顶尖并不具有太强的可替代性呢?
举个例子,请行业顶尖和行业平均来写同一个软件,那么前者的架构和设计都会更加合理,更加易用,细节上会更加优雅,但两个人实现的主要功能一定几乎是一样的,因为这个是客观标准决定的,是不为程序员主观意志转移的。也就是说,其实在程序员的工作中,他能发挥的主观性很少。
从价格上看,行业顶尖的工资可能是行业平均的数倍,其成长时间也远高于行业平均,而那些他优化的架构或设计问题,其实在小规模使用的时候都不会有太明显的感受,如果你的流量真的大到出问题了,那你再换一个CTO一点也不晚。所以用行业顶尖可能是很不合算的。

从计算机行业说开去

陷入苦思的我开始分析程序员和律师、医生等职业的区别。慢慢发现了关键所在,这些偏人文的职业,在工作时主观所发挥的作用是很大的,是很依赖人的决策的。而程序员所做的事情是不断的“脱离人”,为前端、后端、运维等设计一系列”最佳实践“,最好不需要程序员就能维护,最好让计算机小白也能三分钟上手。
某种程度上说,程序员就是一个不断在坑自己的职业。
你把小白都教会了,还TM雇你干嘛?
向外扩展,其实工业界也是一样,你从来没听说过什么化工大家,汽车大家吧,但你听过大艺术家,大律师,名师。对于前者来说,行业里最优秀的作品(即所谓最佳实践)是一模一样的,而后者的行业里的顶尖却各有各的特色。

那程序员不是没救了?

也是前几天在EM的校友群里,L学姐在说了些类似在20岁要获得”全球值得被雇佣能力“的话,我特意去请教了一下,”编程能力“具体到底指什么,学姐给出的回答是”全栈能力“。简单说,全栈就是能完整地把一个脑海中的想法通过计算机这种工具落地实现。通才。
当时听了倒也没觉得有什么,只是记了下来,今天所有东西都穿起来了。
要加上《国富论》里的分工和劳动的异化。
当然在谈这些枯燥理论之前,我们可以先问一个问题,为什么比尔盖茨那个时代的大佬在车库里就能通过编程创业?
notion image
他们那个时代的技术比现在强吗?硬件更好吗?花的时间更多,他们更努力吗?
显然不是,他们当时所掌握的计算机技术是单纯的计算机技术,因为他新生,还没有被细化,被发展。当时你学计算机,一定是学了计算机的方方面面,你可以从底层到顶层写一个操作系统。因为当时操作系统还没那么复杂。所以从某种意义上讲,那时候的程序员都是全栈工程师。
那么随着计算机技术的发展,问题就来了,按照《国富论》的说法,为了效率的提升,分工会越来越细,一个操作系统,被分为前端和后端,前端的界面要如何设计?于是又出现了人机交互。后端的数据如何存储?于是又出现了数据库。计算机体系不断细分不断完善,机器学习,人工智能,不仅仅新的分支不断产生,原来基础架构的任何一个细分领域如果深入下去也足以耗尽人的一生。
如果说易经教会了我什么,那就是教会了我道和术的区别,这些足以穷尽人一生的细枝末节并不是我想学的,即使功利来看,学这些东西也并不会为我带来什么可替代性。
而分工的另一个恶果就是劳动的异化,分工太细,劳动者对于产品与自身劳动的关联没有感知,所以也不会从劳动中获得自我认同,也就不快乐。而全栈工程师所做确确实实是将主体的意志加到代码上了,这个创造的过程会给人带来实实在在的快乐。

大道至简

那做行业顶尖没用,做什么呢?
返璞归真,向大佬们学习,做全栈工程师就是唯一的解答
具体说,第一,英语读写说流畅。第二,编程技能是要掌握一个想法从脑海到应用落地的全套流程
编程技能的详细学习方法,第一步,掌握计算机的根本原理(本科已经掌握),第二步,学习计算机每一个流程的最佳实践或快速实现。注意,不要系统地学习任何部分的知识,在掌握整个流程之后再选择某一项进行专门的掌握不迟。
最佳实践要适用于常用平台:安卓、IOS、Web、Windows、Mac等。
使用流程图或伪代码进行总结。
实现和落地是第一目标,后期优化可以雇专人做。
这个不可替代性就在于,能在某一个细分的计算机领域做得好的人多,能从全局进行总体把握的人极少。
并且这样的能力不仅适用于创业初期想法的快速落地,对于雇主来说这样的高层次人才也是稀缺的
另外,各个层级的最佳实践是有限的,并且随着技术进步还会更加易用,不会学无止境。feasible。

小结

所以对我现在来说,毕业之前我对于专业能力的要求就是掌握将想法快速落地的能力。这必定有用,有乐趣,并且对于我的能力和时间来说都可行。
 
💡
欢迎您在底部评论区留言,一起交流~
 
 
癸卯年展望八字算命准不准?