现在还不能说你是一个程序员。这本书的目的相当于给你一个“编程棕带”。你已经了解了足够的编程基础,并且有能力阅读别的编程书籍了。读完这本书,你应该已经掌握了一些学习的方法,并且具备了该有的学习态度,这样你在阅读其他 Python 书籍时也许会更顺利,而且能学到更多东西。
我建议你看看这些项目,并尝试用他们创建一些什么:
> - [`Learn Ruby The Hard Way`](http://learnrubythehardway.org/) 你学习更多的编程语言,你将学习到更多关于编程的知识,所以试着学习Ruby。
> - [`The Django Tutorial`](https://docs.djangoproject.com/en/1.4/intro/tutorial01/) 尝试使用 [`Django Web Framework`](https://www.djangoproject.com/) 创建一个web应用。
> - [`SciPy`](http://www.scipy.org/)[`Dexy](http://dexy.it/)`:如果你在科学,数学,工程领域,如果你想写出很棒的论文,使用SciPy 的代码
> - [`PyGame`](http://www.pygame.org/news.html) 看你能不能制作出一个带音效和图像的游戏
> - [`Pandas`](http://pandas.pydata.org/) 用来做数据分析和处理
> - [`Natural Language Tool Kit`](http://nltk.org/) 用来分析书面文本和写作比如垃圾邮件过滤器和聊天机器人。
> - [`Requests`](http://docs.python-requests.org/en/latest/index.html) 了解HTTP客户端和WEB
> - [`SimpleCV`](http://simplecv.org/) 让你的计算机看到现实世界中的东西
> - [`ScraPy`](http://scrapy.org/) 网络爬虫
> - [`Panda3D`](https://www.panda3d.org/) 用来制作3D图画及游戏
> - [`Kivy`](http://kivy.org/) 用来制作桌面和移动平台的用户界面。
> - [`SciKit-Learn`](http://scikit-learn.org/stable/) 用来制作机器学习的应用
> - [`Ren'Py`](http://renpy.org/) 用来做互动小说类的游戏,有点像在本书中你做过的游戏,但是这个是有图像的
> - [`Learn C The Hard Way`](http://c.learncodethehardway.org/) 在你熟悉python语言之后,尝试用本书中的算法学习C语言,慢慢学 C 是不同的但很值得去学习的语言
选择一个上面的源代码,通读他们的所有说明手册和文档。当你阅读它的文档和代码的时候,输入所有的代码,并让代码运行起来。我就是这么做的。也是所有程序员的做法。阅读文档并不足够能使你学会它,你必须亲手实践。读完他们的说明手册和文档之后,尝试做一些小东西,任何东西都可以,即便是别人已经写过的。
Just understand anything you write will probably suck. That's alright though I suck at every programming language I first start using.?? Nobody writes pure perfect gold when they're a beginner, and anyone who tells you they did is a huge liar.只要你明白你写的任何东西都将是吸引人的。每当我第一次开始使用一种语言编程的时候。。?没有人能在作为一个初学者的时候写出完美的代码,如果有人这么告诉你,那他一定是个大骗子。
### 如何学习其他编程语言
我将要教会你如何学习其他编程语言。本书的组织是基于我和很多其他程序员如何学习新的语言。我一般遵从一下流程:
> 1. 找一本关于这门语言的书或者其他说明资料
> 1. 通读这本书,练习输入这本书所有的代码,并保证他们能正常运行
> 1. 练习代码的同时仔细阅读这本书,并做笔记
> 1. 用这门语言实现一些小程序
> 1. 阅读别人用这门语言写代码,并尝试复制他们东西
本书中,我强迫你用很慢的速度一小部分一小部分的完成这个流程。其他的书中不一定是相同的方法,这意味着你要自己推断出我是如何让你进行这些步骤的去完成他们书中内容的。最好的办法是快速的阅读这本书,列出书中所有重要的代码段。把这个列表按章整理成一系列练习题,然后按顺序每次完成一个。
上面的流程同样适用于一些没有提供说明书给你的新技术。对于没有说明书的技术,你可以从网上搜索相关文档或源代码,并进行以上流程。
每学一门新语言,都会让你离更好的程序员更进一步,你学的越多,他们对你来说就越简单。通过你的第三或第四语言,你应该能够在一个星期内学会相似的语言,陌生的语言花费的时间要长一些。现在你已经学会了python,那么你就能通过比较快速的学会Ruby和js。这是因为许多语言有着相似的概念,一旦你学会一种,它们在其他语言里也是一样的。
你要记住的关于学习新语言的最后一件事情是:不要做一个愚蠢的观光者。愚蠢的人旅游到另一个国家,然后抱怨食物不像家里的食物。“在这个愚蠢的国家,为什么我不能获得一个更好的汉堡!”。当你学习一门新语言的时候,要坚信它不是无聊的,它只是跟之前的不同而已,拥抱它,你才能学得更好。
在你学习一种语言之后,不要成为一个以语言的方式做事情的奴隶。有时候,人们竟然使用语言做一些白痴的事情,仅仅是因为“我们一直是这么做的”。如果你喜欢你的风格并且你知道其他人都这样做,如果可以优化一些事情,那么打破这个规则。
我真的很享受学习新的编程语言。我认为自己是一个“程序员的人类学家”,并且认为使用这些语言的程序员只洞察到这门语言很小的一部分。我正在学习一门大家都用来在电脑上互相交流的语言,我发现它非常迷人。再说一次,我是一个奇怪的人,学习编程语言只是因为我想学。
享受它们!真的很有趣!
- 序言
- 前言
- 简介
- 0:安装和准备
- 1:第一个程序
- 2:注释和“#”井号
- 3:数字和数学计算
- 4:变量和命名
- 5:更多的变量和打印
- 6:字符串和文本
- 7:更多的打印(输出)
- 8:打印, 打印
- 9:打印, 打印, 打印
- 10:那是什么?
- 11:提问
- 12:提示别人
- 13:参数, 解包, 变量
- 14:提示和传递
- 15:读文件
- 16:读写文件
- 17:更多文件操作
- 18:命名, 变量, 代码, 函数
- 19:函数和变量
- 20:函数和文件
- 21:函数的返回值
- 22:到目前为止你学到了什么?
- 23:阅读代码
- 24:更多的练习
- 25:更多更多的练习
- 26:恭喜你,可以进行一次考试了
- 27:记住逻辑
- 28:布尔表达式
- 29:IF 语句
- 30:Else 和 If
- 31:做出决定
- 32:循环和列表
- 33:while循环
- 34:访问列表元素
- 35:分支和函数
- 36:设计和调试
- 37:复习符号
- 38:列表操作
- 39:字典,可爱的字典
- 40:模块, 类和对象
- 41:学会说面向对象
- 42:对象、类、以及从属关系
- 43:基本的面向对象的分析和设计
- 44:继承Vs.包含
- 45:你来制作一个游戏
- 46:项目骨架
- 47:自动化测试
- 48:更复杂的用户输入
- 49:写代码语句
- 50:你的第一个网站
- 51:从浏览器获取输入
- 52:开始你的web游戏
- 来自老程序员的建议
- 下一步
- 附录A:命令行教程
- 简介
- 安装和准备
- 路径, 文件夹, 名录 (pwd)
- 如果你迷路了
- 创建一个路径 (mkdir)
- 改变当前路径 (cd)
- 列出当前路径 (ls)
- 删除路径 (rmdir)
- 目录切换(pushd, popd)
- 生成一个空文件(Touch, New-Item)
- 复制文件 (cp)
- 移动文件 (mv)
- 查看文件 (less, MORE)
- 输出文件 (cat)
- 删除文件 (rm)
- 退出命令行 (exit)
- 下一步