前段时间和大家一起分享了一篇关于学习方法内容《大牛与搬运工的差距——学习方法的力量》。我们将学习过程分成八步,并借鉴了敏捷开发的迭代思想,以达到自我迭代学习的效果。行胜于言,理论结合实践才是王道,所以本文我将基于前面的学习方法,分享我是如何学习python的。
为什么学习python?
“Life is short, you need Python!” ——Bruce Eckel
python是一种被广泛使用的高级编程语言,其代码语法简洁、可读性强,并且具有丰富和强大的库。python简单易学,应用广泛,web开发、爬虫、运维、人工智能……可以说无所不能。python去年还被列入了全国计算机等级考试科目,也逐步成为小白踏上编程之路的入门语言了。
“人生苦短,我用python!”用python干什么?这个因人而异,个人而言,我学习python主要用于两个方向:爬虫和运维,工作上可以帮助我们复杂工作简单化,重复工作自动化,以及以后的人工工作智能化。
本文和大家探讨的是学习python的方法,接下来我们就马上开启python的学习之旅。
1.确立目标
我对python的定位,其实就是一个提升工作效率的工具,我学习python的目的简单明确,总的来说就两个:
1.学习python语言,并能用它来爬取数据做数据分析;
2.使用python制作一些脚本工具,以帮助并提升工作效率。
2.拆分任务
我们通过逆向分解,将目标拆分成具体的可执行任务。这个过程其实就是将目标细分整理成具体的小目标或问题,然后将其关联到一个个可执行的任务,目的是完成目标或解决问题。
完成我的两个目标,需要具体学习哪些知识,完成哪些事项呢?第一个目标需要学习python的基本语法,像数据类型、逻辑结构、列表、元组、字典、引用等基础知识,以及爬虫相关的requests、urllib、pycurl、tornado等模块。第二个目标则需要根据平时工作的实际需求,进一步借助python语言及相应模块来制作脚本工具,以提升工作效率。
梳理之后,目标就会被分解成一个个需要完成的具体任务。这里我借助“然之协同”里的任务管理工具,将需要做的任务都罗列出来,方便后面执行跟踪。
3.搜集知识资源
学习过程中必然少不了各种学习资料,在搜集知识资源时主要侧重三方面:书籍、官方文档和网络技术文章。
我学习的是python 3.x版本,首先找的就是python的官方文档,内容既权威又全面。(英语确实是道坎。)其次书籍买的是《Python基础教程(第2版)》、《Python网络数据采集》,同时网上也下载了基本PDF电子书。除此之外,还在CSDN、掘金、博客园等IT技术门户里查阅一些python相关的“干货”。
对于知识资源的搜集,还是要提醒大家注意一点,切勿做“收藏控”。很多朋友对于书籍、各种教程、网络文章等资源,购买了下载了收藏了,然后,就没有然后了,最终真的沦落为“收藏品”。而我们真正要做的是要把知识“收藏”并沉淀到我们脑子里。
4.分配自身资源
其实就是时间管理。我们时间、精力等各方面资源有限,所有的知识不可能平均分配有限资源。对于我们搜集的知识资源,要分清主次,然后使用不同的时间管理策略进行学习。
前面梳理了一些需要执行的学习任务,并整理了大量的学习资源,这一步要做的就是将这些任务、资源结合自身的实际情况,合理规划分配时间精力。每个人的情况不同,所以这一步因人而异,这里我还是借助“然之协同”的待办工具,做一个具体可执行性的学习计划。
5.勤学
学习效率与效果取决于执行力。之前文章介绍过学习过程中的一些方法论,这里我简要地介绍一下学习python时的大体过程。
a.快速泛读
如果你有一定语言基础,比如我之前学过C、PHP语言,再学起python来上手就相对快一些。基本的语法知识可以先快速过一遍,像python的模块库、对象等知识可以先了解基本的应用流程,具体的细节问题在后面的使用操作时在深入研究。
b.深入解读
由浅入深地沉淀每个知识点。python的语法与其他语言还是有区别的,比如列表、字典、循环结构等,而且python2和python3在语法上也有些变动。虽然我直接学习的python3,但python2的一些不同之处还是要了解的,毕竟很多python资源模块在2上已经很成熟了。
c.问题攻读
对于学习过程中遇到的问题,先查阅资料或谷歌来解决。比如python2和3的区别,作为爬取模块的requests、urllib、pycurl、tornado的区别等等。如果有难以解决的问题,可以先记下,或许后面会柳暗花明或找他人帮助。
这一步学习的正确姿势是在实践操作中发掘问题,然后带着问题找答案。
6.建立知识体系
不要以为这一步可有可无,建立知识体系有助于帮我们理清各个概念和知识点之间的关联,逐渐形成系统的知识体系。基于前面的大量泛读和深入解读,我们可以逐步构建出一个知识体系。这里我借助xmind脑图工具,整理了一下python的知识体系。
7.好问
基于前面问题攻读后还有未解决的问题,就要求教他人获取帮助了。提问也是一门艺术,这仍是一个学习交流的过程,而不是让别人去解决原本你该解决的问题。
向别人提问求助时,要讲问题的来龙去脉讲清楚,如怎么引起的,自己尝试做了哪些操作等等。这些年在众多技术交流社群和平台,见过很多奇葩的提问方式,这里列几个,与大家共勉。
a.直抛结果型
直接甩出一张截图或错误提醒,并附上一句:怎么解决?怎么破?跪求科普……
b.不懂就问型
不动脑,不动手,碰到问题就问。这种选手即便帮他解决了问题,他也学不到东西。
c.懒人型
与前者类似,但更滑稽可笑,看到这种问题我个人向来直接无视。比如“这个问题是这样操作么?”,“我这样整对不对?”,“是点这里么?”……
8.分享复述
其实即便不提“费曼技巧”,我们很多人在学习时都会用到分享复述这个方法。无论是演讲、录视频、还是写文章,其实都是在向他人阐述自己对知识的理解和观点,然后大家会给自己一些反馈,比如你的错误、问题,接着自己再回归到知识里完善不缺“漏洞”,如此迭代学习。
实战演练
我之前整理的另外两篇python实例:
《[实战演练]python3使用requests模块爬取页面内容》
《Python3分析sitemap.xml抓取导出全站链接》
小结
我将自己学习python的过程分为八步:
1.确立目标:没有目标的学习是不会有结果和效果的。
2.拆分任务:将目标分解成具体可执行的学习任务。
3.搜集知识资源:查阅官方文档、购买书籍、搜集网络干货文章。
4.分配自身资源:合理分配时间精力,制定学习计划。
5.勤学:强大的执行力是学习的根本保障。
6.建立知识体系:将学习的知识在脑海里建立系统模型。
7.好问:避免孤立学习,但好问也要会问。
8.分享复述:检验学习成果,提高学习效果的最好方法。
作者:GavinHsueh,QQ/微信:753391279,专注项目管理、办公自动化、网站建设等web应用开发领域。
更多技术文章、互动交流,欢迎关注公众号:
相关推荐
Jenkins Pipeline 调用 shell、python、java、groovy 脚本的正确使用姿势 Jenkins Pipeline 是一个强大的自动化工具,可以帮助开发者自动化构建、测试和部署流程。在设计 Pipeline 脚本的过程中,经常会遇到调用...
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
从ImageNet2012分类数据集中选取的100张图片,用于对常见分类模型进行量化。 数据集介绍 数据背景: 静态离线量化方法需要少量校准数据,这个数据集用于量化演示示例。 数据来源: 基于Imagenet2012测试数据集,取前100张图片和标签作为本数据集。
内容概要:本文详细介绍了计算机的发展历程及其核心组成部分,从早期计算工具的演进到现代计算机的诞生,重点探讨了冯·诺依曼体系结构的重要性。文章回顾了从机械计算器、ENIAC到微处理器的科技进步,阐述了计算机五大组成部分(运算器、控制器、存储器、输入设备、输出设备)的功能与协作机制。同时,文中还讨论了操作系统、编程语言、数据库管理系统等软件层面的内容,以及量子计算和神经形态计算等前沿技术对未来计算机发展的影响。; 适合人群:计算机专业学生、计算机爱好者及对计算机技术感兴趣的读者。; 使用场景及目标:①帮助读者理解计算机硬件的基本组成和工作原理;②解释软件与硬件之间的协同关系;③介绍量子计算和神经形态计算等新兴技术的发展趋势及挑战。; 其他说明:掌握计算机组成原理有助于读者深入了解计算机系统的工作机制,培养硬件思维和系统思维,为后续学习操作系统、编译原理、计算机网络等课程打下坚实基础。同时,对于广大计算机爱好者而言,了解计算机组成原理可以让他们更好地理解计算机的运行机制,在使用计算机的过程中更加得心应手。
中国移动2024年6G通感算智融合技术体系白皮书1.053页.pdf
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
通信工程分包合同.docx
基于Qt+C++实现的物联网景区地质灾害监测系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 本项目利用Zigbee协议搭建了专属物联网,搭建了以Cortex-A8为主核的本地网关,租用阿里云组建系统服务器,并建立了相关网站。监测中心站通过客户端监控易发灾害点数据,在灾害爆发前做好预防工作;普通用户可以通过网站查看各项数据。 基于Qt+C++实现的物联网景区地质灾害监测系统+源码+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 本项目利用Zigbee协议搭建了专属物联网,搭建了以Cortex-A8为主核的本地网关,租用阿里云组建系统服务器,并建立了相关网站。监测中心站通过客户端监控易发灾害点数据,在灾害爆发前做好预防工作;普通用户可以通过网站查看各项数据
CNC_控制器_STM32_开源项目
世邦魏理仕:2022年北京房地产市场回顾与2023年展望
科学发展观与建筑企业管理论文.docx
爱普生L130
基于javaScript+Springboot+Vue实现的校园社团信息管理系统+源码+演示视频+项目文档,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用,详情见md文档 园社团信息管理系统管理员功能有个人中心,学生管理,社长管理,社团分类管理,社团信息管理,加入社团管理,社团成员管理,社团活动管理,活动报名管理,系统管理等。社长添加社团,管理员审核社团,学生加入社团,社长审核社团。因而具有一定的实用性。 本站是一个B/S模式系统,采用Spring Boot框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得校园社团信息管理系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高校园社团信息管理系统管理效率。
apk文件
JDK1.7及之前HashMap的put方法图解
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
文档支持目录章节跳转同时还支持阅读器左侧大纲显示和章节快速定位,文档内容完整、条理清晰。文档内所有文字、图表、函数、目录等元素均显示正常,无任何异常情况,敬请您放心查阅与使用。文档仅供学习参考,请勿用作商业用途。 你是否渴望高效解决复杂的数学计算、数据分析难题?MATLAB 就是你的得力助手!作为一款强大的技术计算软件,MATLAB 集数值分析、矩阵运算、信号处理等多功能于一身,广泛应用于工程、科学研究等众多领域。 其简洁直观的编程环境,让代码编写如同行云流水。丰富的函数库和工具箱,为你节省大量时间和精力。无论是新手入门,还是资深专家,都能借助 MATLAB 挖掘数据背后的价值,创新科技成果。别再犹豫,拥抱 MATLAB,开启你的科技探索之旅!
Epson_L301303.zip
ISO8583报文协议讲解.ppt