当前位置: 首页 > news >正文

python考研参考书目_Python自学日记28——如何选择学习资料

这两天把数据结构和算法当做定期学习任务转向web开发阶段学习,前天开始学习Django,发现资料过时,很多Django代码在新版本里总是报错,刚开始还坚持了一段时间,把最初的步骤都通过查别人的调整代码跑通了,但是后面问题有些确实自己解决不了就暂时放弃不从头学起直接按照教程做一个小项目的冲动了。

这其中其实有一个我图快的问题,本来想着按照书上做一个例子大致跑一遍,后面有时间慢慢学这些基础的,然后发现这种资料的一个问题就是它只告诉了你步骤,却不告诉你为什么这么做,就像之前我敲过的其他资料的代码一样,如果不理解,敲完一遍什么都记不住。结果过了一段时间差点又走老路。这也是我现在比较反感那种只按照自己的步骤讲例子的教程。而这种资料恰恰是现在最多的。

我经过之前自学Python坚持一段时间断掉,这次又重新拾起来的经历发现,自学尤其是刚开始自学的时候有这么几个问题我自己一直比较纠结,系统的学习路线、到底哪种资料比较好、到底哪个开发软件是最合适的等。很多时候没有明确的学习路线、中途遇到问题解决不了就容易打消自己学习的积极性。

这让我想起之前听人家讲过为什么在很多人自学英语好几年依然学不好,英语很难吗,难道比注会和司法考试还难吗,可能其中一个比较大的原因是没有一个明确的路径或者方法。注会、考研、司法考试这种是因为有一个明确的方法和路径,看哪几本书上什么课,在什么时候该复习什么,然后经过一个明确的检测标准过后就知道自己行不行了。而英语呢,自己根本不知道该如何自学或者说学习路线不是很明确。这应用到自学Python中也是一样的。

所以我这次学习Python之前在网上找了一些别人写的学习路线的文章,教你应该先学习什么后学习什么。这种网上其实也有人问过,不同的人学习Python的目的不一样可能具体路线不同,但学习前先知道自己什么时候该学到哪里是一个不错的监督自己的过程。这样中途放弃的概率会小一点。GitHub上好像有一个100天自学Python的教程,当然我并不鼓励按照他的内容来学习,但是按照他的大致路线自学还是可以的。其他的可以自行去网上查一下学习路线。

有了学习路线下面就是学习资料的事情了。刚开始可能最主要的学习资料就是书籍和教学视频了,过了一定阶段大概看官方文档和GitHub上的源代码就是主要学习途径了。我还没到那个时候所以讲讲前期的资料问题。

我觉得不管哪种资料,时效性可能是我们应该比较关注的问题,尤其是最初自学的时候。拿到一个过时的资料跟着敲完代码报错,但自己又不会根据错误查资料调试修改bug时那种绝望的感觉我想大家也不愿意体会,我反正因为这个放弃过,所以还是在最开始的时候找一本最新版本的教材是比较好的。拿Python入门资料来说,如果你现在找到一本以Python2.7讲的入门资料作为第一本或者第一个教学视频来跟着学那我肯定是不推荐的。找资料时可以先去网上看看你要学习的语言或其他框架最新版本是什么,然后看是否有相关的入门资料。

说到资料选择我现在觉得,如果是你要安装软件或者最初该如何使用编译器那应该选择视频教程,因为这种一般会比较直观,应该也能找到最新版本的软件教程。但是如果你想系统的学习一门语言,找一本好的入门书籍应该是比较好的。我这么讲的原因是视频质量首先不好判断,尤其是现在网上那么资料,不管谁都在网上录教程,每个人的讲课速度、风格都有差异,总之你不看一段时间根本判断不出哪个好来,而且我觉得视频不是一个好的跟着敲代码的资料。我试过,不断的暂停、返回看挺麻烦的。视频多是演示,很多时候讲的也不够细。

