
最近悟空问答推荐了多次关于“如何入门学习python”的问题,在此简单介绍我对如何高效学习编程语言的观点,并分享我入门python的过程。
什么是编程语言
语言是沟通的工具,自然语言是人与人沟通的工具,编程语言则可看作是人与计算机沟通的工具。人类想让计算机发挥其计算与存储的优势,帮助人类来完成某些任务,则需要与计算机沟通,把需要计算机帮忙做的事情告诉它。计算机还没能聪明到直接理解人说的话,例如你告诉它:“帮我把文件a.txt里面的一亿个数字从大到小排序”。因此需要用计算机能理解的语言来告诉它做什么,该怎么做,这就是编程语言。

如何学习编程语言
就我的学习经历来说,我认为学习编程语言与学习汉语、英语等自然语言一样,在掌握基本语法(语言规则)的基础上多用多练习,在练习的过程中逐步加深对语言的理解与体会。同时,在使用的过程中再逐步学习掌握更多的语言特性、使用技巧与各种基础api工具(强调一下,是使用过程中)。

对于初学者,学习语言有一个误区,就是找一本如同宝典一样,厚厚的介绍某种语言的书,讲述了这门语言的方方面面,从基础语法到高级特性,再到各种框架。从第一页开始逐步学习,往往发现在看到后面的时候前面全忘了,学习过程很受挫,然后失去信心。
我建议学习编程语言,可以先找一本比较薄的,介绍基本语法的书来学习。同时,一定不要只看书,不练习。再次强调一下:在练习中学习,边练习边学习,不断学了练,练了学,逐步熟练掌握你需要的或经常使用的部分。这里的练习就是指“写代码,完成各种小题目,小例子”,哪怕是对着书上给的例子对敲出来代码、调试、运行也好。这样让你对这个语言也会有一个感性的认识,而不仅仅是停留在书上的语法介绍。
学习了基本语法之后,想有更进一步的学习,可以去github等代码库找一些比较优秀的,同时也是你工作中相关的project阅读一下源码,看一些高手是怎么用这门语言来写代码的。在看代码的过程中,可以学习代码风格,语言使用技巧,同时如果看到一些你之前没有见过的语法或者使用过的函数,可以去Google一下,这也是一个学习新知识的过程。其实这个过程就如同学习语文要多读名著一样,读的多了,你对这门语言的认识也加深了,对语言的使用技巧也了解的更多,从而更加纯熟。
此外,就是在工作中尝试使用这种语言来完成任务。刚开始可以写一些简单的任务,后面逐步加深。在完成任务的过程中,你会遇到各种各样的问题,在解决问题的时候,也加深了你对语言的认识。
总之,学习编程语言就是要多练习,多读优秀代码,自己多写代码,在练习中不断提升。
我的python学习经历
在读书期间,我的研究方向是NLP(自然语言处理)与机器学习,面临的数据大都是文本数据,听人说python的工具包比较多,处理文本非常容易,写几行代码就可以搞定C或C++几十甚至几百行代码才能搞定的事情。于是开始尝试学习python。

首先,在Google上搜索“python入门”,找到了我至今仍然认为是非常好的,适合初学者学习的一个资料,即《python简明教程》。这本小册子非常短,我花了一天半时间就看了一遍,并且是边看边练,也就是在电脑上把书上的例子都敲一遍,自己调试、运行。这边小册子看完基本就了解了python基本的语法特性,并且可以来做一些简单的任务,比如文本的预处理、去噪等等。
由于我当时在做一个文本分类的任务,就在git找了textcnn的开源代码读了起来,进一步加深了对python的认识。并且开始在后续的各种实验任务中使用python,并时不时发出一句感慨“生命苦短,快用python,哈哈哈”。
工作后,由于需要访问MySQL,spark,es等组件,学习了python中这些工具的客户端api。后面需要搭建在线服务,又学习了tornado框架。这些都是在需要用到的时候,边查、边学、边用,用几次后就熟练掌握了。通过类似这种迭代过程,学习的东西越来越多,用起来也越来越得心应手。
以上就是我对python入门学习的一些观点以及我的学习经历的简单介绍,希望对各位朋友有用,能让大家在学习的过程中少走弯路。