前言
Python是一门跨平台的编程语言,例如,将在Windows系统下编写的Python程序移植到类UNIX系统中时,在版本兼容的情况下,不需要修改任何代码。Python语言借鉴了C语言的语法设计,同时结合了ABC语言的优秀特性——面向非专业程序员、简单和语法优美。这让Python在开发者社区中流行起来。虽然Python有让不少初学者难以捉摸的代码强制缩进规则,但对于习惯了代码缩进的开发者来说,这其实是Python有别于其他语言的一个很大的优点。
近几年随着大数据、AI等技术的流行,Python逐渐在各类编程语言中崭露头角,在编程语言排行榜中也一直名列前茅。相比C/C++、Java等编程语言,Python语言学习梯度较平,易学易用,且适用于多类开发领域,如大数据分析、机器学习、计算机视觉等。不仅如此,Python还有着良好的社区开发氛围,所以Python能得到越来越多的计算机编程爱好者的青睐,且越来越流行,也是情理之中。
如何学习编程
初学编程时,读者应对所学的知识建立整体的认识,先学其构架,再探究细节。学一门编程语言,无外乎学习以下5个部分:基本语法、数据类型、数据结构与算法、并发设计和网络编程。建立了整体的认识,了解其大体构架,就大致知道如何学习编程语言了。
以Python学习为例,初学者或普通程序员欲往上进阶,大致需要完成以下4步。
第1步:夯实计算机理论基础。
第2步:精学Python。
第3步:选择一个特定的技术领域,如Web开发、大数据、机器学习、深度学习、计算机视觉或自然语言处理等。
第4步:努力提升自己,精通自己选择的领域。
如何学习Python
学习Python并不等同于学习一个软件,这是一个领域的技术,需要循序渐进、步步为营,切不可择一点而努力。
● 先学其构架,再探究细节
学得怎么样,从细节里见真知。知识的细节很能突显出一个人的功底扎不扎实。以Python中的变量为例,多数初学者知道怎么定义一个Python变量,可变量到底是什么,问其本质,却鲜有初学者答得出。
● 夯实基础,方有进阶之路
许多初学者在学习过程中往往追求速度,恨不得三五天内学完本书全部内容,结果是欲速则不达,最后学得零零散散,不甚系统,近乎什么都没学会。大部分初学者之所以迷茫,概因基础不牢。基础若不牢,何以构建知识的高楼大厦?所以长时间困在原地,止步不前!
不只初学者,不少工作几年的程序员也有同样的困扰:学着学着就迷茫了,工作好几年后突然意识到只能做一些低阶的开发工作,不知道接下来该做什么,亦不知该如何进一步提高个人水平。因此,在学习的时候,切忌急功近利,一定要打下扎实的基础,再开始下一个环节的学习。下面介绍打好基础的方法。
● 学习的6个阶段
(1)快速地学习。在这个阶段只学其轮廓、大概,在脑海里建立起对这门课程的感性认识,只需建立起感性认识,即了解这门课程大概需要学什么。
(2)细究这门课程的来源及历史。通过了解其产生过程、历史,建立起对这门课程的兴趣。例如,Python的发展历史,人工智能的几次大起大落。
(3)为学习这门课程制订学习计划。例如,希望花3个月时间学完,那么对这3个月时间进行细分,计划出哪个时间段该学什么,然后严格按照计划执行。在笔者过往的学习过程中,有时一天学习好几门课程,一本书甚至计划好了一天该看多少页。另外,若这一阶段遇到学习上的难点,可以果断跳过。
(4)学以致用。在这个阶段就是将学过的知识付诸实践。
(5)针对性地学习知识的难点。到了这个阶段,就得问一下自己,还有哪里是没有彻底学明白的,没学明白就继续学。
(6)重复式的学习。学习不是一劳永逸的事,高手都是经历了成千上万次的磨炼才有了现在的成绩。
本书内容
全书一共20章,主要结构为“基础理论学习+课后习题+程序实战+项目开发实训”。对于基础理论的介绍,全书以让读者易于理解为写作前提;对于程序实战知识的介绍,以新颖的“街霸”游戏、影视中的“超杀女”等为故事背景来设计实战小程序;对于项目开发实训的介绍,则以常用的Python Web后端框架Tornado,以及全文搜索引擎Elasticsearch等作为实训项目。
另外,全书穿插了不少“编程小知识”,帮助初学者掌握编程的一些规则和理解专业术语的含义。同时,也加入了“笔者有话说”模块,这些内容都是笔者多年来的编程经验总结,希望对读者有一些帮助。
全书程序实战和项目开发实训均配有源代码和教学视频,获取方法请参考“资源与支持”页。
作者寄语
首先,感谢人民邮电出版社数字艺术分社的邀请。对于我来说,编程可能是一个命中注定的缘分,很荣幸能借此机会分享十多年编程经验。
学习很考验一个人的毅力。长时间地学习,很容易磨灭一个人的学习热情。在这十多年时间里,我见过不少人半途而废,也见过一部分人从对编程的好奇转变为对编程的厌恶。我想告诫读者的是,如果打算投身计算机编程这个领域,那么就要做好长期学习的准备,以及提早做好职业规划。
我很相信缘分。你遇见过的人、做过的选择,都会在岁月的流转中给你带来影响。如果没有当初的选择,我就不会有现在写作这本书的机缘。这本书写得并不完美,不少地方还有待完善。承认自己的不足,并改进不足的地方,这样才能不断精进,更上一层楼。希望读者能够一直保持对学习的热爱,克服学习上的难关,奋勇向前。