从正式开始学习Python到现在差不多8个月的时间了,虽说进展比较缓慢,但多少也算有些进步和体会,现在想把把这大半年来的学习情况简单梳理一下,既是给自己做个总结,也希望能给与我情况类似的朋友们一点帮助。
本篇文章有几千字,是奔跑的鳄鱼同学辛苦写了几天的总结,也许对初学者有用,建议大家耐心看完。
一.我的情况
作为一名非技术类岗位在职人士,学习Python不以转行求职为目标、不以提升工作能力为目的、不以直接经济利益为诉求,仅仅当作一项业余活动来看待。当然,这种情况下学习的劣势是显而易见的:
-
没有明确的目标,学习方向不固定
-
没有强烈的动机,学习欲望不强烈
-
没有项目的支撑,学习环境不理想
就我自身情况而言,由于长期从事非技术类岗位的工作,无论对web开发还是数据分析,相关知识都比较欠缺。 另外由于工作比较忙,不能保证每天都有机会使用互联网,相信就这一点而言,很多打算学习Python的朋友都要比我有优势。
不过,严格来说我也不算是完全零基础,毕竟是工科专业出身,读书时参加过ACM之类的比赛,做过计算机方面的一些项目,编程的基础还是有一点。
二.心路历程
从最开始接触Python到现在,我把自己的学习历程大体分成徘徊、入门、进阶三个阶段。
1.徘徊
最开始了解Python这门语言大概是2年多以前的事了,当时动过学Python的念头,但就像前面说的那样,缺乏明确的目标和强烈的欲望,学习这件事刚开始不久就被***期搁置了。
第二次打算学习Python是去年夏天,当时刚好自学通过了一门资质认证,下半年打算给自己再找一个新目标,就又想起了Python,庆幸的是这次坚持了下来,一直到现在。
说起来这次能够成功入门并坚持学习,“菜鸟学Python”这个头条号功不可没,事实就是地讲,这个头条号里有很多适合小白和新手的东西,能够让你在短时间内对Python语言、应用领域、学习方向有一个大概的了解,能够帮助你一步一步地正式展开对Python的学习。
2.入门
要想入门一门语言,有两个要素无法回避的,一是学习资料,二是开发工具。
1).学习资料
网上的视频、书籍、博文等学习资料可谓铺天盖地,但毕竟我们的学习时间是有限的,不可能去一一尝试,选好适合自己的学习方式和资料对入门者来说是很关键的一步。
我的选择是阅读纸质书籍,选几本适合自己的书静下心来认真阅读,书中的代码一定要仔细琢磨(有条件的可 以自己把代码写一遍,加深理解),实在看不懂的地方可以暂时跳过,但一定要坚持读下去,说白了就是“硬啃”。
这里我着重介绍两本入门书籍:
-
《a byte of Python》:它***的作用是让你对Python这门语言有一个 整体、全面的了解,为下步学习奠定基础。
-
《Python核心编程(第二版)》:需要注意的是 要一定要买“第二版”而不是“第三版”,另外这本书的中文版里面有一些错误,如果遇到了请不要怀疑,它就是错的!
2).开发工具:
学习Python以来,陆续接触过IDLE、pycharm、sublime text、spyder、Ipython五个编辑器,往期文章里有篇文章(Python开发工具之神兵利器),对开发工具进行了推荐,这里我简单阐述一下对上述五种工具的使用感受:
-
IDLE: Python安装自带工具,被很多人诟病,但我觉得它安装简单,反而很适合初学者。如果实在不喜欢,可以在学习一段时间后改选其他的工具。
-
pycharm:专业级神器,缺点是比较笨重,平时写小程序的话一般不用。
-
sublime text:轻量级神器,我的***,非常喜欢它的界面。
-
Anaconda:集成了大量数据分析相关库,安装方便,另外它的调试功能据说也比较强大。缺点是界面比较难 看,代码补全功能也不完善。
-
Ipython:又称jupyter,Anaconda自带,我最近才开始使用,能够实时查看代码输出(这一点也很适 合初学者)
***再补充一点Python版本选择的问题,其实这个问题真的真的不用纠结,因为py2和py3的差别非常小,随便选一个尽快上手才是真谛。当然,对于没有明确需求的初学者,我还是建议选择Python入手,毕竟Py3是大势所趋。
3.进阶
这里所谓的“进阶”并不是说已经度过了入门阶段,而是指在学习Python基本语法的基础上做一些扩展,向着实际应用迈出***步。
目前来看学习Python主要有三个方向:web开发、数据分析、机器学习。个人觉得Python在web开发领域没有太大的优势,而机器学习需要大量的理论和技能基础、入门门槛较高,所以我最终的选择是从数据分析入手。
这一阶段的学习方法除了自己阅读资料外,***能找一些外部的支持,对口专业的在校生和在职人员或者是身边的老手请教。如果都没有可以从网络上寻求帮助,这方面我主要采取了下面两种途径:
1).结合自身情况购买一门在线课程
买在线课程的***作用不是它提供的视频和资料,而是给你一个与其他人共同学习交流的氛围和机会,有的课程会设置进度或者时间限制,这些都可以对自学起到督促作用。
现在网上的课程很多,我觉得没有***的,只有最适合。有的课程一套七八千RMB,虽然质量很高,但对于业余玩家来说是否必要还要看自己的选择。
我当时选的是一套300元左右的爬虫课程(为了排除打广告的嫌疑,平台名称这里就不写了),说这套课程有些缺陷,但它确实成功地带领我入门爬虫、入门数据这个领域,客观来讲还是物有所值的。
2).寻找并加入适合自己的网络群体
一个人自学很有可能因为动力不足而中途放弃,可以尝试加入一个或几个适合自己的网络群体(QQ、微信、 社区等),寻找志同道合的学习伙伴,相互交流、相互促进.如果大家想要学习交流欢迎给我私信,私信关键词:001.系统坚持到关键词会自动发送。
三.学习体会
1.坚持学习
坚持是一个老生常谈的话题,不过这里想说的重点略有不同,生活中我们都有很多事情要忙,不是所有人都能坚持每天挤出时间来 完成学习任务。
对于这一点我们要正确看待,“三天打鱼两天晒网”的状态是很正常的,学习中断了等有时间后继续就可以,要学会调整心态,不必因学习受阻而气馁、放弃,要接受这种并不顺利的学习状态,这才是我们业余学习者应有的坚持。
2.细化目标
在学习过程中,***能够制定比较细小的目标,然后不断更新,像做一个web网站、开发一个小游戏之类的中 期目标,个人认为并不适合每一个初学者。
我们需要根据自身的学习程度和技能水平不断细化、调整当前的目标, 例如在语言学习初期可以设定“搞清楚is和==之间的关系”、“学习模块调用”之类的目标。
随着学习的推进可以调整 为“写一个小型爬虫”、“清洗并分析一组数据”之类的目标,以此类推。制定适合自己的目标可以让学习更有动力, 反之则会增强挫败感。
3.多练多看
-
“练”是指在学习过程中要勤于动手写代码,在学习初期,哪怕是照抄书本上的代码也可以加深对程序的理解
-
“看”是指要善于阅读和学习其他人优秀的代码,这样才有可能慢慢体会到python真正的精髓所在。