书籍来说显然更直观,你可以从头到尾大致翻翻,知道一个大概。挑选书的时候最好是有练习题的。不过多数练习题没有答案这事比较烦人。练习题设计是一个比较讲究的事情。我入门推荐《像计算机科学家一样思考Python》,推荐这个的原因是起码里面的练习题我觉得挺好的,既让你用到刚学的知识,有时候也会让你将原来做过的练习用新学的内容再做一遍,或者将现有知识将之前的结合起来。这是比较好的地方。不过我更喜欢的点是这本书让我对调试bug这件事有所改观。我之前因为刚开始自学因为出bug自己解决不了各种头大,特别怕和反感报错,但是这本书告诉我调试bug是一种很好的学习方式,每次出bug都说明你又有新的知识要掌握了。老手喜欢调试bug,反而新手都比较反感。

我这次自学Python决定把自学过程记录下来,一个原因是我应该学着或者说试着把自己向外界展示,否则别人根本不知道你能干什么会干什么,我应该试着让自己的能力外显,记录这个学习过程算是一个实验性的开始;另一个原因就是我想把自己在自学的过程中的出错以及解决问题的思考过程记录下来。我刚开始自学时看资料时最大问题就是他们都是资深开发者敲一遍就成功或者说他们只把自己成功的代码展示出来,没有太多的学习意义,因为自己出了一个错误就卡住解决不了。所以我把这个出错和解决问题的过程思路写下来希望对后面我自己再回头看或者别人看我文章时有所帮助。

好像扯远了,这两天我根据阶段性路线学习了HTML、CSS和数据库基础,因为都是作为了解性内容,所以我选择看视频。这也是我第二个观点,就是如果你要学习的内容并不是需要非常深入的,看视频是个不错的选择,不用一步步敲代码,只需要大致了解就行的,看视频会相对轻松一些,因为这个能看到直接效果。否则看书不敲一下代码总觉得不够直观。这次我是在阿里云大学网站上学的,阿里云退出了一些基础课程的学习路线,这是我选择的一个原因,另一个就是他们系统的梳理了一个入门路线并为每个阶段准备了课程,虽然多数不是阿里自己人录的,但是毕竟梳理过路线,想必视频内容也是经过筛选过的。所以我选择了这个。如果要学习这种视频资料,阿里云、腾讯云等各大公司上都会推出一些开发基础课程,作为入门资料应该也不错。而且是免费的。当然如果有钱去优达学城这种专门在做网上教学的网站也可以。毕竟这种你有问题还有人帮忙解答。

我是一个资料收集控,刚开始想学Python时总想着找各种资料各种书籍,但后面发现其实真的看不过来,倒不如跟着一本书认认真真的敲一遍,最重要的是把练习做了,通过自己的思考和解决错误的过程才有明显的进步的感觉。后面再加上有明确的学习路线指引,才比较好坚持下来。

过了入门阶段,我现在对标准库、面向对象编程和数据结构和算法感兴趣。打算将这三个作为接下来一段时间定期学习的任务,为此我找了《Python3标准库》、《Python面向对象编程指南》和我在前面“Python自学日记18——数据结构与算法(2)”中提到的《Python数据结构与算法分析》这几本书。我觉得面向对象一直没有学好,而且我对面向对象的抽象思维很感兴趣,后面会好好学一下。另外就是这种毕竟是持续很长时间的事情。所以需要在这段时间找点其他事情做,所以我才顶上了web开发,毕竟这个最后能作出一个自己能实在看到的网页或什么的,否则总觉得不踏实,毕竟学了还是要有实践练习是比较好的。

