前言
久违了!回想20世纪90年代末,那时候我还是个学编程的小伙子,梦想是成为一名黑客。每一期的《2600:黑客季刊》我都会认真钻研。终于有一天,我鼓起勇气参加了该杂志在当地举办的每月聚会,就被其他人的学识震撼到了。(后来我才意识到其中很多人只是表现得自信爆棚,实际上并没有真才实学。)整场聚会上,我都点头如捣蒜,试图跟上他们的谈话节奏。离开后我下定决心,为了在下一个月的聚会中搭得上话,每天一睁眼就要马不停蹄地学习计算机技术、编程和网络安全知识。
然而到了下一次聚会时,我依旧只能点头附和别人,自觉相形见绌。因此我再次下定决心努力学习,要成为一个“足够聪明”的人。月复一月,我的知识确实增加了不少,但依然感觉难以望其项背。我开始意识到计算机领域的浩瀚无垠,怕是自己永远也没办法穷尽了。
我比自己的高中生朋友们懂得更多编程知识,但肯定还没达到可以找到一份软件开发工作的程度。那时还没有谷歌、YouTube、维基百科呢,不过即使出现了,我怕是也不懂如何利用这些资源,也不知道接下来该学些什么。我反倒是学会了用不同的编程语言编写“Hello World”程序,但依然感觉自己没有实际进展,不知道该如何进阶。
软件开发远不止循环和函数。一旦你学完入门教程或者读完编程入门书,试图探寻进阶法门时,却总是会兜兜转转找到另外一个“Hello World”级别的入门引导。这个阶段一般被程序员称为“绝望的沙漠”:你在不同的学习材料之间漫无目的地徘徊,感觉自己毫无长进。你早就不是初学者了,但经验又少得可怜,根本没法处理复杂一些的问题。
处于这个阶段的人经常会强烈地感觉自己像冒牌程序员,既不认为自己是一个真正的程序员,也不知道怎么像一个真正的程序员一样写代码。而我写本书的目的就是成为你的引路人。如果你已经学完了Python基础教程,那么本书可以帮助你消除这种失望感,让你成为更厉害的程序员。