编程为什么有趣?

编程

编程为什么有趣?作为回报,它的从业者期望得到什么样的快乐?

首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创建事物,特别是自己进行设计。我想这种快乐是上帝创造世界的折射,一种呈现在每片独特、崭新的树叶和雪花上的喜悦。

其次,快乐来自于开发对其他人有用的东西。内心深处,我们期望其他人使用我们的劳动成果,并能对他们有所帮助。从这个方面,这同小孩用粘土为"爸爸办公室"捏制铅笔盒没有本质的区别。

第三是整个过程体现出魔术般的力量--将相互啮合的零部件组装在一起,看到它们精妙地运行,得到预先所希望的结果。比起弹珠游戏或点唱机所具有的迷人魅力,程序化的计算机毫不逊 色。

第四是学习的乐趣,来自于这项工作的非重复特性。人们所面临的问题,在某个或其它方面总有些不同。因而解决问题的人可以从中学习新的事物:有时是实践上的,有时是理论上的,或者兼而有之。

最后,乐趣还来自于工作在如此易于驾驭的介质上。程序员,就像诗人一样,几乎仅仅工作在单纯的思考中。程序员凭空地运用自己的想象,来建造自己的"城堡"。很少有这样的介质--创造的方式如此得灵活,如此得易于精炼和重建,如此得容易实现概念上的设想。(不过我们将会看到,容易驾驭的特性也有它自己的问题)。然而程序毕竟同诗歌不同,它是实实在在的东西;可以移动和运行,能独立产生可见的输出;能打印结果,绘制图形,发出声音,移动支架。神话和传说中的魔术在我们的时代已变成了现实。在键盘上键入正确的咒语,屏幕会活动、变幻,显示出前所未有的或是已经存在的事物。

编程非常有趣,在于它不仅满足了我们内心深处进行创造的渴望,而且还愉悦了每个人内在的情感。

时间: 2024-10-01 11:13:41

编程为什么有趣?的相关文章

GUI编程中以对话框为主要界面的应用程序

现在我们开始学习一些有关GUI编程的有趣的部分, 即:以对话框为主要界面的应用程序.我们将分两课来讲述这一过程 理论:如果您仔细关注过前一个程序就会发现:您无法按TAB键从一个子窗口控件跳到另一个子窗口控件,要想转移的话只有 用鼠标一下一下地去点击.对用户来说这是不友好的.另一件事是如果您象前一课中那样把主窗口的背景色从白色改成 灰色,为了子窗口控件无缝地作相应地改变,您必须细分类所有子窗口. 造成上述诸多不便的原因是子窗口控件本来是为对话框而设计的,象子窗口控件的背景色是灰色的,而对话框的背景

Java FP: Java中函数式编程的谓词函数(Predicates)第一部分

你一直在听说函数式编程将称霸整个编程届,而自己仍然沉浸在普通的Java里?请不要担心,因为你已经在日常Java代码中加入了函数式编程的特性.此外,函数式编程很有趣,能够帮你节省多行代码并且降低错误率. 什么是谓词函数? 许久之前,那时我还在用Java 1.4进行编码,当我第一次发现Apache Commons Collections,便爱上了谓词函数.Apache Commons Collections里的谓词函数仅仅只是一个只有一个方法的接口: evaluate(Object object):

Chris Grainger:我们如何才能更好地编程?

本文作者 Chris Grainger 是开源 IDE Light Table 的开发者,之前在微软 Visual Studio 开发团队效力.本文是 Chris 根据他自己的演讲<Finding a way out>改写而成. 当开始设计 Light Table 的原型时,我并没有任何宏伟目标,只是一直在思考如何能更好地编程,还想看看做到这点有多难.直到最近,我才幡然醒悟:过去的十年努力:从Web框架,到Visual Studio,到 Light Table 的这段经历让我意识到:从一开始我

《易学Python》——第1章 为何学习Python 1.1 学习编程

第1章 为何学习Python 本章介绍如下内容: 计算机和程序简介以及编写程序的原因: Python简介及其如此杰出的原因: 安装Python. 既然购买了本书,您很可能想学习编程技术.祝贺您!打算学编程的人不是很多,但编程很有趣,自学编程的回报也很高.编程是衡量您是不是文盲的新标准:如果不会编写简单程序(如批处理文件.邮件过滤器.电子表格公式),将在会这样做的人面前处于劣势.编程还是工具,可帮助您将点子付诸实施. 我10岁左右开始涉足编程,当时使用的是Commodore 64.在那个时候,除游

汇编教程之以对话框为主要界面的应用程序

现在我们开始学习一些有关GUI编程的有趣的部分, 即:以对话框为主要界面的应用程序.我们将分两课来讲述这一过程 理论: 如果您仔细关注过前一个程序就会发现:您无法按TAB键从一个子窗口控件跳到另一个子窗口控件,要想转移的话只有 用鼠标一下一下地去点击.对用户来说这是不友好的.另一件事是如果您象前一课中那样把主窗口的背景色从白色改成 灰色,为了子窗口控件无缝地作相应地改变,您必须细分类所有子窗口. 造成上述诸多不便的原因是子窗口控件本来是为对话框而设计的,象子窗口控件的背景色是灰色的,而对话框的背

编写属于你的第一个Linux内核模块

内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了.Linux内核和它的用户空间是大不相同的:抛开漫不经心,你必须小心翼翼,因为你编程中的一个bug就会影响到整个系统.浮点运算做起来可不容易,堆栈固定而狭小,而你写的代码总是异步的,因此你需要想想并发会导致什么.而除了所有这一切之外,Linux内核只是一个很大的.很复杂的C程序,它对每个人开放,任何人都去读它.学习它并改进它,而你也可以是其中之一. 学习内核编程的最简单的方式也许就是写个内核模块:一段可以动态加载进内核的代码.

黑客内核:编写属于你的第一个Linux内核模块

黑客内核:编写属于你的第一个Linux内核模块 曾经多少次想要在内核游荡?曾经多少次茫然不知方向?你不要再对着它迷惘,让我们指引你走向前方-- 内核编程常常看起来像是黑魔法,而在亚瑟 C 克拉克的眼中,它八成就是了.Linux内核和它的用户空间是大不相同的:抛开漫不经心,你必须小心翼翼,因为你编程中的一个bug就会影响到整个系统.浮点运算做起来可不容易,堆栈固定而狭小,而你写的代码总是异步的,因此你需要想想并发会导致什么.而除了所有这一切之外,Linux内核只是一个很大的.很复杂的C程序,它对每

《Ruby程序员修炼之道》(第2版)目录—导读

版权 Ruby程序员修炼之道(第2版) • 著 [美] David A. Black 译 钟凤鸣 陈雪静 责任编辑 杨海玲 • 人民邮电出版社出版发行 北京市丰台区成寿寺路11号 邮编 100164 电子邮件 315@ptpress.com.cn 网址 http://www.ptpress.com.cn • 读者服务热线:(010)81055410 反盗版热线:(010)81055315 版权声明 Original English language edition, entitled The W

致程序员们:来自一个前辈的忠告

致诸位程序员:来自Chuck Jazdzewski慈父般的忠告  转自:http://www.ituring.com.cn/article/18838    记住这几句话,学无止境.(Never stop learning.)沟通至关重要.(Communication is critical.)履行承诺,胜过交付.(Under promise, over deliver.)"我错了."("I was wrong.")要是代码未经测试,那它就无法正常运行.(If it