1
0
mirror of https://github.com/apachecn/lmpythw-zh.git synced 2025-05-24 01:22:38 +00:00
lmpythw-zh/intro.md
2017-11-27 23:03:48 +08:00

37 lines
5.2 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.

# 引言
> 原文:[Introduction](https://learncodethehardway.org/more-python-book/intro.html)
> 译者:[飞龙](https://github.com/wizardforcel)
> 协议:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/)
> 自豪地采用[谷歌翻译](https://translate.google.cn/)
流程,创造力和质量。在阅读本书的同时,将这三个词写入你的脑海中。流程、创造力、质量。这本书可能充满了重要主题的练习,每个程序员都应该知道它们,但是从书中获得的真实知识就是这三个词。我写这本编程书的目的是告诉你,我所知道的是,软件中最重要的三个常量。没有流程,你会迷失在想知道如何开始,并有维持长期项目的进展的问题。没有创造力,你将无法作为程序员解决每天遇到的问题。没有质量,你不知道你所做的任何事情是否良好。
教你这三个概念很简单。我可以简单地写三篇博客文章,并说:“你去看看,然后你就知道这三个字是什么意思。” 这不会让你成为一个更好的程序员,绝对不是一个可以在未来 10 到 20 年内自食其力的开发者。仅仅知道大概的流程并不意味着,你可以在现实实践中实际应用它。阅读关于创造力博客文章,并不能帮助你弄清如何写出有创造力的代码。要真正理解这些复杂的主题,你将需要将其内在化,最佳方式是将其应用于简单的项目。
当你通过书中的练习,我会告诉你,你将要处理的三个中的哪一个。这是我相对其他书籍的一个改变,其中我试图暗中让你在无意中学习概念。这次我会明确表达,因为很重要的一点就是,把这个概念牢牢地保存在你的头脑中,这样你就可以在练习过程中实践了。然后,你将评估你对应用这个实践的尝试效果如何,以及下一次可以做些什么来改进。本书的一个重要组成部分是,能够客观地反思自己的能力,以及改进自己的能力。在完成一些其他目标的同时,通过专注于一种技术或实践来做到它。
除了流程,创造力和质量外,你还将学习五个重要主题,我认为现代程序员需要掌握它们。这些可能会在未来发生变化,但是它们在过去近十年间是至关重要的,因此除非技术发生了巨大的变化,否则它们仍将适用。即使是一些东西,像第六部分中的 SQL也仍然是相关的因为它教你如何构建数据以便在后面不会在逻辑上崩溃。你的次要教育目标是
+ 入门 - 你可以通过执行快速的 Hack 来了解如何启动项目。
+ 数据结构 - 我不教给你每一个单一的数据结构,但是让我们开始更完整地学习它们。
+ 算法 - 不能处理的数据结构相当无意义。
+ 解析文本 - 计算机科学的基础是解析,知道如何实现它,可以帮助你学习编程语言,当他们变得流行的时候。
+ 数据建模 - 我将使用 SQL 来教会你,以逻辑方式为存储数据建模的基础知识。
+ Unix工具 - 命令行工具在本书中用作要复制的项目,然后你还可以学习 Unix 命令行高级工具。
在这本书的每个部分,你将一次性专注于三个实践中的一个或两个,直到最后,在第七部分中,你将构建一个简单的网站来应用它们。大作业并不吸引人。你不会学习如何创建下一个创业公司,但他们是很好的小项目,将帮助你在学习 Django 时应用你所熟悉的知识。
## 完全是个人的事情
许多其他的书被设计为,在团队背景下教你这三个概念。当这些书向你讲述流程时,全部都是如何在项目中与另一个人合作来维护代码。当他们教授创造力时,全部都是如何和你的团队开会来向客户询问问题。可悲的是,这些“专业”书籍绝大部分都没有教授质量。这一切都很好,但是对于大多数初学者来说,这些团队风格的书籍有两个问题:
+ 你没有团队,所以你不能练习它们教给你的东西。面向团队的书籍专为那些初级程序员而设计,它们已经有工作,并需要在刚加入的团队工作。在这种情况发生之前,任何团队导向的书籍对你来说都是无用的。
+ 如果你自己的个人过程,创造力和质量是一团糟,学习如何在团队中工作有何意义?尽管“团队精神”的粉丝们说,绝大多数的编程任务都是独立完成的,你对自己的技能的评估通常是独立完成的。如果你在一个团队工作,但是你的代码始终是低质量的,并且你不断向团队成员寻求帮助,那么你的老板会给你较低评价。由于它们始终讨论团队有多厉害,当一个初级程序员无法单独工作时,他们从来不会责怪团队。他们责怪初级程序员。
这本书并不会帮助你成为一个在大企业混日子的优秀程序员。这本书帮助你提高你的个人技能,使你得到一份工作时可以独自工作。如果你改善你的个人流程,那么你会成为一个更强大的团队贡献者。这也意味着你可以启动和发展自己的想法,这是绝大多数项目开始的地方。