我的 Python 学习历程与经验分享

关注微信公众号:Python高效编程· 了解更多。

关于我

某不知名 211 大学的大二学生,读的是通信工程专业。然而我们学校的通信专业偏硬件,编程方面只教 C 语言。而我比较喜欢软件,所以业余时间学点 Python,写一些简单的代码,感觉很快乐。

暗夜

一开始的时候,我并不喜欢编程,觉得编程很神秘,很害怕编程。尤其是学完 C 语言之后,连个简单的代码也写不出来。讽刺的是,通过背题、刷题,我的 C 语言考试(纸质)反倒考了 90+,C 语言课设也拿到了 85 分。然而并没有什么意思。我连个万年历、贪吃蛇都写不出来,也不知道如何面向百度、google 编程。最主要的是,当时并没有意识到编程的重要性,“我以后又不从事编程工作,学编程干嘛呢?!”

这种心理,一直到我加入实验室之后才有所改观。说真的,这个实验室并没有教会我什么实际的知识,却在潜移默化中影响了我的价值观。在这里,我开始喜欢编程,开始接触到机器学习等相关知识。

启程

大一下学期,我开始学习 Python,因为我基础太差,而且充满了对编程的恐惧,所以我选择看 B 站上的零基础视频入门。这个学习过程是轻松而毫不费力的,所以我并没有学到多少知识。因为我是照着视频敲代码,一点也不经过大脑思考。这个阶段,一直持续到暑假,视频总算看到了装饰器这个部分,然后我就看不下去了。尽管学了面向对象的知识,由于我这种懒惰学习法,最后还是之后基本的if else语句。

大一下学期暑假,我还是什么复杂一点的代码都写不出来,深感沮丧。就开始放弃学习语法,开始学习 Python 数据科学,其实就是学如何调用 numpy、pandas 的 api。学着学着,我感到深深的自我怀疑,我学来学去一直在学习某个函数如何调用,而且学完不久就忘记,连个简单的小程序都写不出来,这样有什么意义。所以我决定学习 Python 爬虫。爬虫我也是看 B 站视频学的,很快我就能编写几个简单的爬虫程序,让我自信心爆棚。我大约学到 scrapy 框架的时候,在爬取安居客网站的时候,经常被封 ip,使用代理也没有用。这让我又产生了自我怀疑的念头,最终还是放弃了爬虫,开始直接学 Python 数据分析。

大二上学期,我开始学《利用Python进行数据分析》这本书,主要看的是如何调用 scikit-learn 的函数。学了好几周,也就是照着书上的代码敲一敲,我自然没有多少进步,以至于当我看书看的差不多,决定做做 kaggle 竞赛的时候,再一次打击了我的自信心。我又一次半途而废。

一直在路上

痛定思痛,我决定持之以恒地做一件事。于是,我开始写公众号。这一个阶段,我学习 Python 只要是“实践为主,理论为辅”,做就完事了。亲自写代码,比看书效率更高。最开始的时候,我写了 2048 游戏,接着我写了贪吃蛇游戏。和以前学习的模式不同,不要等自己把所有知识点都学会再去写程序,以前我总是希望自己可以做好充分准备再去做某件事。后来才明白,这种想法是错误的。生活并不会给你准备的时间,事情来了,你不得不做。写代码也是一样。如果你希望编写一个贪吃蛇游戏,不要等到你把 Pygame 中的所有函数全学习一遍再去写程序,而是粗略地了解 Pygame 的使用方式和使用案例,做到心中有数即可。在写贪吃蛇游戏的时候,需要画正方形,我们就去搜对应的函数;需要加载音乐,我们还是去搜对应函数。当然,既要保证亲自实践,又要去了解优秀的代码与 Python 优雅的高级特性。不然,你的代码只会是已有知识的堆砌,而不能继续进步。

看书,尽量看些经典的书,比如《流畅的 Python》,《Python Cookbook》来学习 Python 语法;看视频,可以到 B 站上找些口碑好的视频。最重要的一点,一定要亲自动手写代码! 一定要亲自动手写代码! 一定要亲自动手写代码! 你把书上的代码敲到电脑屏幕上,并没有多少帮助。重要的是,你在写程序时一定要刻意地使用这些新特性,然后积累经验,总结这些特性的适用场景。

代码之外

我觉得,我们不必纠结于:学Python某些库有没有用。因为如果我们不去了解这些“没用的东西”,就无法深入学习 Python 高级知识。比如说 ,学 PyQt5 有没有用呢?这个问题并不重要。因为学 PyQt5 的同时,你也在巩固其他方面的修养,你也会考虑到于数据库的交互、面向对象、Python 高级特性的使用。你学得越深入,你的综合能力也在飞速提升,这对你转战其他库时也大有裨益。而且学东西,要功利但不能“惟功利论”,只要不是今天不学、明天失业的处境,大可把眼光放长远点。把它当成一门兴趣,说不定哪天就拉了你一把。

关注微信公众号:Python高效编程 了解更多。

你可能感兴趣的:(个人感悟)