第二部分:简单的黑魔法

原文:Part II: Quick Hacks

译者:飞龙

协议:CC BY-NC-SA 4.0

自豪地采用谷歌翻译

你有最好的想法,你会打动世界!你会成为一个亿万富豪!你的大脑与这个概念融为一体,你会在你的梦想中看到它,它像幽灵一样困扰着你。下一步就是实现它,将其从大脑中移出并放进计算机。你必须杀死鬼魂,将幽灵从灵魂世界中带出来,将其绑定到一个 Python 图腾上,并将其扔到互联网的海洋中。

对你而言足够有创意嘛?

创造力的敌人就是起步。如果在安装程序的过程中存在障碍,你怎么能实现你的梦想?如果你的想法非常强烈和庞大,让你开始担心呢?你足够好吗?你足够聪明吗?那个著名的程序员,会首先让你写出测试,否则会由于你不知道该怎么做而生气嘛?入门通常是创造力中最困难的事情之一,这本书的这部分旨在让你渡过它。

我是画家,音乐家,作家和程序员,所以我知道一两件关于创意的事情。我更了解入门和流程。当我对处理某个项目不感兴趣的时候,流程是将我拖出项目的泥泞的东西。但是,如果没有首先的起步,我就不能走到这一步。

起步需要勇气,并且对任何人的想法有些不关心。在绘画中,当我不能开始时,我只是随意抓取颜料,并在画布上砸在正确的位置。很多非常成功的画家都是这样工作的。其他画家从头开始研究 - 学习,测试,素描,然后最终将它们全部放到一起来开始。作为一个作家,我所做的第一件事就是在我的房子周围散步,疯狂地和自己说话,想像我正在和某人交谈,然后当我说出足够的说话时,我坐下来写作。我只是写下了出现在我脑子里的第一件事。

我不会坐下来写作,或者担心语法。我不会问,“我很聪明吗?”我只是写出我如何说话,并将其输入键盘,然后当我完成了几个段落,我会看一看。它是否有意义?我需要清理吗?这样的确有效,并让我继续下去。也许我写的是垃圾。但是,我开始了,并且这个很重要。之后,我依靠我的流程把起始点变成一个完整的词。

你如何看待这个创造性的起步?我的朋友,你需要弄清楚,并且这本书会有所帮助。首先我们需要打破你对这个起步的恐惧。也许甚至不再害怕了。也许在你开始编程之前,你需要做大量无意义的事情,这样你才能够溢出所有障碍。

我在第一部分说过,如果你每次去做一件事的时候,你必须清理一小时,并修复一堆工具,你就不会有创造力。

如何实践创造力

在这本书的这一部分,你将通过让自己立即开始,快速实践创造力。我会给你简单的超级无聊的小项目。我的意思是,Unix 的cat命令只是输出一个文件。老实说就像两行 Python 一样简单。这些项目的起步是重要的,为了起步,你会变得冷酷无情。你要坐在你的电脑旁边,纵身已阅,让事情发生。就是现在,不是30分钟后。

你怎么做到他呢?你需要一个清单,你需要自动化。清单是你必须准备好去做的所有事情。打开你的电脑,关掉社交媒体,启动你的编辑器,摸一摸你的幸运的橡皮小鸭,做一个神圣的祷告,冥想 10 分钟,然后复制你的项目框架并开始。这是一个例子,但你需要一个检查列表,并且越短越好。

但你不知道这个清单是什么。也许你有一个想法,但你在开始工作之前真的知道你所做的一切吗?这就是每个项目中,你将重点关注的东西。在第一个项目中,你会坐下来尝试一下,但你会记下你所做的一切。你不能管理无法测量的东西,这是衡量自己的第一步,来看看你如何做某件事情。如果你有屏幕录制软件会更好。打开它,并记录你自己写出了一个糟糕的软件,然后观看视频。记下你做了什么

为了确保你不要在项目中埋头骨干,而是练习起步,你还将为每个项目设置一个严格的计时器。你必须在45分钟内完成最棒的垃圾。不多不少。开始时设置一个45分钟的定时器,准备好你的本子和铅笔,然后去做吧。当定时器关闭时,你完成了。看看你做了什么,然后好的那部分才会出现。

