写代码这么多年,我依然觉得编程很美妙!

科技   2024-12-18 16:39   湖南  


人工智能之父艾伦·图灵曾说过:“编程之所以吸引我,是因为它充满了解决挑战性难题的乐趣。”而科技界巨头比尔·盖茨也曾说:“如果一件事你能够通过编程来做,那么它就值得去做。”这些计算机领域的巨擘们,用其独到的见解强调了编程不仅是一种技术手段,更是一种解决问题的思维模式。


当代有一群用代码改变世界的人,他们用键盘敲击的每一行代码都是对完美程序的不懈追求,每一个函数都是他们对效率的执着。面对错综复杂的技术挑战,他们总能用逻辑思维和创新思维洞察问题的本质,找到最优的方案。对待代码,他们更是像工匠般精益求精。这群数字世界的建筑师,正以前所未有的速度重塑着我们的生活和工作方式。


你还记得,是什么让你最初选择了编程这条路?是儿时对电子游戏的迷恋,还是对未知世界的好奇心?是对未来职业的规划,还是对技术改变世界的信仰?


正如 Linux 之父林纳斯·托瓦兹在其自传《只是为了好玩》中所讲述的,他对编程的狂热源于对创造和探索的热爱。而这篇文章,正是为了向所有程序员致敬,致敬创新的灵魂和工匠般的精神。

为什么对编程这么狂热,我自己也解释不来,姑且说说看吧。

在编程的人看来,编程是世上最有意思的事情了。它要比国际象棋之类的游戏复杂得多,你想要什么规则都可以自己设定。按照你定下的规则,它的结果该是什么,就会是什么。

不过,在外行人看来,编程似乎是地球上最无趣的事。

编程刚开始会令人觉得特别刺激,这个原因倒很好解释:因为你让计算机干什么,它就干什么,不仅没有毫厘偏差,而且永远服从、毫无怨言。这本身就很有意思。

虽说一开始是计算机的盲从让你对编程入迷,但是单靠这一点,并不足以让你真正喜欢上编程。事实上,计算机的盲从很快就会让编程变得无趣。编程真正让人欲罢不能的魅力是:如果你想要让计算机干什么事,你必须先弄清楚,怎么样才能让它这么干。

我个人觉得,计算机科学和物理科学有不少相似的地方。它们都是在一个非常基础的层面上,探讨整个学科的运作原理。

当然,不同的是,在物理科学上,你得去弄清楚这个已存在的世界是如何正常运转的;而在计算机科学上,你得从零开始创造出一个新世界来,而且还得设法让它正常运转。

在计算机的世界里,你就是创世者,对这个世界里发生的一切都有最终决定权。如果鼓捣得足够好,你就是这个世界的上帝。当然,这个上帝的地盘就比较小喽。

我这么说,恐怕已经得罪地球上近一半的人了。

但事实就是如此。你可以在计算机上创造出属于自己的新世界,唯一的限制就是计算机本身的性能,还有一点在今天尤为重要,那就是你自己的能力。

比方说造一间树屋吧。你可以造一个带活板门的树屋,这样的树屋实用而稳固。不过这样一间仅为坚固、实用而造的朴素树屋,和一间为了外观漂亮而巧用树木特点来精心雕琢的树屋比起来,人人都看得出来两者间的差别。

造树屋是一种将艺术和工程融合起来的活计。编程也是如此,也正因如此,编程才得以成为一件既有魅力又有价值的事。编程时,编程者往往优先考虑的是趣味性、美观性及震撼力,而非实用性。

编程是一个充满创造力的过程。

最开始吸引我进入编程世界的,是我研究计算机工作原理的过程。我在其间获得的最大乐趣,就是发现了计算机和数学的异曲同工之妙:你可以创造出一个世界来,一个自主制定规则的新世界。

在物理科学中,你会被客观存在的规律所约束,但是在数学和编程中,只要合乎逻辑,什么规则都行得通。

数学问题只要能在数学世界里逻辑自洽,就可以成立,不必受到外部客观逻辑的约束。正如数学家们都知道的,只要逻辑处理得当,就完全可以构建出一套新的数学体系,在新体系中等式“3+3=2”是可以成立的。

事实上,在你自己创造的体系里,想干什么都可以。但是,当这个体系渐渐充实起来,变得越来越复杂,你就得格外注意,别弄出一些自相矛盾的逻辑出来。这个美丽新世界要继续美下去,就容不得一点瑕疵。编程和数学一样,也是这么一回事。

人们之所以会对计算机着迷,一个原因就在于计算机可以让人们游历自己创造的新世界,了解这个新世界能被改造成什么样子。

在数学中,人们往往是开动脑筋,根据经验来假设,从而得出可能性。举个例子,说到几何学,大部分人想到的是欧几里得几何学。但是计算机能够帮助人们将不同的几何学形象化,而不仅仅局限于欧几里得几何学。有了计算机的辅助,就可以把虚构的世界形象化,亲眼看看这些虚构的世界到底是什么样子的。

