最近陆续回答了一些有关Python的问题,其中“中年人一个,想自学python学哪本书好?”的回答阅读量比较多,反映出学习Python的人群里,不仅有年轻人,也有许多和我一样的中年人。
一般到了中年这个阶段,大家已经有了一套自己的学习方法,都能很快找到学习Python的节奏。我会把自学Python的一点体会写下来,希望能给大家一个参考,借鉴,少走弯路,选择一条最适合自己的Python学习之路。
01 为什么学Python?
相信能进来看这篇体会小文的人,都是因为工作或者兴趣要学习Python,不是盲目地,不过我还是啰嗦几句Python的前世今生,已经了解的朋友可以略过。
1991年,荷兰人Guido van Rossum创造出了Python这门程序语言,名字的来源于他特别着迷的一部BBC喜剧系列Monty Python's Flying Circus。
Python的设计理念是“简单”、“明确”、“优雅”。
相对于其他编程语言来说,Python易于学习,它的着重点放在如何解决问题上,而不是语法和结构。正因如此,越来越多的初学者选择Python作为编程的入门语言。山东省在最新出版的小学信息技术六年级教材中,加入了Python的内容。浙江省从2018年起,信息技术教材编程语言从vb更换为Python。
作为一种解释型语言,Python更强调代码的可读性和简洁的语法。采用空格缩进标识代码块,减少毫无用处的大括号,去除句末的分号等,显著提高代码的可读性。例如:
常见于C++的这对大括号的直接去掉,同样的缩进标识出代码块,即使没有接触过编程的人也可以很快读完程序,无需考虑复杂的语法。
Python有非常多的模块库。基本上标准库就能解决各类问题,开发效率很高。相对于C++和Java等其他语言来说,Python可以让我们用更少的代码实现想法,同样的功能Python的代码只有C++和Java的20%到30%。
Python的开发效率高,就能让产品快速迭代,满足需求。像YouTube、Google、Yahoo!、NASA都在内部大量地使用Python,国内知乎、豆瓣网站也基于Python开发。
随着近年来许多公司首选Python来开发人工智能项目,Python也越来越火爆。根据ranked.com的排名,2017年,最受欢迎的人工智能编程语言是Python,第二是C++。
Python很简洁和易于学习,初学者几乎可以立刻学会这个语言,并马上能完成一些很有意思的事,不会因为编译或语法复杂失去学习的兴趣。比如建个人网站,抓取数据进行分析等等。
学以致用,在Python这里展现得淋漓尽致。
正因为Python的简单易学和开发效率高,我们选择了Python,并用于人工智能、Web 开发、网络编程、数据分析、科学计算等领域。
02 怎么学Python
选一本合适的入门书,在Python官网进行辅助学习。
比如《“笨办法”学Python》(Learn Python the Hard Way)
国内可以买到的中文版是基于Python2的第三版,知乎上有赵默水发布的Pyton3的中文译本,可以在线阅读。
这本书以循序渐进的方式介绍Python的基本语法和编程思想,由浅入深,由易到难,非常符合认知规律。书里一共设置了52个练习,可以边学习,边实践,了解Python的输入输出、变量、函数,以及条件判断、循环、类和对象等。
这本书怎么看?
我平时工作很忙,没有大块时间可以看书,只能充分利用碎片时间,比如工作间隙、饭后、通勤路上等等。
做笔记,划重点,前面的章节篇幅非常短,看完只要几分钟,在理解基础上,结合习题内容进行些拓展。
做习题不着急在电脑上敲代码,写到本上,或者电脑的记事本记下思路,画个流程图。
晚上有时间时,在电脑上完成代码的输入,检查并运行。
有人可能会说,那么简单的程序,画什么流程图啊?其实不然,从简单的流程图开始,熟练了,复杂的程序流程图,才能驾轻就熟地画出来。
画流程图也是一个整理思路的办法,配合用思维导图来构建自己的Python知识树,很有帮助。
看这本书,不求快,把基础夯实,只要独立完成这本书的学习,入门是没问题的。
看书的同时,通过Python官网拓展相关内容,比如函数、库等等的用法。
遇到难题,先想后问,一个办法不行,换一个试试。
多看、多想、多练,坚持不懈,要不了多久Python基础部分就拿下了。
剩下的就是选择一个方向来深入学习了。
03 打破思维定势和舒适区
工作时间长了,猛然学习新东西有可能会效率不高,从而对自学有畏惧或者逃避。这也没什么关系,毕竟学新东西是在相对陌生的领域去做钻研,离开了自己的舒适区。这时候就要坚持了,千万不能放弃,不能懈怠。
我在看装饰器时,因为很多地方说得不够透彻,基本算是一笔带过,网上查资料也是众说纷纭,没有特别好的解答。什么类,什么对象,很笼统,怎么办?我是先绕过装饰器这个老虎,用“笨办法”,无非是代码多写一些,先解决问题再说。总之不能就此放弃。
我记得在初中有篇课文是华罗庚谈统筹学,印象特别深,不知大家还有记得那篇课文的吗?
在Python编程过程中,也会有很多类似的问题出现,可以画画流程图,列出可能性,选择一个最好的方法,用最少的时间完成预订目标。
以烧水泡茶为例,它需要做4项工作,即洗好开水壶,洗好茶杯,准备茶叶,冲开水泡茶。
要完成这几项工作,可以有以下几种程序:
1.洗好开水壶,灌上凉水,放在火上,等待水开;水开后,再洗茶杯,准备茶叶,冲水泡茶。
2.先洗好水壶,洗好茶杯,放好茶叶,一切就绪,再放水烧水,水开后再冲水饮茶;
3.洗净开水壶,灌水烧水;烧水过程中,洗茶杯,放茶叶,水开后泡茶喝。
如果在烧水等待水开的过程中,做好洗杯子放茶叶等等准备工作,就可以节约时间。
这也是最基本的算法之一,算法就是另外的话题了。
04 编程工具和外语
用什么工具来写Python代码都没关系,只要选择自己熟悉、顺手的就行,把注意力集中在代码上,不要浪费太多精力在环境配置上。
Sublime Text 3, vi, PyCharm等等都可以。
这三样我都在使用,简单的vi最方便,在一个iTerm窗口里编辑,另外一个iTerm窗口运行。
很多书和资料都是英文的,减少了中间翻译的环节,理解更清晰些。
今天先写到这里,疏漏的地方见谅。
谢谢观看。
欢迎关注公共号“时光知行”。
领取专属 10元无门槛券
私享最新 技术干货