1
0
mirror of https://github.com/apachecn/lmpythw-zh.git synced 2025-05-28 03:58:19 +00:00
lmpythw-zh/part2.md
2017-11-28 00:17:18 +08:00

73 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 第二部分:简单的黑魔法
> 原文:[Part II: Quick Hacks](https://learncodethehardway.org/more-python-book/part1.html)
> 译者:[飞龙](https://github.com/wizardforcel)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻译](https://translate.google.cn/)
你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大脑与这个概念融为一体,你会在你的梦想中看到它,它像幽灵一样困扰着你。下一步就是实现它,将其从大脑中移出并放进计算机。你必须杀死鬼魂,将幽灵从灵魂世界中带出来,将其绑定到一个 Python 图腾上,并将其扔到互联网的海洋中。
对你而言足够有创意嘛?
创造力的敌人就是起步。如果在安装程序的过程中存在障碍,你怎么能实现你的梦想?如果你的想法非常强烈和庞大,让你开始担心呢?你足够好吗?你足够聪明吗?那个著名的程序员,会首先让你写出测试,否则会由于你不知道该怎么做而生气嘛?入门通常是创造力中最困难的事情之一,这本书的这部分旨在让你渡过它。
我是画家,音乐家,作家和程序员,所以我知道一两件关于创意的事情。我更了解入门和流程。当我对处理某个项目不感兴趣的时候,流程是将我拖出项目的泥泞的东西。但是,如果没有首先的起步,我就不能走到这一步。
起步需要勇气,并且对任何人的想法有些不关心。在绘画中,当我不能开始时,我只是随意抓取颜料,并在画布上砸在正确的位置。很多非常成功的画家都是这样工作的。其他画家从头开始研究 - 学习,测试,素描,然后最终将它们全部放到一起来开始。作为一个作家,我所做的第一件事就是在我的房子周围散步,疯狂地和自己说话,想像我正在和某人交谈,然后当我说出足够的说话时,我坐下来写作。我只是写下了出现在我脑子里的第一件事。
我不会坐下来写作,或者担心语法。我不会问,“我很聪明吗?”我只是写出我如何说话,并将其输入键盘,然后当我完成了几个段落,我会看一看。它是否有意义?我需要清理吗?这样的确有效,并让我继续下去。也许我写的是垃圾。但是,我开始了,并且这个很重要。之后,我依靠我的流程把起始点变成一个完整的词。
你如何看待这个创造性的起步?我的朋友,你需要弄清楚,并且这本书会有所帮助。首先我们需要打破你对这个起步的恐惧。也许甚至不再害怕了。也许在你开始编程之前,你需要做大量无意义的事情,这样你才能够溢出所有障碍。
我在第一部分说过,如果你每次去做一件事的时候,你必须清理一小时,并修复一堆工具,你就不会有创造力。
## 如何实践创造力
在这本书的这一部分你将通过让自己立即开始快速实践创造力。我会给你简单的超级无聊的小项目。我的意思是Unix 的`cat`命令只是输出一个文件。老实说就像两行 Python 一样简单。这些项目的起步是重要的为了起步你会变得冷酷无情。你要坐在你的电脑旁边纵身一跃让事情发生。就是现在不是30分钟后。
你怎么做到他呢?你需要一个清单,你需要自动化。清单是你必须准备好去做的所有事情。打开你的电脑,关掉社交媒体,启动你的编辑器,摸一摸你的幸运的橡皮小鸭,做一个神圣的祷告,冥想 10 分钟,然后复制你的项目框架并开始。这是一个例子,但你需要一个检查列表,并且越短越好。
但你不知道这个清单是什么。也许你有一个想法,但你在开始工作之前真的知道你所做的一切吗?这就是每个项目中,你将重点关注的东西。在第一个项目中,你会坐下来尝试一下,但你会记下你所做的一切。你不能管理无法测量的东西,这是衡量自己的第一步,来看看你如何做某件事情。如果你有屏幕录制软件会更好。打开它,并记录你自己写出了一个糟糕的软件,然后观看视频。记下你做了什么
为了确保你不要在项目中埋头骨干而是练习起步你还将为每个项目设置一个严格的计时器。你必须在45分钟内完成最棒的垃圾。不多不少。开始时设置一个45分钟的定时器准备好你的本子和铅笔然后去做吧。当定时器关闭时你完成了。看看你做了什么然后好的那部分才会出现。
每个项目后,拿起你的列表,并找出可以做什么来消除障碍。你坐在那里,做许多小文件,并且必须在互联网上查找嘛?制作项目框架吧。你在文本编辑器中输入命令时似乎有问题吗?花时间学习来更好地使用它,或学习盲打。你不知道基本的命令和 API 吗?去获取一些书来学习吧,我的朋友。
然后删掉代码并重新开始。从头开始。使用新的纸张开始写,或开始录制。无论你需要做什么来跟踪你所做的事情。这次你更进一步了嘛?有更少的障碍吗?你的目标是减少想法和实现之间的时间,直到起步只是你做的一件事情,就像吃饭和呼吸那样,最终你会感觉到起步是自然的,之后你可以继续下一个项目。
请记住,你要立即坐下来并编程。尽管去做吧。如果一个内心的声音告诉你,你这样做错了,就告诉那个愚蠢的声音来让它闭嘴。这才是 Hack。保持放松并全力以赴就像你只是把代码扔给一个朋友它知道你是傻瓜但仍然很有趣。像测试和质量这样的愚蠢的事情可能会在本书的后面出现但现在只需要编程把东西搞乱实现一些黑魔法。获得想法比赢得虚构的质量比赛更重要。
在每个仓促的 45 分钟 Hack 之后,你坐下来查看你是怎么做的。这个“创造然后批改”的流程,将来可以帮助你改善。
## 菜鸟程序员的流程
如果你刚刚开始,并且在启动项目时还是完全失败了,那么我将为你提供一个简化的流程,以便你使用它来开始。这部分的练习是进行 45 分钟的 Hack编程 ),但作为一个菜鸟程序员,你可能需要更多的时间,或者你可能不知道从哪里开始。在这种情况下,请随意使用 60 分钟或使用两个 4 5分钟的时间进行每项练习。
对于一个流程,菜鸟程序员应该在每个会话之前执行以下操作(在启动计时器之前):
+ 准备好你的电脑,并确保你准备好了。
+ 阅读任务描述并记下笔记。这是你的研究阶段,你需要以书面形式收集尽可能多的信息。
+ 进行研究,并将其转化为 TODO 列表,了解你需要做什么来实现这个黑魔法。写下你可以想到的任务。你需要创建什么文件?什么目录?什么功能?你会使用哪些库?
一旦你有了 TODO 列表,你就可以启动定时器了。在你的 Hack 会话中,你将执行以下操作:
+ 选择你的 TODO 上第一个最简单的任务,并完成它。你需要一个文件吗?创建它!你需要一个目录吗?创建他!
+ 检查你刚刚做的工作。
+ 删除当前任务,执行下一个任务。
我认真对待这个流程。它是我使用的一个较小的版本,但它可以用。几乎每个流程都只是“制作一个清单,完成它,检查它”。如果它适用于我,它将适用于你,所以如果你不知道该怎么做,你应该使用它。
## 菜鸟程序员的编程流程
此过程也将适用于你编写的代码。我在第一本书“笨办法学 Python”中介绍了它。当你不确定如何写一段代码时遵循这个流程
+ 用简单的中文写出,你的代码应该做什么。如果你需要把它写成一个段落,那么就这样做。如果你可以把它写成一个任务列表,那就更好了。如果你写出了一个段落,那么你将把它转换成代码必须做的事情的列表。
+ 把这个列表变成注释,把`#`放在每行的前面。
+ 从顶部开始,在每个注释下,编写 Python 代码使其有效。如果注释太抽象,那么将其分解成较小的注释并重复此步骤。
+ 运行代码,来确保你刚才写的内容没有语法错误,并且基本能工作。
这就是你需要做的所有事情。如果你可以用你的中文(或任何自然语言)来表达你想要的代码,那么你可以轻松地实现代码,而不必考虑代码。最终你不需要先写注释再写代码,但是当我卡住的时候我还是这样做的。