软件随想录,赛博土木与技术哲学

简介: 近日读Joel的《软件随想录》,书中尖锐批评了软件教育现状,指出大部分软件专业学生缺乏实际才能。尽管此书成书已十年,但Linus、Rob Pike等人的观点依旧尖锐,让人深感无力。当前大学教育与产业脱节严重,导致毕业生难以适应行业需求。2024年的今天,软件本科教育依然存在诸多问题,毕业生面临学历贬值和就业压力,而研究生阶段的研究方向也常常与实际需求不符。软件工程虽始于上世纪60年代,但至今仍面临技术重复发明等问题,开源运动也逐渐式微。教育贬值与产教分离造就了大量平庸之辈,普通人需在技术哲学中寻找出路,才能真正适应未来的软件开发之路。

近日读Joel的软件随想录,仿佛被人指着鼻子骂了一样.“绝大软件学生都没有做软件的才能”.“学校只教Java不过是培养出一堆过剩的废物”.“只学会拿使用说明拼积木的蠢货”

事实上,这本书甚至在十年前. 但不管是Linus,Rob Pike,汤普森,格雷厄姆,还是布莱恩这些老人的表述和自身经历. 这些人都过分的“精英化”,有超乎寻常的技能和嗅觉,往往让人感到无力.

可能作为普通人往往也没有“做某事的才能”. 我作为普通人技术栈选择和职业规划仿佛迷雾,可以说是雾里探花. 大学教育的课程结构也与产业严重割裂,从工具到技术栈,再到工作流程,可以说一概不知.

在2024年的今天,如果想读一个软件本科,普通人大概率会出现一个照本宣科的庸才,缺乏学术训练和系统性的思辨. 如果想读一个研究生,那宝贵的三年时间就会去跟着一个大概率在过往十年艰难生存的导师,跟着不知道多少人去跨领域做CV,NLP,然后跑回通胀的软件行业.

宝贵且无能的18岁,难以看清行业发展,进入到膨胀且畸形的软件本科教育当中,在毕业那年随着国家导向和惊人的学历贬值,不得不去卷一个研究生学历. 没有确切的经过实践,没有明确的值得深入的方向,一定程度上是没有经过反思的人生,仿佛在等待名为命运的骰盒开奖.

软件工程概念确立于上个世纪60年代,而工程化的建设到今天仍在进行. 技术发展不断发明了一些莫名其妙的东西和过于重复的概念,并且这种扯淡的“重复发明”仍在继续. Js圈甚至在发明了几千种Js框架之后终于开始尝试使用“原生Js开发”. 有时候会觉得普通人了解开发软件之前是否应该去工地做一段时间的项目经理,也许成为包工头之后会更加的具有“开发软件的才能”.

教育贬值和CS热以及产教分离,带来了大量诸如我这样的庸才. 而软开在过去几十年,部分精英们发明了绝大部分事务. 在甚至适合普通人的“安全型铲子”也不过是“最近的事情”. 在2024年,几家大公司,贡献和控制了数目庞大的“基础设施软件”. 开源运动的旗手FSF和RMS本人就像Emacs一样差不多入土了. 事实上普通人要为大公司付费,拿他们的工具,为他们开发,以加入他们为荣.如Google用Chrome内核几乎控制了整个浏览器市场.Redhat挟持了整个Linux社区.

也许这种东西,已经转向为了一种技术哲学. 也许普通人在成为软件开发人员和包工头之前应该成为一个哲学家. 也许有一天,能像布莱恩的“大集市”一样又不一样. 普通人能完全逃离精英主义,拿起安全型号铲,走向纯粹的“赛博土木”.

相关文章
|
6月前
|
并行计算 算法 数据处理
编程之道:从代码中领悟技术与生活的哲理
【8月更文挑战第28天】在数字世界的迷宫中,每一行代码都像是宇宙中的一个星系,既独立又相互联系。本文将通过一段简单的Python代码示例,探讨如何从编程实践中汲取生活智慧。我们将看到,代码不仅仅是冷冰冰的指令序列,它也能反映出人类思维的深度和广度。正如甘地所言:“你必须成为你希望在世界上看到的改变。”在编程的世界里,我们同样可以创造并见证这种改变。
60 3
|
6月前
|
算法
代码的诗意:从技术感悟到生活哲学
【8月更文挑战第30天】在数字世界的编织中,每一行代码都是诗行的缩影,承载着逻辑与情感的双重奏。本文将带领读者穿梭于技术的细节与生活的广阔之间,探索编程之美如何映照人生的哲理。从简单的算法到复杂的系统设计,我们将发现,代码不仅仅是冷冰冰的指令集合,它也能如诗般流淌,讲述着创造与和谐的故事。让我们一起走进代码的世界,解锁那些隐藏在键盘敲击声中的深刻启示。
|
6月前
|
Java
在Java编程的江湖中,有一本传说中的“武林秘籍”,它不是刀光剑影的武学心法,而是能够让代码变得灵动、高效的秘密武器——多态。
在Java编程的江湖中,有一本传说中的“武林秘籍”,它不是刀光剑影的武学心法,而是能够让代码变得灵动、高效的秘密武器——多态。
49 1
|
6月前
|
JavaScript 前端开发 开发者
震撼揭秘!JS模块化进化史:从混沌到秩序,一场代码世界的华丽蜕变,你怎能错过这场编程盛宴?
【8月更文挑战第23天】在 Web 前端开发领域,JavaScript 模块化已成为处理日益复杂的 Web 应用程序的关键技术。通过将代码分解成独立且可重用的模块,开发者能够更有效地组织和管理代码,避免命名冲突和依赖混乱。从最早的全局函数模式到 IIFE,再到 CommonJS 和 AMD,最终进化到了 ES6 的原生模块支持以及 UMD 的跨环境兼容性。本文通过具体示例介绍了这些模块化规范的发展历程及其在实际开发中的应用。
66 0
|
Web App开发 Windows
推荐5款让你相见恨晚的神级软件,把把直击心灵
今天来给大家推荐5款良心软件,每款都是经过时间检验的精品,用起来让你的工作效率提升飞快,各个都让你觉得相见恨晚!
267 0
推荐5款让你相见恨晚的神级软件,把把直击心灵
你不必懂 但我们一直在 —— 技术人致敬
你不必懂,但我们一直在。1024 技术人节日快乐!
1584 0
你不必懂 但我们一直在 —— 技术人致敬