0%

python学习建议

非常不幸,像我这种半吊子都要给大家来讲Python学习的问题了

我大概会分成以下几个部分来讲:

  1. 为什么要学python
  2. 基础的学习
  3. 进阶的学习
  4. 其他的一些建议

大家挑感兴趣的看吧

为什么要学python

我一开始也是不想学,感觉这个玩意简直就是市面上某些广告的最爱,让人觉得非常轻浮.甚至都没有大括号(我当时曾经接触过C,C++,C#,Ruby,汇编等语言,自然是非常不精,但也算会一点点(现在除了C/C++其他全忘了))

接触python的主要契机是当时我想写一个爬虫,然后想想python看起来实现最简单,于是就开始学了起来

现在想想,确实python对我来讲意义重大,因为它有着强大的数学计算功能,但又究竟是一门以编程为目的的语言(问就是Matlab学PTSD了),有着非常多有用的库,而且这些库都是帮你配置好的有人抱怨过python环境配置,那你是没有体验过C++各种链接库调用

同时,python也是一个内存友好的语言,它能让你不用担心内存都去哪了(否则面对C/C++,你可能要花整天时间研究你的程序是如何泄露掉20个G内存的)

自然,python运行效率底下也总是被人所诟病,但是这在我们的应用环境中并不重要,我们注重的是开发效率,而对于那种计算密集型的问题,如果安排妥当,调库的效率实际上可能更高,实在不行,你还有一个”大杀器”,用C++编写python扩展

效率的陷阱

有些时候,C++写出来的程序真的不一定比python快,倘使你参加过信息学竞赛就会知道,很多问题的优化绝不是我们这种人能完全掌握的(我们是外行)

基础的学习

对于以前没有学过计算机程序设计语言的人来说,python作为你的第一个语言还是很不错的,我个人建议你还是可以去报python课(反正有学分)

然后尽量挑一本书(最好是一本国外教材),从头到尾读一遍,将里面的东西实践一下(先不要管它有没有用,除非是那种教你搭建网页之类的,具体原因后面会讲)

这样也许就可以了,你已经掌握了python的学习

进阶的学习

如果你自觉自己基础的python学的很好了(我这里的标准是理论上你什么都可以干了),那么你就需要记住这样一句话,这是Fluent Python一书的作者写的

We only miss stuff we know about.

这句话很有深意,比如我们要把两个数组相加,首先想到的必然是用for循环,但是实际上生成器或者甚至numpy给了我们更加简单和高效的解决方案

所以要把东西读完,而不是觉得”这是重复的”就跳了过去.

所以,在做一个东西的时候,先查一下有没有现成的解决方案

但是你到这一步,要专门学的东西也不多了,可能一个是numpy,还有一个就是scikit-learn,毕竟python对我们而言,主要还是工具,而不是目的

倘使你对于python语言的高级特性感兴趣的话,建议去读一下Fluent Python一书,前提是你要学的够好,也许可以先看看vectorize

另外,我强烈推荐大家在学习库的用法时,去读文档,那个东西比你在CSDN上面看到的各种教程都有用也更加详细.

文档可比论文简单多了,毕竟就像使用说明

其他的一些建议

关于Jupyter Notebook

我蛮喜欢这个可以将文档和代码放到一起的格式,但是我不建议大家去网上下载这样的电子书

我建议大家对于示例代码,自己敲进去,不一定要像书上那么完备,可以偷个懒,但是在偷懒的过程也是你思考的过程