微信号:ThinkPHP2012

介绍:开源WEB应用开发框架ThinkPHP

我为什么痴迷于编程?

2014-11-04 10:54 ThinkPHP

Quora上有人提问“为什么有些人痴迷于编程”,有30年编程经验的工程师Marcus Geduld给出了自己的答案。Marcus Geduld不仅是程序员,还是莎士比亚戏剧的导演,教师,作家和恐龙研究者。

我喜欢创造一些新的东西。这不能简单地理解为我在编程时所做的工作,因为那些服务于我工作的硬件和软件都是已经存在的,但它真的会让人有一种在“创作”的感觉。当有了一个想法后,你可以从头创造它,刚开始看到的就是一个空白没有任何内容的编辑器,但完成之后,它就是一个可以运行的程序。

我喜欢创造让别人可以使用的东西。敲上一段代码,加个按钮,就可以让成千上万的人在互联网上使用它,这是多么奇妙的感觉。


我喜欢扮演“上帝”的角色。编写程序就像构建了一个小型世界,在这里我可以对里面的东西进行调整和改变,并观察效果。这就好像我拥有了一个玩具星球,然后说道:“我要让它今天下雨,看!所有的人就都打开了雨伞。”这种在编程中扮演上帝的感觉和写小说,画画,当导演是相似的。

我喜欢在一种需要极度准确的系统中工作。这也是一些人厌恶编程的原因,但这一点很吸引我,一个写错位置的分号或很小的一个拼写错误都会带来灾难性的后果。这让我时刻保持着警觉,这就像作为一个庄园的管家一样,每一件事都应该井然有序。一些人喜欢精准,一些人就不这样,经常会说“我也说不好,你应该懂我的意思......”显然,我是前者。

我喜欢解决难题。如果你想知道编程工作是否适合你,先试着看一些谜题类的书籍。

我喜欢做研究。编程是要查找并阅读很多文档和相关资料的。

我喜欢做实验。编程会涉及大量的反复的实验。



我喜欢写诗,这和编程很相似。诗人和程序员都会着迷于用词,规则,表达,并看看他们能对这些有多大的推进作用。程序员经常谈论某一语言的表达,这和诗人构思一个好的表达是一样的。

诗歌和代码都可以很精致美丽,我是一个程序员,但我还导演了一些莎士比亚戏剧,很多人对此很惊讶,但我知道很多优秀的程序员都会参与戏剧,字谜游戏,拼字游戏等。

我喜欢交流。很多优秀的程序员都会告诉你代码首先要让别人读懂,甚至有时算法没有那么高效,看也要有很强的易读性。

Phil Karlton说过:“在计算机科学领域,有两大难题,如何验证缓存和如何给各种东西命名。”我喜欢命名这件事,程序员经常需要在写代码的过程中命名或进行标记,所以名字的清楚和恰当是十分重要的。

为什么它如此重要呢?当你命名了一个东西叫cButton,下一个人看到你的代码就会产生迷惑,但如果你把它命名为closeButton,他就会马上知道你想表达的含义。最尴尬的就是,有时在几周甚至一年后,你再看你自己写过的代码,比如看到这个cButton,你也会问“我当时是怎么想的”。

上周,我在修改别人的代码,它是用来划分网页的,每一部分在顶部都有一个Logo(标志)。最开始写代码的程序员把这些logo命名为header,比如header1,header2。我没有注意,我把里面其它一些东西命名为了header。所以当我后来再看这些代码时,就被那些混乱的header搞乱了。

我仔细思考了一下,意识到他的这些header都是对一些图形的logo命名的,我的是对文字命名的,所以我重新进行了命名,把他的改为logo1和logo2,我的叫做titile,这样就不会混乱了。这只是一个小的例子,或许你不喜欢这样的工作,但我很享受其中。

我喜欢学习。和鲨鱼一样,程序员要不停的前进。技术的发展和变革是巨快的,作为程序员要一直学习。尽管我已经编程很多年了,我仍然需要持续不断的看书,看博客等等。不进则退!

有很多很好的编程书籍和课程,但是仅靠这些指导是远远不够的,它只能帮你入门,真正要学到东西还需要你亲自写代码,出错,分析调试,然后从中吸取教训。你要享受这样自学的过程,我就是这样的。

我喜欢侦查。大约有60%的编程工作都是在排查错误(debug),找到问题所在,这就意味着要有很多“侦查”工作。有时你要先将整个项目分解,然后再整合到一起。


我喜欢独自工作。编程让我有很多机会一个人工作,不受干扰。

我喜欢合作。如今,只有极少数的程序员是一个人完成所有的工作,更多的是一个团队一起开发,一周的一部分时间是和同伴一起工作,另一部分时间是独自的工作时间。我非常需要这样两种工作形式,我也很享受两者交替进行。


点击"阅读原文"进入网页版

 
ThinkPHP 更多文章 7周年问卷调查 ThinkPHP3.1.2版本壁纸可以下载啦 ThinkPHP云引擎 ThinkPHP培训线上线下的互动交流 ThinkPHP函数详解系列
猜您喜欢 幕雅集 再谈重载、覆盖和隐藏 技术人的创新修炼:以系统的方法理解创新思维 数据处理之——dplyr 在真实工作中的编程是怎么样的,与学校里有什么不同?