🔥 Search Hot Tweets
Search and analyze hot tweets from KOL accounts list (list: https://x.com/i/lists/1961235697677017443) within 6 hours. Use SoPilot plugin to quickly comment and occupy the comment section.

宝玉
编程之美 作者:Linus Torvalds(Linux创始人) 我很难用语言解释自己为什么会如此痴迷于编程,但我还是尝试一下吧。对真正热爱编程的人来说,这件事实在太有趣了。它就像是一场比国际象棋更加复杂的游戏,在这场游戏中,你可以自己创造规则,而最终的结果也完全取决于你的创造力。 不过,在外人看来,这可能是世界上最无聊的事情了。 编程最初的乐趣其实很好理解:只要你告诉电脑做一件事,它就一定会毫无怨言、永不停息地执行下去。这种绝对服从的感觉,刚开始是很新奇的。 但显然,盲目的服从本身并不足以让人产生长久的兴趣。编程真正吸引人的是,你虽然能命令电脑做任何事,但究竟怎么做,你得自己琢磨。 我个人相信,计算机科学与物理学有许多共同之处,它们都在某种基本层面上研究世界运作的规律。不同的是,物理学家试图去探索真实世界的规律,而计算机科学家则在电脑世界里创造规则。在电脑的领域中,你就是创世者,你可以掌控一切。如果你足够优秀,你甚至能成为一个小世界里的“上帝”。 好吧,我这话可能冒犯了地球上一半的人口。 但事实的确如此。在编程世界里,你唯一的限制,就是电脑的性能,以及你自己的能力。 想象一下建造树屋。你当然可以搭建一个稳固、实用的树屋,上面开个天窗、加个梯子。但所有人都知道,仅仅坚固的树屋和一座真正漂亮、有创意地利用树木特色的树屋是截然不同的。这种差别就在于艺术和工程的巧妙结合,这正是编程为什么如此令人着迷和满足的原因。很多时候,程序是否实用反倒是次要的,更重要的是它有趣、优雅,甚至是让人眼前一亮的。 编程,本质上就是一种创造力的实践。 最初吸引我进入编程世界的,就是弄清电脑内部运行原理的过程。最大的乐趣之一是发现电脑和数学非常相似:你可以自由创造一个拥有自己规则的世界。在物理学中,你受到现实世界规则的约束,但数学和编程中,只要逻辑自洽,一切都是可能的。数学并不需要符合外部世界的逻辑,只要它在自身体系内是一致的就行。正如任何数学家都知道的,你甚至可以创造一个世界,让“3加3等于2”。只要它内部逻辑自洽就可以了。然而,随着复杂性的增加,你必须小心不要在自己创造的世界里制造矛盾。一个美丽的数学世界或编程世界,不能容忍任何瑕疵。 人们喜欢电脑的原因之一,就是电脑能带你体验一个又一个你亲手创造的全新世界,让你见证无限可能。数学能让你在脑海里畅想各种奇妙的设定,比如几何学,大多数人首先想到的是欧氏几何。但有了电脑,我们可以轻松直观地体验到各种完全不同于欧氏的几何世界。还记得著名的曼德勃罗集合(Mandelbrot set)吗?那些绚丽的分形图像,其实只是数学家曼德勃罗纯粹凭空设想出的世界,是完全抽象而与现实世界毫无关联的。但它们却意外地产生了无比迷人的图案。如果没有电脑,这些纯数学世界是无法被直观看到的。电脑和编程让你能创造一个个崭新的世界,有时候,这些世界里的图案异常美丽。 当然,大部分时候你并不是在创造全新的世界。你只是写一个程序,来完成特定的任务。在这种情况下,你并非在创造世界,而是在电脑的世界里解决问题。你需要静静地坐在屏幕前,绞尽脑汁地思考,才能找到答案。而能耐住性子盯着屏幕冥思苦想的,可能只有像我一样的宅男极客了吧。 操作系统是一切程序运行的基础,它的开发堪称终极挑战。创造操作系统,就是在电脑里创造一个“世界”。你制定规则,决定哪些行为允许,哪些不允许。每个程序都会定义自己的规则,但操作系统才是最基本的。它就像一个国家的“宪法”,而其他程序更像是具体的法律条文。 有时这些“法律”可能看起来不太合理。但你追求的是合理性,你希望找到一个漂亮而正确的方案,让你一眼看去就知道自己走的是一条正确的路。 你一定记得自己在学校时,有那么一个人总能最快地找到正确答案,而且还显得毫不费力。他之所以能做到这一点,是因为他根本没去死记硬背解题方法,而是直觉地找到了正确的解题思路。你一听他给出的答案,就立刻觉得无比清晰。 在编程领域,情况也是一样。你可以用笨拙的方法去强行解决问题,通过蛮力一点一点地消耗问题直到问题不再存在;但真正优秀的程序员总能迅速找到巧妙的办法,从而让问题迎刃而解。有时你只是换个角度重新审视问题,突然间就灵光一现:原来问题根本不是什么问题,只是你之前思考的方式错了。 这方面最著名的例子或许不是出自编程,而是来自数学。据说,德国大数学家高斯小时候上学,有一天老师想偷个懒,便让学生们把1到100的数字加起来,认为这足够让孩子们忙上一整天。但年少的高斯只用了短短几分钟就算出了正确答案:5050。他并没有真的傻傻地一个个加数字,而是发现了一个规律:把1和100加起来是101,2和99加起来也是101,3和98也是101,这样一直加到50和51,总共有50对101,因此答案就是5050。 也许这个故事只是传说,但它清楚地表达了一种理念:伟大的数学家绝不会用繁琐无趣的方法解决问题,他们会敏锐地发现问题背后的本质规律,并据此轻松地找到答案。这一点在计算机科学中同样适用。当然,今天的电脑强大得足以轻松进行繁琐的计算,但优秀的程序员依然会用聪明而优雅的方式,快速巧妙地解决问题。 当然,想要向人解释编程为何有趣并不容易:一个人对着电脑屏幕连续几天撞墙式地痛苦纠结,似乎怎么也找不到那个更聪明、更漂亮的解决方法。这听起来根本不像是一件愉快的事。但一旦你灵光一闪,真正找到那个更美妙的方案时,那种喜悦简直是世界上最美好的感受。 本文摘自《Just for Fun: The Story of an Accidental Revolutionary》(中译:《只是为了好玩:Linux之父林纳斯自传》),Linus Torvalds与David Diamond著,HarperCollins出版,2001年。
Est. 1.2K views for your reply