每个项目后,拿起你的列表,并找出可以做什么来消除障碍。你坐在那里,做许多小文件,并且必须在互联网上查找嘛?制作项目框架吧。你在文本编辑器中输入命令时似乎有问题吗?花时间学习来更好地使用它,或学习盲打。你不知道基本的命令和 API 吗?去获取一些书来学习吧,我的朋友。

然后删掉代码并重新开始。从头开始。使用新的纸张开始写,或开始录制。无论你需要做什么来跟踪你所做的事情。这次你更进一步了嘛?有更少的障碍吗?你的目标是减少想法和实现之间的时间,直到起步只是你做的意见事情,就像吃饭和呼吸那样,最终你会感觉到起步是自然的,之后你可以继续下一个项目。

请记住,你要立即坐下来并编程。尽管去做吧。如果一个内心的声音告诉你,你这样做错了,就告诉那个愚蠢的声音来让它闭嘴。这才是 Hack。保持放松并全力以赴,就像你只是把代码扔给一个朋友,它知道你是傻瓜但仍然很有趣。像测试和质量这样的愚蠢的事情可能会在本书的后面出现,但现在只需要编程,把东西搞乱,实现一些黑魔法。获得想法比赢得虚构的质量比赛更重要。

在每个仓促的 45 分钟 Hack 之后,你坐下来查看你是怎么做的。这个“创造然后批改”的流程,将来可以帮助你改善。

菜鸟程序员的流程

如果你刚刚开始,并且在启动项目时还是完全失败了,那么我将为你提供一个简化的流程,以便你使用它来开始。这部分的练习是进行 45 分钟的 Hack(编程 ),但作为一个菜鸟程序员,你可能需要更多的时间,或者你可能不知道从哪里开始。在这种情况下,请随意使用 60 分钟或使用两个 4 5分钟的时间进行每项练习。

对于一个流程,菜鸟程序员应该在每个会话之前执行以下操作(在启动计时器之前):

  • 准备好你的电脑,并确保你准备好了。
  • 阅读任务描述并记下笔记。这是你的研究阶段,你需要以书面形式收集尽可能多的信息。
  • 进行研究,并将其转化为 TODO 列表,了解你需要做什么来实现这个黑魔法。写下你可以想到的任务。你需要创建什么文件?什么目录?什么功能?你会使用哪些库?

一旦你有了 TODO 列表,你就可以启动定时器了。在你的 Hack 会话中,你将执行以下操作:

  • 选择你的 TODO 上第一个最简单的任务,并完成它。你需要一个文件吗?创建它!你需要一个目录吗?创建他!
  • 检查你刚刚做的工作。
  • 删除当前任务,执行下一个任务。

我认真对待这个流程。它是我使用的一个较小的版本,但它可以用。几乎每个流程都只是“制作一个清单,完成它,检查它”。如果它适用于我,它将适用于你,所以如果你不知道该怎么做,你应该使用它。

菜鸟程序员的编程流程

此过程也将适用于你编写的代码。我在第一本书“笨办法学 Python”中介绍了它。当你不确定如何写一段代码时,遵循这个流程:

  • 用简单的中文写出,你的代码应该做什么。如果你需要把它写成一个段落,那么就这样做。如果你可以把它写成一个任务列表,那就更好了。如果你写出了一个段落,那么你将把它转换成代码必须做的事情的列表。
  • 把这个列表变成注释,把#放在每行的前面。
  • 从顶部开始,在每个注释下,编写 Python 代码使其有效。如果注释太抽象,那么将其分解成较小的注释并重复此步骤。
  • 运行代码,来确保你刚才写的内容没有语法错误,并且基本能工作。

这就是你需要做的所有事情。如果你可以用你的中文(或任何自然语言)来表达你想要的代码,那么你可以轻松地实现代码,而不必考虑代码。最终你不需要先写注释再写代码,但是当我卡住的时候我还是这样做的。

