Python 101 - 对于非计算机专业的学生,如何开始 Python 学习

写给女朋友的计算机教程系列。本文主要描述入门 Python 的一些学习路线和学习方法,以及参考资料(不涉及代码)。

这篇文章主要针对非计算机方向从业者

第一章——在开始之前

1.学习方法

把握大致的学习路线

目前的要做的事情其实很简单,主要包括

  • 掌握Python的基础语法

这条是最基础的也是最好达成的,因为语法部分主要是记忆的东西

  • 学会使用VScode或者其他编辑器书写Python

这个通过经常使用就能达成,从模仿到理解

  • 对相关的计算机知识有所了解(就像计算机科学导论涉及的内容)

计算机语言只是一个工具,关键在于要如何使用它,因此这时就需要编程者拥有一定的知识储备。放心,所有我们需要的答案都在网上,世上无难事,只怕有心人

明确每一次的学习目标

在人们初学计算机语言的时候,往往会面对一大堆新的语法、新的知识而不知所措。

殊不知与小白相比,那些有经验的程序员并非拥有更强的学习能力,而是他们形成了一套计算机领域的学习模式。

而这种学习模式的关键就在于,清晰的学习目标

我们可以将目标大致分为两种

  • 混个眼熟
  • 比较熟练的掌握

至于为什么不存在“精通”这一选项,是因为编程者不需要记忆每一个细节,只需要记忆如何找的这些细节,编程不是考试,搜索引擎是鼓励使用的。(当然这段话有点绝对了)

在第一次学习的时候,就要通过记忆和临摹代码达到混个眼熟的境界。这时尽管会有一头雾水,但是一定要告诉自己这是正常现象,先往后学习。到了一定程度以后就能渐渐理解了。当然,之后就是熟练掌握。

除了熟练度的目标之外,学习路线也给出了三个目标,在编程的时候,要注意提升这三个能力。

相互参照、印证

大多数时候学不懂是教程的锅,因为当一个知识点没有前因后果的逻辑支撑时,人们就很难将知识点联系起来。最常见的表现就是在想:“这有什么意义?”。

这个时候我们就不能仅仅拘泥与一份教程,应当从多个资源中整合出完整的信息。

有必要的时候甚至可以看看官方文档

什么是官方文档?

官方文档(documents)是关于这个项目/语言/软件最详细的定义和介绍,实际上整个项目/语言/软件的发展就是参考了官方文档。

Python 有自己的官方文档(很棒),anaconda、VScode也有。

官方文档告诉你每一个使用方式、使用细节、和最佳使用方法。

但是大多数是英文哦

一般在官网上以及google搜索*** 官方文档就能找到

当然初学者不需要一开始就使用,知道有这么个东西就好

兴趣驱动学习

如果有了兴趣这个buff,学习真的是一件很有意思的事情

编程的兴趣是很容易创造的

  • 想想看,你可以用Python制作一个网络爬虫,爬取任何信息

  • 再利用Python自带的库将数据处理后输出成漂亮的图标,寻找其中的逻辑

  • 甚至还可以利用机器学习,让机器对新的输入有了分析能力

  • 此外,可以使用Python编写脚本,代替原来重复的鼠标劳动

  • 更美妙的是,以上内容的代码量都可以控制在100~200行,是其他语言的几分之一呢

  • 还有,你知道从excel读取信息只需要一行代码么

  • 而且,你知道给编辑软件换不同的配色就像换装一样上瘾么

  • 最后,你甚至可以和其他人一起开发你们想要的东西

有了这么多理由,学习就有了动力。

而且编程不止有这些高大上的幻想理想,还有很多有趣的小目标

  • 比如运行以后输出hello world

  • 在文件里输出hello world

  • 如果输对了用户名和密码就输出hello world

  • 利用网络输出hello world

  • 输出彩色的hello world

  • ······(怎么看上去这么无聊)

咳咳,总之:

  1. 制定一个达得到的小目标

  2. 利用现有的能力和搜索到的知识完成它

  3. 获得成就感


2.学习资源

名称 分类 评价 推荐指数
菜鸟教程 网站 比较基础和友好,我经常使用 5
廖雪峰Python3 网站 比菜鸟教程难一些,知识更深 4
博客园 and CSDN 博客网站 这两个博客网站里会有大量相关博客,用搜索引擎搜索知识点的时候就会看见 4
简明Python教程 书籍 网上都在推荐这个入门,我有时间也看看 4
官方文档 文档 强烈推荐在有学习一段时间后印证着阅读 5
Python语言程序设计 MOOC 没有看过,只能说正常吧(其实网课可以跳着看) 3
code combat 网站 这个适合霏哥 3
checkio 网站 这个跟acm的形式比较像(不过没有时间限制),应该很锻炼能力,适合进阶 3

其实前五个初学的时候会比较常用,另外就是google,因为有好多东西是你实际写代码的时候才需要的,这时候一定要搜一下,然后自己整理,融会贯通。


3.anaconda 以及 VScode

终于写到了这里。目前我是这两者都用的,因为从某种意义上他们可以互补。

什么是anaconda

来自知乎的回答

简而言之:

  • 提供了包管理功能,Windows平台安装第三方包经常失败的问题得以解决

  • 默认安装了很多好用的包

  • 其中的Spyder 和 jupyter notebook是神器

什么是VScode

文本编辑器

什么?你问什么是文本编辑器?

有了它,你就不需要 记事本

安装及使用

打算远程演示,因为内容确实比较多

我会把笔记做在oneNote里?

anaconda入门

spyder 用来写大型项目?

jupyter notebook

(jupyter notebook可以用来记笔记)

VScode强烈推荐的官方文档(英)

VScode中文文档(正在施工?)%

2019-03-26,我使用VSCode写Python的概率远远高于其他编辑器