原文链接:http://www.juzicode.com/archives/58
看到这篇文章的时候,你应该已经事先解决了为什么(WHY)要学习Python的问题,可能你要写爬虫去爬取某个电商网站的商品对比各种参数,可能你是想用Python解决繁杂重复的图表制作,可能你是想用Python控制你的设备进行自动化测试,也可能你是好奇心的驱动想来看看Python是否有它名声在外般的强大。而本篇文件则是帮你解决怎么样(HOW)学习的问题,接下来的其他文章解决的是学习什么(WHAT)的问题。
1 如何学习一门新语言
1.1 敲下它,运行它,观察它
学习硬件开发你必须准备一套硬件开发环境,可能是一块开发板一套仿真器,甚至还需要示波器、万用表等硬件调试工具,而软件开发却可以更容易获取到开发环境并能动手实践,一台电脑、一条网线就能搞定大部分问题。学习一样新事物一旦有了实践环境,学习效果就会事半功倍。所以在这套系列教程里的代码,务必动手去一行行敲下它,运行它,观察它。只有你真正动手敲下去并且运行过的代码才是你真正学习过的代码,你才会发现书本和教程之外的东西。就拿很简单的缩进举例,你看到教程里的代码缩进都是4个空格字符,如果你或者输入了一个TAB键和4个空格键时,看起来好像都是一样的缩进,但是只有你敲了代码运行它,报错了你才能明白其中的差别。
1.2 学会提炼问题
假设这样一个场景,你写了一大段代码,这个代码并没有按照你预期的目的实现功能,这时想去跟别人讨论你的代码哪里有问题,如果你将一大段代码全部贴出去,跟你交流问题的人阅读代码可能就花费了很多时间,而且人家看完你的这一段代码也未必能明白你的意图。这时候最好的办法是你先分析你的代码,了解问题大概在什么地方,提炼出问题所在再去跟别人交流,讲清楚上下文,把要讨论的代码精简到10行以内,这样的效率会更高。另外在你尝试去提炼问题跟别人交流的时候,你会发现在提炼问题的过程中你可能已经有了解决的思路或者发现问题所在,剩下的只是去验证你的思路。
1.3 自己动手设计实验
如果对某个地方有疑惑,可以通过查找资料、与他人讨论来解决困惑,但最直接最有效的方法是根据你的问题设计一个实验来验证你的想法。
1.4 怎么获取帮助
- 学会使用搜索引擎查找你想了解的内容;
- 关注博客,公众号,加入群聊,问经过提炼的问题;
- Python官网文档:https://docs.python.org/zh-cn/3/tutorial/index.html
2 Python基础学习路线图
步骤 | 内容 | 详细 |
Step1 | 环境、调试手段 | 安装解释器、编辑器,基本调试手段print() |
Step2 | 数据类型 | 数值型、字符串、列表、元组、字典、集合等 |
Step3 | 条件 | 条件语句: if…elif…else |
Step4 | 循环 | 循环语句:for…in… while break continue |
Step5 | 函数 | 函数的定义方法、调用方法。 |
Step6 | 类 | 类的定义方法、使用方法、继承、属性和方法的含义 |
Step7 | 文件操作 | 文本文件的读写;特定格式文件的读写,借用python集成或者第3方库,比如ini、csv、xml、xls等格式文件的读写 |
Step8 | 正则表达式 | re模块,正则表达式使用 |
Step9 | 网络通信 | socket、telnetlib、ftplib等网络通信模块 |
Step10 | GUI界面 | tk,wxpython等图像界面的使用 |
Step11 | 进程、线程 | 多线程,多进程,线程或进程间通信 |
step12 | 其他语言相互调用 | python调用c语言库文件,c语言调用python库,调用其他可执行文件等 |
。。。。。。 |
这里只是列出了Python的一些基础内容,掌握了这些基础内容就可以根据自己的兴趣爱好、工作内容选择某一个专题继续深入学习。
3 保持兴趣
回想下你在做什么事情的时候会觉得吃饭、洗澡都是在浪费时间,恨不得随便扒几口饭、随便冲几下就想回到你刚才在做的事情。你想想在做这件事情的时候是不是觉得很兴奋,充满着对未来的期待?这就是兴趣点燃的激情,有了做某件事情的激情才会持续不断的保持积极的心态和斗志,这样你脑海里就会时不时地思考做这件事情的某个实现细节。
有人可能觉得兴趣这种东西是靠内心驱动的,如果聆听内心的声音,没有Python这个字眼就是对Python没有兴趣,感觉学习就没有了动力。但是我们日常生活中又常说“培养兴趣”,那说明兴趣是可以通过技术性手段来“培养”的。
你有没有这样的经历,十几年的学习生涯中有没有碰到过某个老师有意无意间让你觉得备受打击,你是不是对这门课就提不起兴趣,反过来,如果某门课程老师总是鼓励你,你就会觉得学习很有劲头?这就是“社会认同感”在起作用,现在的自主学习没有老师鼓励你,要怎么才能获得这种社会认同感呢?如果你能结合你的学习、工作写一个自动化工具,减少重复性的工作提高了学习和工作的效率,或者把你的工具推荐给他人,是不是觉得这也是一种很有意义的事情?或者写博客把你的所学所思写出来,这样做就会帮助到他人,看到自己的博客阅读量在增加,看到有人给你评论向你提问,是不是觉得帮助了他人很有成就感?
4 保持好奇心
弗朗西斯·培根说过“知识是一种快乐,而好奇则是知识的萌芽”。好奇心会让你充满求知欲,当我们有好奇心的时候就会去探索,希望得到满足自己好奇心的答案。比如用int()函数做类型转换的时候,报错提示转换的进制入参只能是0、2~36,一般我们用到的最大进制是16进制,用0-9,A-F这16个字符表示16进制,要怎样才能表示36进制?还是这个int()函数,为什么它既可以用来初始化一个整型变量,也可以用来转换一个字符串为数字?比如在if else的代码块中如果不写执行语句,而是写3个省略号,执行起来为什么不报错,3个省略号又是什么含义?当你保持了好奇心,就会想方设法的去弄明白为什么会这样,为什么可以这样,在满足好奇心的过程中,不知不觉中你就学会了很多东西。