笨办法学 Python · 续 第二部分:简单的黑魔法相关推荐

  1. 笨办法学 Python · 续 中文版

    笨办法学 Python · 续 中文版 原书:Learn More Python 3 The Hard Way 译者:飞龙 自豪地采用谷歌翻译 在线阅读 PDF格式 EPUB格式 MOBI格式 代码仓 ...

  2. 笨办法学 Python · 续 练习 33:解析器

    练习 33:解析器 原文:Exercise 33: Parsers 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 想象一下,你将获得一个巨大的数字列表,你必须将其输入到电子表格 ...

  3. 笨办法学 Python · 续 练习 0:起步

    练习 0:起步 原文:Exercise 0: The Setup 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你需要设置和配置一些工具来学习此书.有可能你已经有了很多这些东西 ...

  4. 笨办法学 Python · 续 练习 52:`moreweb`

    练习 52:moreweb 原文:Exercise 52: moreweb 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 现在,你已经使用 Python http.server ...

  5. 笨办法学 Python · 续 练习 24:URL 快速路由

    练习 24:URL 快速路由 原文:Exercise 24: Fast URL Search 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 我们将结束数据结构和算法的部分,并将 ...

  6. 笨办法学 Python · 续 第三部分:数据结构

    第三部分:数据结构 原文:Part III: Data Structures 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 你正在以你的方式构建个人流程,它让你以有限的阻碍快速 ...

  7. 笨办法学 Python · 续 练习 9:`sed`

    练习 9:sed 原文:Exercise 9: sed 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 使用这些小型项目来研究你自己是有用的,但让我们来看看你主要关注的主题: 开 ...

  8. 笨办法学 Python · 续 练习 4:处理命令行参数

    练习 4:处理命令行参数 原文:Exercise 4: Dealing with Command Line Arguments 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 在 ...

  9. 笨办法学 Python · 续 练习 36:简单的计算器

    练习 36:简单的计算器 原文:Exercise 36: Simple Calculator 译者:飞龙 协议:CC BY-NC-SA 4.0 自豪地采用谷歌翻译 这个挑战是创建一个简单的代数计算器, ...

最新文章

  1. Python学习—函数
  2. 对话Nullmax无人车CEO徐雷:造血营收L3,追梦宏图L4
  3. 如何在移动硬盘上安装Linux
  4. StringUtils.isBlank()检验String 类型的变量是否为空
  5. 前台线程和后台线程(Foreground and Background Threads)
  6. 团结就是力量,TeamCola浅谈创业团队腾云驾雾的归国征程
  7. 软工第二次结对作业---部门录取方案实现
  8. 小鹏汽车2021财年总收入209.9亿元 同比增长259.1%
  9. EasyNVR摄像机网页无插件直播方案H5前端构建之:使用BootstrapPagination以分页形式展示数据信息...
  10. android 5.1一键root工具箱,一键root大师
  11. 聊天室后台 java php_PHP实现简单聊天室(附源码)
  12. C# 正则表达式数字匹配
  13. 伽罗华有限域_伽罗华域(Galois Field,GF,有限域)
  14. YY 0709|视觉报警信号的要求和测试方法
  15. 短信验证php_php如何实现短信验证
  16. 变限积分 matlab,积分变限函数
  17. .net core借助sendCloud实现邮件验证码发送
  18. 这个英文语法校正插件很赞!可以校正邮件,也可以校正论文
  19. 京东双叠加神单漏洞券操作教程
  20. 数学家教你烤肉饼:按最佳时机翻面可节省近1/3烹饪时间,网友:想去汉堡王应聘厨子了...

热门文章

  1. ajax原生为什么else会执行2次,关于Ajax,明明传过去的值是1,可不知道为什么就是else起作用?...
  2. 19. GD32F103C8T6入门教程-adc使用教程6-外部中断线11触发adc0
  3. 5003.c++定义hpp文件
  4. 如何导出android studio程序,(技术)聊聊Android Studio 如何生成Jar
  5. python语言合法命名的_python语言合法命名_python合法命名
  6. 嵌入式Linux系统编程学习之二十八线程的等待退出
  7. mysql to_minute_mysql的时间转化
  8. Mvc前后端显示不同的404错误页
  9. 做网上商城项目的一点记录
  10. Quartz.Net 使用