不少初学 Python 或者准备学习 Python 的小伙伴问我如何学习 Python。今天就说说我当时是怎么学习的。

缘起

我大学专业是电气工程,毕业后做的是自动化方面的工作。对于高级语言编程基本是 0 基础,那时刚毕业在车间做设备调试,工资也只有三四千块钱。2014年底在知乎看到搞 IT 的薪资动辄 10k 起步,所以我也动了学习编程的念头。

当时 Python 已经开始流行。虽然远没有今天热度这么高,但是已经有一些大V在鼓励大家开始学习 Python了。对我影响最大的是知乎ID为:"萧井陌"的大神。我觉得他至少影响了上万人学习 Python 。那时候他的《编程入门指南》很火,而且一直在鼓励初学编程的人去学习 Python。其中他的这个回答对我影响最大,因为这个回答特别笃定,把步骤写好了,照做就是了。

然后我买了他推荐的这本书,现在已经出第二版了。当时看第二遍时还是糊里糊涂的,因为你学了 Python 基础后,还要了解 WEB 开发的一些概念,包括数据库的基本用法。所以当时又看了 WEB 方面包括 HTML/CSS/JS,和 HTTP协议一些知识。买了本 SQL 必知必会来了解简单的 SQL 语句。总之是 Flask 这本书看了三遍,对书中所写的项目理解了80%左右吧。到这里基本算是入门吧,之后就开始做 IT 相关工作了。

学习方法

如果是 0 基础学习,还是推荐《笨办法学Python》这本小册子开始。很直白,没有上来就讲语法,仅仅是照着敲就行了。这个小册子看完后我当时看的是《Python核心编程-第二版》上面讲的还是 Python 2.5。现在出了第三版,但是已经不推荐初学者去看了。现在你可以直接去看人民邮电出版社的《Python编程从入门到实践》,这本书我简单翻过,内容还是很不错的,包括大量的实际案例,可以亲手做出一点好玩的应用来。

除了 Python 外还要了解基本的 HTML/CSS/JS。这些东西花几天时间在 W3School 看一看就差不多了。在这个过程中可以到网上看看别人都用 Python 来做哪些好玩的事情,可以跟着学学。知乎上有很多好的问题和答案,非常值得学习。

在学习过程中不必要求 100% 掌握,一些高级用法不理解没关系,等代码写的多了就懂了。上面基础知识看完后就要选择一个方向了,比如 WEB,数据分析等。做 WEB 的话 Python 最流行的两个框架 Django 和 Flask 选一个深入学一下就好了,我当时学的是 Flask,不过 Django 是一个大而全的框架,不需要你去找各种第三方模块来使用,文档也很全面,都很适合来学习。

当时网上关于 Python 的视频资源也很少,现在在慕课网、网易云课堂上都有大量 Python 的视频资源了,包括很多培训机构的教学视频网上都可以找到。这些都是很好的学习资源。

这里插一句,如果有想报培训机构学习的,我还是推荐一下萧井陌的线上培训课。16年萧井陌自己开了线上培训课,收费是10k人民币,报名者众多,我从朋友那里听过几节他的讲课,我觉得10k很值的。从 HTTP 协议开始讲起,一步一步搭建一个简易的 Web 框架,包括基础的 ORM 操作。这些东西搞完后你就理解了 WEB 框架的原理,你再去看 Flask,Django 这些都是一样的套路。当然上面这些不是广告,人家也不需要我给打广告。我只是单纯感觉如果你要报班,那么他的绝对不会让你后悔。

体会

最开始,我可能也是电影看多了,以为写代码如行云流水般才算掌握。其实不是的,写代码就是一个思路的问题,具体的实现过程需要各种谷歌,翻文档。所以不要想着自己怎么什么都写不出来,大家都一样的。都是想半天,才能敲两行代码下去。

知乎上还有个大V说过,编程就是个手艺活。无他,唯手熟尔。三天不练手生,所以要用学手艺的方法去学编程,要动手实践,不断重复,不断调试,修改 Bug。所以,当你不知道怎么写的时候,就去抄别人的代码,只要了解这段代码在做什么事就好了,敲的多了,自然就掌握了。

学到这里,你也就刚刚入了个门而已。虽然还有更多的东西去学习,但是我们查资料、看文档的能力已经培养出来,不会再畏惧遇到的难题,剩下的就是不断提高自己的知识储备,不断提高自己解决问题的能力了。共勉。

下面是几本你可能会需要的书籍,网上都可以下载,当然也可以私信我发给你学习。

