我的 Python 学习方法论

August 18, 2016

人生苦短,我用 Python。

学习了将近 2 个月的 Python,今天做个小小的总结。

起因

我一直对计算机有浓厚的兴趣,最初的起因是15年11月份看到的萧井陌的编程入门指南,当时学校的 School of Computer Science 刚好在周末开了一档 Python 科学计算入门的 Workshop,用的是 Anaconda 的 IDE,总之,机缘巧合,让我开始自学编程。

后来因为忙着考试和申请转学法国,编程的事情暂时搁下,法国申请被拒后,我就开始思考自己在诺丁汉的规划,编程是我想掌握的技能之一,大一下忙完学业和社团的事情以后,在暑假里继续自学编程(教材是 Learn Python The Hard Way)。

暑假有天偶然翻到知乎上有问 Business Analytics 这门新兴专业,我一看,操,计算机+商业分析,跨领域,完全就是我想要的,于是我义无反顾地找资料,发现专业不限,要求有 Python、Data Science 的基础,甚至我的专业(International Business Economics)的一名学姐在 NPI 读 Business Analytics,没啥好说的了,必须学下去了。

后来随着对 Python 和 Data Science 的进一步了解,越发喜欢 Python 这门语言,能写网站,能做数据可视化,能爬虫,太牛逼了,便一发不可收拾地学习下去了。

讲道理,相比我接触过的 C、HTML,Python 强大且简洁,非常适合新手。

过程

我给自己的技能树安排如下:

┏ Math
┗Python
  ┗网页 
     ┗爬虫 ━ 数据分析 ━ 数据可视化
     ┗全栈网页开发 ━ 微信公众平台

Math

数学、数据科学方面我还没深入学习,可以参考的资料有 Open Source Society University Data Science

Python

Python 基础我比较喜欢网课,看书会比较无聊,学习编程很重要的一点是快速上手,用项目积累经验,我喜欢在初始阶段用项目学习编程,有些东西书面上解释得再清楚,也不如自己动手实操,况且动手实操带来的成就感爆棚。举个例子,面向对象编程,看书老学不会,我是看 Python 的网课,看着老师一行一行地解释才明白 Python 的 class、OOP 是怎么回事。

因此我建议没有编程基础的各位先学习 Learn Python The Hard Way,明白变量、循环、函数是怎么回事,作者讲得非常仔细,而且每节课都要打代码,能积累很多很多代码经验。

在看这本书的用时,也要多看看网课,Udacity 的 CS101,Coursera 上的 An Introduction to Interactive Programming in Python都建议看,都很实操,不要纠结学哪门课,觉得两门课自己都喜欢就都学,不喜欢就直接放弃,我看 Learn Python The Hard Way后半部分就觉得有点浪费时间,果断放弃,去 Coursera 和 Udacity 学习做更酷的项目。

网页

之所以通过 Udacity 学习 Intro to HTML and CSS,是因为自己学习 Python 的网页编程时遇到了瓶颈,比如网页样式的修改和自定义,我不喜欢用模板建网页,太丑,还是更相信自己的审美(而且我也有这个能力)。

学习一些网页基础知识也会对爬虫设计、数据库、数据可视化的学习有点帮助,我是这么想的。

各种不切实际的目标

感想

学习编程使我感到由衷的快乐、有成就感,虽然时常有不开心的挫折(比如部署服务器的时候,抓狂),但能找到解决问题的方法并顺利克服、坚持,我很开心,真的想把时间扳成两半用,本文词不达意,只是一些小小的分享,各位随意。