
前 言
就像“书中自有黄金屋”这句话所形容的一样,懂得编程这件事从来没有像今天一样那么重要、有用。只是如今这句话中的“书”恐怕要改成“编程”了。计算机程序深远地改变着我们的生活。很多人甚至已经到了那种无比依赖电子设备的程度。而这些电子设备的“灵魂”又都是由形形色色的程序所构建起来的。但即便是这样,对于很多人而言编程这件事情仍然那么高高在上,难以企及。可能你参加了一场以技术为主题的会议,听着嘉宾们口若悬河、侃侃而谈,而你却如坠云雾,不知所云。可能你想为家人编写一个主页,却遇到了那些不知道该如何解决的问题,比如图片显示不出来、文本对不齐等。也可能你常常被那些冠以“HTML、CSS、JavaScript、Python、Ruby”等计算机名词的图书吓到,不知道这些奇怪的名词都是在讲述谁家的故事。
如果你是上面所列的这些人中的一分子,那么本书正是为你准备的。这本书里对那些基本的概念做了通俗易懂的解说,让你摆脱在技术会议上常常上演“徐庶进曹营”的尴尬,可以在听懂的同时也积极地参与讨论。在这本书里,我会把各位读者作为编程的初学者来对待,针对每一个概念做相对清晰的说明。这本书的读者甚至可以是那些完全不知道编程为何物的人。我不会毫无选择地在这本书里导入过多的内容。此外,我鼓励大家边学边做,一边读书,一边自己编写程序。你可以想象自己不是在编写一个网站,而是在搭建一个房子。你既可以先花8年的时间学习如何成为一个建筑架构师,也可以今天就着手学习如何打地基、建框架。快慢优劣大家自有体会。无论如何,这本书都将会带你开启编程之旅。
编程技能在高度信息化的今天正在变得越来越重要。业内知名作家、资深工程师道格拉斯·洛西科夫(Douglas Rushkoff)曾说过一句名言:“去做程序的主人,否则做程序的奴隶。”(Program or be programmed.)当人类发明了语言和数字后,人们就学着去听和说,随后就是读和写。在这个数字化的世界里,只知道如何使用软件是不够的,也应该知道该如何设计软件。例如在过去的一个多世纪里,唱片公司决定了什么样的歌曲能够出版和发行,只有这些歌曲才能走进千家万户。然而在2005年,3个程序员创立了举世闻名的YouTube网站,它使得每一个人都拥有了成为“歌手”的机会,任何人都可以在YouTube上发布歌曲。今天在YouTube上发布的歌曲数量甚至超过了过去一个世纪发行歌曲的总和。在Codecademy网站上发布的一系列示例程序是这本书的“忠诚伴侣”,每一章中提到的各种练习也是学习编程非常有效的方式。大家可以很容易地做这些练习,而不用去额外安装或下载任何软件。Codecademy网站上提供了本书提到的示例和练习,希望这些能够与其他的项目和示例程序一道作为读者额外的练习内容,帮助读者更好地掌握编程技巧。
本书介绍
这本书适合那些没有或者只有少量编程经验的人阅读。本书用一种通俗易懂的方式向那些“外行”展示了什么是编程。这本书用平实的语言,介绍了代码是如何被运用在程序中的,一些“知名”的程序是由什么人开发出来的,这些人采用什么样的流程完成了程序的开发工作等。这本书的主题包括:
解释什么是编程,并回答了一些有关编程的常见问题;
使用3种常用的编程语言(HTML、CSS、JavaScript)编写一个简单的网站;
比较几种常见的编程语言——Ruby和Python;
使用本书所教授的知识点构建一个应用。
当你阅读本书时,请注意以下事项。
你可以从头至尾阅读本书,也可以任意跳过其中的一些章节,直接从最感兴趣的部分开始阅读。当然在必要时也可以随时回去参考前面的章节。
有时你会被某些意想不到的问题所阻碍。如果编写的程序不能如预想的一样运行,请不要害怕,因为有很多资源可以帮到你,如技术支持论坛、有相关经验的网友甚至是我本人。你可以使用推特(Twitter)向我发送消息与我取得联系。(使用@Nikhilgabraham找到我,并用#codingFD向我发消息。)
本书中的代码都将以类似于<h1>Hi there!</h1>的字体显示。
内容“傻瓜化”
我不会先入为主地为读者的技术水平、理解能力等做过多的假设。但是我会假设各位读者具有以下特点。
各位读者没有编程经验。因此你们只需跟着本书的进度阅读、输入程序并根据书中的指示行事即可。我会尽量多地通过你们耳熟能详的例子和类比来介绍编程的概念。
假设读者的计算机上安装了最新版本的Google Chrome浏览器。本书中的程序示例都在最新版本的Google Chrome浏览器上测试和优化过。此外,本书中的所有示例也可以在最新版本的Firefox浏览器上运行。不推荐使用Internet Explorer运行本书示例。
读者的计算机可以访问互联网。本书中的一些示例可以在没有网络的环境下使用,但是大多数示例需要网络连接。你也可以在Codecademy网站上完成这些练习。
本书用到的各种图标
以下是本书中用到的图标。这些图标用来标注书中的段落,旨在引起读者的注意或者告知读者可以跳过某些段落。
TIP图标提示某段说明很有用或者是有助于理解某一概念的简短说明。
TECHNICAL STUFF图标进一步揭示了某个概念的细节,可能是告知性的信息也可能是逸闻趣事,但对于理解某一概念并不是必要的。
REMEMBER图标提醒读者记住某些内容。它意味着这个概念或者流程是非常重要的,需要牢记。
WARNING图标提醒读者留神!这个图标表示需要注意可能出现的问题或错误。
本书之外
很多在本书中没有提到的内容可以访问Dummies网站进行查找。Dummies网站为大家准备了以下内容。
本书提到的示例源代码、一个指向Codecademy网站“习题”页面的链接和按照章节整理的源代码。一次性下载某一章节的源代码,并随着这一章的阅读来实际动手操作是最好的方法。
简易说明。在Dummies网站上大家可以找到一系列关于基本HTML、CSS和JavaScript常用关键字的简易说明。
可以访问Dummies网站,并搜索“Coding For Dummies Cheat Sheet”来查找本书相关的简易说明。
附加内容:Dummies网站为大家准备了本书每一部分提到的参考内容。
更新:各种编程语言的代码和手册都在不停地更新换代,常常是今天能用的命令和语法,或许明天就过时了。因此,关于本书的更新、更正会随时上传到Dummies网站上。
接下来
好了,闲话少叙进入正题。相信自己可以在编程这条路上走得更远。现在恭喜大家,已经为编程事业迈出了第一步。