记得芒德布罗集吗?就是那个基于伯努瓦·芒德布罗等式的分形图像。分形图像是人们利用计算机,对一个纯粹的数学世界的形象化表述。而在计算机出现之前,像这种纯数学,是绝不可能被形象化的。芒德布罗就是在他那个本不存在的世界中,人为地制定了一些规则。虽然分形与客观现实毫无关系,但他们却创造出了一些非常棒的形状。通过计算机和编程,你可以构建新的世界。有时机缘巧合,这个新世界还会特别美妙。

不过,大部分时候,你并不是在创造新世界。你写一个程序,其实只是为了让它执行某个任务而已。在这种情况下,你就不是在创造新世界,而是在这个已存在的计算机世界里解决一个具体问题了。要解决问题,就得好好思考问题。但是,光是坐在计算机前盯着屏幕思考,就能把问题想通,只有一些比较怪异的人才能做到。比如说,像我这种呆子气十足的怪胎就做得到。

计算机上的所有功能要想起作用,都得以操作系统为基础。于是,创造一个操作系统就成了终极挑战。创造一个操作系统,相当于给所有在这部计算机上跑的程序创造了一个全新的生存环境——从根本上说,其实就是在制定这个世界的规则:什么事可以接受、可以做,什么事不可以接受、不可以做。其实,所有的程序都是在制定规则,只不过操作系统制定的是最根本的规则。创造一个操作系统,就相当于为自己创造的一方土地制定宪法,而在计算机上跑的程序则相当于各式各样的普通法律。

有时候,这些普通法律跑不通,那么这时候就要看你的能耐了。你需要找到解决方案,并且能清楚地意识到自己已经循着正确的方式找到了正确答案。

还记得学校里那个总能快速答对问题的家伙吗?他的答案总比其他人来得快,恰恰是因为他没有刻意去寻找正确答案。他未必知道问题本该以什么样的标准思路来解决,他只是以一种合理的思路来考虑问题。因此别人一听到他的答案,就觉得很合乎逻辑。

编程也是如此。你可以靠蛮干来解决问题,跟问题慢慢“磨”,直到它不再是问题为止,看谁磨得过谁。不过这是个愚蠢的办法。你也可以找到正确的方法来解决问题,这样问题就会立马消失。换一个角度看问题,你会突然灵光一闪:问题之所以成为问题,只是因为我原先看问题的方法不对!

要证明这一点,计算机科学方面似乎没有什么好例子,我举一个数学的例子吧。故事讲的是在伟大的德国数学家高斯小时候,有一天,他的老师觉得课本上的题太无趣,为了不让学生们走神,他让大家把从 1 到 100 的数字加起来求和。老师原以为这群小孩子要花一整天的时间来做这道题,没想到才过了五分钟,我们这位初露头角的小数学家就给出了正确答案:5050。

他没有从 1 到 100 一个数字一个数字地简单相加,因为那样计算既折腾人又愚蠢到家。他发现,1 加 100 是 101,2 加 99 也是 101,3 加 98 还是 101,一对对算下去,直到 50 加 51 得到最后一个 101。没用多久时间,他就注意到一共有 50 对 101,于是答案就出来了,是 5050。

这个故事也许是虚构的,道理却十分浅显:伟大的数学家不会采用既烦琐又无趣的方法解决问题,因为他们能理解问题背后的真正内涵,并且能利用这个内涵找到更为简便的方法,从而得出答案。

这个道理放到计算机科学上,绝对也是一样的。没错,同样的问题,你可以随便写个程序来求和,就现在的计算机技术来看,这就跟打个响指一样简单。但是只有才思敏捷的伟大程序员才知道真正的答案。他们知道怎样采用全新的方法,写出一个漂亮的程序来攻克某个问题,并且最终会证明这个新方法就是正确的方法。

我还是很难解释清楚常常闭关三天冥思苦想却徒劳无功,找不到一个漂亮的好方法来解决难题的编程之事到底有什么好令人着迷的。但是,一旦你找到了解决问题的那个漂亮方法,你就会知道,那种感觉是无与伦比的。

END


《ChatGPT:人类新纪元》

马占凯 | 著

“搜狗输入法之父”、美团光年 AGI 布道师马占凯新作。本书用生动浅显的语言,用鲜活的故事,讲述 ChatGPT 前世今生、AI 发展史,获得罗永浩、梁宁、戴雨森、王建硕、王玥等大咖倾情推荐。附赠中国 AGI 全景图、ChatGPT 全景图拉页,让你对 ChatGPT 及 AGI 相关产业的发展一目了然。


《这就是ChatGPT》

[美] 斯蒂芬·沃尔弗拉姆|著

WOLFRAM传媒汉化小组|译

OpenAI CEO,ChatGPT 之父山姆·阿尔特曼推荐,国内首部由世界顶级 AI 学者、科学和技术领域重要的革新者、“第一个真正实用的人工智能”搜索引擎 WolframAlpha 发明人斯蒂芬·沃尔弗拉姆对 ChatGPT 最本质的原理的解释的权威之作!


