练习 53. 接下来的步骤

你还不是一个程序员。我会把这本书看作是你的“编程黑带”。你已经知道了足够多的东西,可以开始写另一本关于编程的书了,并且可以写得很好。这本书应该已经给了你阅读大多数 Python 书籍并实际学习一些东西的心智工具和态度。它甚至可能让这件事变得更容易。

我建议你看看这些项目,并尝试用它们来创建一些东西:

  • Learn Ruby The Hard Way 当你学习更多的编程语言时,你会学到更多关于编程的知识,所以试着学习 Ruby 吧。
  • Django 教程 尝试使用 Django web 框架构建一个 web 应用程序。
  • SciPy 如果你对科学、数学和工程感兴趣,那就去学 scipy 吧。
  • PyGame 看看你能否制作一个带有图像和声音的游戏。
  • Pandas 用于数据操作和分析的 Pandas。
  • Natural Language Tool Kit 用于分析文本、编写垃圾邮件过滤器以及聊天机器人等内容的自然语言工具包。还有用于机器学习和可视化的TensorFlow。
  • Requests 学习 web 和 HTTP 客户端。
  • ScraPy 尝试爬取一些网站并获取信息。
  • Kivy 在台式机和移动平台上做用户界面。
  • Learn C The Hard Way 在你熟悉 Python 之后,尝试用我的另一本书学习 C 语言和算法。慢慢来,C 语言与众不同,但它很值得学习。

从以上这些参考资料中选一个,阅读它们提供的任何教程和文档。在查看带有代码的文档时,输入所有代码并使其工作。我就是这么做的。每个程序员都是这么做的。光阅读编程文档是学不会的,你必须去做。在你看完教程和他们的其他文档之后,做点什么。任何东西都可以,即使是别人已经写过的东西。

你要明白你写的东西可能会很烂。我刚开始使用一种编程语言的时候也都写得很糟糕,这没什么。没有人在初学者的时候就能写出完美的东西,任何说他们一开始就完美的人都是大骗子。

如何学习任何编程语言

我将教你如何学习大多数你将来可能想学的编程语言。本书的组织是基于我和许多其他程序员学习新语言的方式。我通常遵循的流程是:

  • 找一本关于这门语言的书或一些介绍性文档。

  • 阅读这本书,输入所有的代码,让它运行起来。

  • 一边写代码一边看书,同时做笔记。

  • 使用该语言去实现一些你用其他熟悉的语言写的小程序。

  • 阅读其他人的代码,并尝试复制他们的模式。

在这本书中,我让你非常缓慢地、小块地完成这个过程。其他书的组织方式可能会不同,所以你必须根据我告诉你的方式来推断它们的内容是如何组织的。

要做到这一点,最好的方法是轻松地阅读这本书,并列出所有主要代码部分的列表。把这个列表变成一组基于章节的练习,然后按顺序一次做一个。

上述过程也适用于新技术,假设有相关的书籍供你阅读。对于任何没有书的内容,你可以使用在线文档或源代码,然后按照上述过程进行学习。

你学习的每一种新语言都会让你成为一个更好的程序员,而且随着你学习得越来越多,学起来会更容易。当你学到第三或第四种语言时,你应该能在一周内学会类似的语言,而学习陌生的语言则需要更长的时间。现在你已经了解了 Python,那么你应该可以很快地学会 Ruby 和 JavaScript。因为很多语言都具有相似的概念,一旦你学习了一种语言中的概念,它们也适用于其他语言。

学习一门新语言要记住的最后一件事是:不要做一个愚蠢的游客。愚蠢的游客是指一个人去了另一个国家,然后抱怨那里的食物和国内的不一样。“为什么我在这个该死的国家吃不到好吃的汉堡!?”当你学习一门新的语言时,要假设它做的事情并不愚蠢,它只是不同而已。接受它,这样你才能学习它。”

在你学习了一门语言之后,不要成为这种语言做事方式的奴隶。有时候,人们使用一种语言来做一些非常愚蠢的事情,不为别的,只是因为“我们一直都是这样做的”。如果你更喜欢自己的风格,而且你知道其他人是怎么做的,那么,如果你的风格使事情得到了改善,你可以随意打破他们的规则。

我真的很喜欢学习新的编程语言。我常常自诩为一个“程序员人类学家”,并且认为这些编程语言代表了那些使用它们的程序员群体的一些洞见。我正在学习一门通过电脑互相交流的语言,真的非常有趣。再说一次,只有当你真正想学的时候,你再去学编程语言。

享受这个过程吧!其乐无穷。