学了一段时间django和python的爬虫库/框架后,想学习一下web方面之外的内容。国外的一些在线学习平台有很多关于python在机器学习/数据处理方面的教程,但是还是想把算法基础打后以后在去尝试。
很多公司比如豆瓣,扇贝,知乎都是完全基于python的, vim下有一些插件比如ycm也是用python开发的。但是目前我只之道知乎是在改进tornado,Q:想具体了解一下国内的公司都在什么方面使用python。如果想深入学习python的话,除了web,Q:我现在应该尝试什么方向/项目?或者说阅读python源码和直接学习机器学习或者数据处理方面的内容?
不考虑就业方面之类的内容,现在每天课余时间比较充裕,完全是基于对python的爱好。
目前Python能做的国内都有公司在运用或涉及,只是可能不知道而已,既然不考虑就业也就无需刻意了解这个问题。至于尝试什么项目,还是基于你的喜好吧,不管做哪一块都会对自己有提升的。至于想把算法基础打好后再去学没必要吧,在学习上是没有什么事情要准备好的,你先写代码遇到不理解的算法再去看,然后交替进行不是更好吗?再说什么叫基础打好呢?学到什么阶段才叫基础打好呢?怎样才能验证你基础打好了呢?其实都离不开实际编码啊。。。
如果只是爱好,想深入学习,我觉得可以没事看看py那些内置模块的源码,看看别人是怎么实现的,学学别人的代码风格。以后模块级别出了错也知道是怎么回事。
自己也可以去github上看看别人写的各种好玩的项目。然后自己想个思路与创新点自己尝试着做,然后开源也不错。
机器学习,算法这些的我也很想学,不知道从何下手,这方面和题主又一模一样的疑惑。
这个主要还是看自己的兴趣,向往那个方向发展。做Web开发的话,除了熟悉知名的框架譬如Django,flask之外,还得了解wsgi server,譬如gunicorn。可以看看源码。最好能够看看python本身模块的源码带如socket,select,simple_server等。也可以看一些优秀开源的python库譬如requests。
做爬虫的话可以了解pyspider,scrapy,beautifulsoup。看看人家是如何实现的。如何高效爬去,如如何多线程,多进程爬取。对http协议也得有所了解。
想做机器学习的话,这个方向比较多,有自然语言处理,数据分析,深度学习。python在这些方面也有不少的库。
如自然语言处理有NLTK,TextBlob。数据分析的有numpy,scipy,pandas,matplotlib。深度学习方面如Theano,TensorFlow等等。至于算法,在机器学习中很多库都封装的很好,我认为只要了解其大概思想即可。没必要去深究。毕竟有些算法是很难读懂的。对于我至少是这样。而且算法与语言无关,和python没关系。碰到真需要深究的时候再慢慢研究就行了。此外也可以买写机器学习方面的入门书籍看看。python写的就有,去亚马逊上一搜一大堆,找本入门的看看先入门再说。