最后总结就是学习前找一个明确的路线比较重要,比如你最后想做机器学习,那么就找相关的路线,要先学什么,后学什么,需要哪些基础知识需要提前准备的。然后是最初可以找一些视频资料让自己知道需要哪些软件,现在市面上常用的开发工具时什么,如何安装配置等,到具体语法最好找一门大家比较推崇的入门书看看,注意时效性,很多人推的可能都还是Python2.7这种老版本的。在基础阶段最应该练习的是发现bug并解决bug的过程,首先就是通过解决最基础的语法问题、运行时错误练习在网上查找解决方案,通过把这个过程练熟了之后才可能在后面遇到更大问题时靠自己解决。这个过程不能省略,最好就是从这个基础开始练习,否则到实战时再自己找解决方法那时候问题更大就比较难了。最好是能找一些别人解决问题的文章或视频,看看别人是如何从错误一步步靠自己解决的。学习的不是这个例子的解决方案,学的应该是他解决问题的思路。不过这种网上很少或者说几乎没有,可以看下我的专栏。后面就是如果遇到不太重要的内容需要了解,看视频不错,在学习主要内容之余看视频当做休息一下也不错。在这个阶段还是要练习看官方文档和在GitHub上学习,未来可能就是主要的学习途径了。

相关文章:

  • 无法应用转换程序_电脑硬盘无法安装应用程序怎么办?
  • educoder实训平台python入门之运算符的使用_Python入门教程-运算符
  • docker rabbitmq_docker快速部署rabbitmq多机集群
  • python程序设计学生的自我总结_《Python程序设计》学生答疑【20200227】
  • ssl 接收到一个超出最大准许长度的记录_从零编写一个自己的蜜罐系统
  • pythondocumentation_python官方文档
  • python怎么突然这么火_为什么python突然变得这么火了?
  • gdb 条件断点_蜂鸟E203系列——Linux调试(GDB+Openocd)
  • gif分解工具_搞笑 GIF 制作工具
  • python123第四周_百度杯十月第四周WriteUp
  • 数据窗口动态生成列_2020 BAT大厂数据分析面试经验:“高频面经”之数据分析篇...
  • using在sql中是什么意思_粤语为什么那么难学?原来我们都弄错了
  • python123可以复制粘贴吗_python 复制与粘贴处理笔记
  • jmeter随机参数化不重复_Jmeter参数化设置介绍
  • python selenium chrome获取每个请求内容_selenium 获取请求返回内容的解决方案
  • 《Java编程思想》读书笔记-对象导论
  • 【跃迁之路】【641天】程序员高效学习方法论探索系列(实验阶段398-2018.11.14)...
  • 10个最佳ES6特性 ES7与ES8的特性
  • Apache的基本使用
  • Electron入门介绍
  • JDK 6和JDK 7中的substring()方法
  • Redux系列x:源码分析
  • Spark RDD学习: aggregate函数
  • SpringCloud集成分布式事务LCN (一)
  • Swoft 源码剖析 - 代码自动更新机制
  • Windows Containers 大冒险: 容器网络
  • 阿里云购买磁盘后挂载
  • 从伪并行的 Python 多线程说起
  • 回顾 Swift 多平台移植进度 #2
  • 猫头鹰的深夜翻译:Java 2D Graphics, 简单的仿射变换
  • 前端技术周刊 2018-12-10:前端自动化测试
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 线上 python http server profile 实践
  • 线性表及其算法(java实现)
  • # Maven错误Error executing Maven
  • (1)Nginx简介和安装教程
  • (13)Hive调优——动态分区导致的小文件问题
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (附源码)ssm学生管理系统 毕业设计 141543
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • (六)软件测试分工
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (四)linux文件内容查看
  • (转)菜鸟学数据库(三)——存储过程
  • (转载)(官方)UE4--图像编程----着色器开发
  • ***详解账号泄露:全球约1亿用户已泄露
  • ... 是什么 ?... 有什么用处?
  • .net core 源码_ASP.NET Core之Identity源码学习
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET牛人应该知道些什么(2):中级.NET开发人员
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(白虎组)
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [ 云计算 | AWS 实践 ] Java 如何重命名 Amazon S3 中的文件和文件夹
  • [AIGC] 开源流程引擎哪个好,如何选型?