我是如何自学 Python 的的更多相关文章

  1. 我是如何自学 Python 的?

    最近一直有读者私信问我,Ahab你是如何学习Python的?能推荐几本适合新手学习的书吗?有没有好的实践项目分享一下呢? Python未来发展前景怎么样呀?今天我就认真的告诉大家我是如何学习Pytho ...

  2. 420小时学习代码之后:如何教你免费自学Python

    原文地址:learning-to-code-420-hours-later-how-to-teach-yourself-python-for-free 说明:有些网址需要FQ. 大约在1.5年前,我开 ...

  3. 孤荷凌寒自学python第八十三天初次接触ocr配置tesseract环境

    孤荷凌寒自学python第八十三天初次接触ocr配置tesseract环境 (完整学习过程屏幕记录视频地址在文末) 学习Python我肯定不会错过图片文字的识别,当然更重要的是简单的验证码识别了,今天 ...

  4. 孤荷凌寒自学python第七十天学习并实践beautifulsoup对象用法3

    孤荷凌寒自学python第七十天学习并实践beautifulsoup对象用法3 (完整学习过程屏幕记录视频地址在文末) 今天继续学习beautifulsoup对象的属性与方法等内容. 一.今天进一步了 ...

  5. 孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务

    孤荷凌寒自学python第六十一天在Fedora28版的linux系统上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第七天.成功在本地搭建 ...

  6. 孤荷凌寒自学python第六十天在windows10上搭建本地Mongodb数据服务

     孤荷凌寒自学python第六十天在windows10上找搭建本地Mongodb数据服务 (完整学习过程屏幕记录视频地址在文末) 今天是学习mongoDB数据库的第六天.成功在本地搭建了windows ...

  7. 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类尝试第一天

     孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语 ...

  8. 孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备

     孤荷凌寒自学python第四十五天Python初学基础基本结束的下阶段预安装准备 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天本来应当继续学习Python的数据库操作,但根据过去我自 ...

  9. 孤荷凌寒自学python第二十三天python类的封装

    孤荷凌寒自学python第二十三天python类的封装 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.从怎么样访问类的内部代码块中定义的私有属性说起 类中定义的私有属性和私有方法是无法被 ...

随机推荐

  1. tkinter做一个简单的登陆页面

    做一个简单的登陆页面 import tkinter wuya = tkinter.Tk() wuya.title("wuya") wuya.geometry("900x3 ...

  2. 任务调度--使用java.util.Timer实现

    任务调度是指基于给定时间点,给定时间间隔或者给定执行次数自动执行任务. 举个例子,比如说我们希望一个系统每周日晚上9点都将数据库文件备份一次,这时我们就可以使用任务调度来实现.为了更加的方便,我们需要 ...

  3. [python]pip总结

    基本命令解释 安装 pip 下载 地址 https://pypi.python.org/pypi/pip 下载 tar.gz 打开cmd,把路径切换到解压后的文件夹 python -m python ...

  4. bzoj 2829 计算几何

    将每张卡四个角的圆心跑graham出正常凸包,再加上一个圆就好了. 要注意先输入的是x,找点时三角函数瞎换就过了.. #include<cstdio> #include<cstrin ...

  5. BZOJ_3191_[JLOI2013]卡牌游戏_概率DP

    BZOJ_3191_[JLOI2013]卡牌游戏_概率DP Description   N个人坐成一圈玩游戏.一开始我们把所有玩家按顺时针从1到N编号.首先第一回合是玩家1作为庄家.每个回合庄家都会随 ...

  6. linux学习之路(3)

    vim编辑器使用  命令模式:控制光标移动,可对文本进行复制.粘贴.删除和查找等工作. 输入模式:正常的文本录入. 末行模式:保存或退出文档,以及设置编辑环境. vim中常用命令: dd 删除(剪切) ...

  7. Keepalived + nginx实现高可用性和负载均衡

    在前面的一篇中讲到了Heartbeat作为高可用服务架构的解决方案,今天有试验了一种全新的解决方案,即采用Keepalived来实现这个功能. Keepalived 是一种高性能的服务器高可用或热备解 ...

  8. java happens-before原则规则

    程序次序规则:一个线程内,按照代码顺序,书写在前面的操作先行发生于书写在后面的操作: 锁定规则:一个unLock操作先行发生于后面对同一个锁额lock操作: volatile变量规则:对一个变量的写操 ...

  9. windows 7安装Fiddler抓HTTPS请求的解决办法

    一.下载安装Fiddler,网上随意一搜就可找到安装软件 二.打开已经安装的fiddler,本人的安装目录:D:\AutoTest\fiddle\Fiddler2 三.打开的页面如图: 三.点击too ...

  10. C++的代理类

    怎样在一个容器中包含类型不同,但是彼此有关系的对象?众所周知,C++的容器只能存放类型相同的元素,所以直接在一个容器中存储不同类型的对象本身是不可能的,只能通过以下两种方案实现: 1. 提供一个间接层 ...