《人工智能简史(第2版)》
尼克 | 著

本书获得第七届中华优秀出版物图书奖、第八届吴文俊人工智能科技进步奖,入围央视“2017年度中国好书”,获选第十三届“文津图书奖”推荐图书。内容全方位解读人工智能的来龙去脉,一线专家细数行业经典与成败得失;把科学的故事讲得富于思想性,把技术的问题讲得颇具趣味性。
全面讲述人工智能的发展史,几乎覆盖人工智能学科的所有领域,包括人工智能的起源、自动定理证明、专家系统、神经网络、自然语言处理、遗传算法、深度学习、强化学习、超级智能、哲学问题和未来趋势等,以宏阔的视野和生动的语言,对人工智能进行了全面回顾和深度点评。

《理解图灵》

尼克|著
图灵 1936 年的文章《论可计算数》奠定了计算机科学的基础;而其 1950 年的文章《计算机与智能》则开启了人工智能,此文开头提到的“模仿游戏”后来被称为“图灵测试”。本书以注释形式对《计算机与智能》进行了细致解读。
书中首先追溯图灵的生平和思想轨迹,特别是他对智能与机器关系的早期洞察,以及他在计算理论方面的重大贡献——提出图灵机;接着通过分析图灵与同时代其他思想家的交流与辩论,如与哲学家维特根斯坦的深入对话,以及在 BBC 广播讨论中与神经生理学家杰弗逊的激烈交锋,逐步揭示了图灵对于机器智能的独到见解及其思想的演进过程。


《中国人工智能简史》
林军,岑峰 | 著
高文院士、李国杰院士、戴琼海院士作序推荐;张钹,沈向洋,杨强,张正友,张建锋,王海峰,王小川联名推荐。
本书为该系列第一卷,梳理了自 1979 年至 1993 年中国人工智能领域初期十多年的发展历程,用轻松而真诚的笔触,讲述了为中国人工智能发展寻路的奠基者,并介绍了重要历史事件的来龙去脉,带领读者深入了解中国人工智能发展早期鲜为人知的历史。


《只是为了好玩:Linux之父林纳斯自传(修订版)》

[美]林纳斯·托瓦兹 [美]戴维·戴蒙德 | 著
陈少芸 | 译
全球程序员推崇的天才“极客”;让微软头疼的鬼才“书呆子”;苹果乔布斯求之不得的“开源领袖”;《时代周刊》 评选的“全球最具影响力人物”;——Linux 之父林纳斯·托瓦兹亲笔自传。
缔造支撑互联网运行的“巨人的肩膀”;点燃技术开源与创新的“自由的火种”;开辟滋养安卓、鸿蒙诞生的“技术之源头”。 读懂“林纳斯之乐”;用黑客精神把握技术创新的现在与未来。


《黑客与画家(10万册纪念版)》
保罗·格雷厄姆 | 著
阮一峰 | 译
硅谷创业教父保罗·格雷厄姆畅销近 20 年的思想经典,一书了解何为黑客精神、如何创造财富与开拓未来。
有效的思考方式,才是你最强大的武器,透过黑客与画家的视角,与聪明的头脑对话,了解为何聪明人和我们想得不一样。透过 15 篇通俗易懂的文章,了解黑客精神如何塑造我们的世界,用黑客的先进思想与方法武装头脑,离财富更近,离自洽更近,离未来更近。



《硅谷之火》

迈克尔·斯韦因,保罗·弗赖伯格 | 著
陈少芸 , 成小留 , 朱少容 | 译

美亚评分 4.5,科技先锋的传奇故事。本书是一部微型计算机发展史,让读者了解整个 20 世纪以及至 21 世纪初计算机从兴起到鼎盛直至今天受到平板电脑和手机等电子产品冲击的整个过程,是一本集历史故事与小说风格于一体的硅谷纪传体书籍。

第 3 版对一些内容进行了彻底的修订和扩充,延展到了个人计算机革命结束和后 PC 时代的开始。它讲到了史蒂夫·乔布斯和道格拉斯·恩格尔巴特的去世,比尔·盖茨和史蒂夫·鲍尔默的退休,也讲到了一些先驱退场后的人生经历。新版还涉及个人电脑到云计算和移动设备的过渡、个人计算机时代的结束对自由与权力影响、开源与软件私有的争论等话题。

白嫖Cursor

Linux 速查表

Python 和 R ,谁更厉害?

一段神奇的Python代码,拿走不谢

Python 入门路线图(2024 极简无废话版)

科研图表可视化利器,交互式操作,与Matplotlib 无缝集成


机器学习算法与Python实战
长期跟踪关注统计学、数据挖掘、机器学习算法、深度学习、人工智能技术与行业发展动态,分享Python、机器学习等技术文章。回复机器学习有惊喜资料。
 最新文章