学习Python,属于偶然,之前一直想学习计算机语言,尝试过,但是没有坚持超过几天,便放弃了。一开始的时候,我并不喜欢编程,觉得编程很神秘,很害怕编程。尤其是学完 C 语言之后,连个简单的代码也写不出来。讽刺的是,通过背题、刷题,我的 C 语言考试(纸质)反倒考了 90+,C 语言课设也拿到了 85 分。然而并没有什么意思。我连个万年历、贪吃蛇都写不出来,也不知道如何面向百度、google 编程。最主要的是,当时并没有意识到编程的重要性,“我以后又不从事编程工作,学编程干嘛呢?!”
这种心理,一直到我加入实验室之后才有所改观。说真的,这个实验室并没有教会我什么实际的知识,却在潜移默化中影响了我的价值观。在这里,我开始喜欢编程,开始接触到机器学习等相关知识。
量化分析的最大好处是节约了时间,之前是用来解决股票问题的,一只股票10秒钟,需要30000秒才能看完,等你看完已经休市了,使用软件量化分析,可以十几分钟选出符合大概要求的股票,这样便可以轻松很多了,这是当时学习Python的最强有力的动力。
python的学习,其实选择它的时候,因为这是一门面向对象的胶水语言,意思就是什么事情都能做,不过某些方便表现的不是很优秀,但是在人工智能,深度学习以及量化分析上却是足够的优秀。Python是开源软件,所有它有很多非官方的库(你也可以叫它轮子或者插件),重点是这些轮子都是免费的,当时最重要的选择Python的原因,是因为Python有tushare这款软件,可以通过一条语句获得历史股票数据和实时股票数据,之前了解很多的人都是自己写爬虫来抓取数据,当时小白,根本就不懂语法,更别谈爬虫了。
Python学习有个重要的点是版本的选择,你选择的是Python2.X还是Python3.X(这两个版本是不兼容的),语法有很多的差别。我选择的是Python3.5,买的书籍是《Python核心编程2.0》以及《learning Python》,前一本有个好处是,它会对2.7和3.5版本的语法对照讲。
有几个前提:
1,最好是因为要解决某些问题,而学习编程,有需要解决的问题。没问题也要想出问题来解决,这样会加快你的速度。你的解决问题的思路,比编程更加的重要。
2,同时,书籍的前面的基础知识很重要,需要跟随者书籍,一边自己在编辑器上打文章中的内容,这样是方便留下印象,同时对于看不懂的东西,留下个印象,因为等你使用了一段时间以后,就可以理解了,而且很多抽象的东西,平时你基本上用不着,看不懂没有关系,不要害怕,浏览一遍,记住它在书上的哪个位置就好了。
3,学习字符串,列表以及字典,这些是最简单,也是后期可以变化多样的,也是最长使用的,然后开始了解,时间模块在这里面的应用,很多的东西,你都可以用时间模块来解决。
下载的是Python3.5,用的编辑器是pycharm(你可以把它看成是程序能够理解的Word文档,类似的东西)。
当时学习主要是为了实现自己的策略,但是随着越深入,发现了需要重新的学习概率论以及逻辑学两门课程,清晰的思路,将会让你解决问题更加的迅速。
几个重点:
1,开始的1月,不要想解决什么问题,不要想能做什么,不要想自己是不是很差劲,多跟随书上的内容在编辑器上打,每天新建一个文件,保存下来,然后有问题可以在程序内容的后面,先打一个#,写上备注。
2,多问,不要觉得不好意思,一定要多问,这个时候,可以学习使用pip,这是专门用来装模块的语句,语法很简单,一个是更新pip,一个是如何的更新或者下载其他的模块。
3,如果要问人问题,一定要简单精炼,逻辑清晰,会给你和对方都带来好处。
看书,尽量看些经典的书,比如《流畅的 Python》,《Python Cookbook》来学习 Python 语法;看视频,可以到 B 站上找些口碑好的视频。最重要的一点,一定要亲自动手写代码! 一定要亲自动手写代码! 一定要亲自动手写代码! 你把书上的代码敲到电脑屏幕上,并没有多少帮助。重要的是,你在写程序时一定要刻意地使用这些新特性,然后积累经验,总结这些特性的适用场景。
每一天2个小时,一个月以后,什么是程序,什么是模块你就基本上熟悉,碰到问题,解决的办法是先百度,你会发现很多的人会有很多的创意,实在找不到,问人,先是熟悉基本的语法,但是一定要保持旺盛的好奇心,其他没有什么了,相信熟能生巧,先把打字的速度提上去,同样要减少出错的概率。
一开始能犯的错误就是一些简单的语法错误,忘了括号,忘了引号,各种忘记,将这些错误记录下来,写在Word文档上,错误如果重复犯,你就能知道自己又犯了什么错误了!开始记住多使用print,内容多打印出来看,你就知道你在处理的什么了,以及它的框架是什么了!
总之我觉得,我们不必纠结于:学Python某些库有没有用。因为如果我们不去了解这些“没用的东西”,就无法深入学习 Python 高级知识。比如说 ,学 PyQt5 有没有用呢?这个问题并不重要。因为学 PyQt5 的同时,你也在巩固其他方面的修养,你也会考虑到于数据库的交互、面向对象、Python 高级特性的使用。你学得越深入,你的综合能力也在飞速提升,这对你转战其他库时也大有裨益。而且学东西,要功利但不能“惟功利论”,只要不是今天不学、明天失业的处境,大可把眼光放长远点。把它当成一门兴趣,说不定哪天就拉了你一把。