阅读文本大概需要 6.66 分钟。

本文首发于我的知识星球「Python 进阶之路」。

计算机这门学科,有非常多的内容。并且如果要深入学习,每个内容都有非常多的知识。对于没有接触过编程的人来说,会找不到学习的方向,不懂得如何学习。如果是在几年之前,互联网还没如此发达。学习编程的途径非常单一,基本上只能靠考上好的大学,跟着名师学习。

但如今利用好互联网上的资源,完全是可以通过自学把一门编程语言学好,甚至学到精通。学会了一门编程语言,再去学习其他的语言,你就能非常快速的上手。这也是很多大牛能掌握多门语言很重要的一点,编程的学习是相通的。

除去编程上非常有天赋的一部分人,其他人包括我,最初学习编程的方式就是靠努力,这也是学好编程很重要的一点。但我除了在努力的基础上,还会结合一些高效的学习方式,让我在学习编程的过程中能更快速的掌握。我以自己学习 python 为例。

1、了解一门语言的前世今生

很多人在接触一门新的编程语言之前,第一个想到的事情,就是先去网上找找相关的编程资源,越多越好。随后会加入各种资源群,去找各种编程资料,然后网盘塞满了几个 T 的资源。看着网盘里各种 xx 最新培训教学视频、心里就觉得非常踏实。但最后这些资料大多只是躺在网盘里,等着积灰。

有的人执行力强些,可能还会看前几节的内容。但很少有人会把整个教学视频全部看完,最后只学习了一点皮毛,就放弃了编程。这种无规划、盲目的学习,是非常耗费自己的时间和精力。并且得不到任何反馈,视频看完了就看完了。如果让你动手写下代码,你会发现根本 无从入手。

而我在学习新的一门编程语言之间,我做的第一件事,并不是去网上找各种编程资料,而是先去了解这门语言的发展史。

我以 python 为例,我会先去网上搜索下 python 这门语言是什么,它的发展史,首先对 python 有个整体的认知。 在了解新的一门语言发展史的过程中,你会发现现在大家使用最多的 python 版本是 3.x,官方也宣布在 2020 之后不在维护 2.x 版本。

而很多网上的教学资源是以 python 2.x 来教学的。如果你事先没有先去了解一门语言的发展史,你就很容易学习以前旧的知识。等你跟着视频学习完之后,你会发现为什么别人的代码和我不一样。这时候你还要在继续学习新的内容,学习的效率一下子就降低了很多。

了解一门语言的前世今生,不仅让你对这门语言有个整体的认知,知道这门语言是什么,还可以避免学习以前的旧知识。编程的知识总是更新换代很快,你如果不去了解,不去接触最新的信息,你就会把大家都不在使用的知识,拼命的学习,到最后发现原来自己一直在学习无用的知识。

关于 python 的发展史,可以参考我之前写的文章

2、画出思维导图

了解语言的发展史是我学习一门新的编程语言所要做的第一件事,随后我会列出这门语言基础内容的思维导图。比如 python,我会先在网上搜寻下 python 的基础知识都有哪些。

有个非常高效的搜集方式就是看一本书的目录,比如《python 基础教程第三版》。还有一种方式就是看各类的培训机构的软文。现在很多技术公众号会接一些技术软文,而这些技术软文把需要学习的每个知识点,都很详细的罗列出来。课程的质量可能参次不齐,但它里面所对应的知识点,就是我们需要掌握的内容。

所以我每次看到一篇软文的时候,我第一反应就是看下这个领域都有哪些知识,我会把这些知识,对应的做成思维导图,就像下面这张 python 基础内容的思维导图。

这个思维导图就把 python 一些基础内容都包括了,而我们接下来需要做的事情,就是逐一的击破。这种思维导图就像一个路标,不会让你在编程的学习过程中迷失了方向。并且目标很明确,就是把这些内容学好。当自己忘记了某个内容,只要在回头看下就好。

并且随着学习的深入,只要在往里面添加新的分支就好。 只要你把这里面的内容全部学完,那你就已经入门了 python。

对于 python 的基础学习,有几份很好的学习资料推荐给大家。

[菜鸟教程]

http://www.runoob.com/python3/python3-tutorial.html

[python 官网]

https://docs.python.org/3/

我最初学习 python 基础内容就是跟着「菜鸟教程」的网站,一个个的学习下来,一周的时间就很快把 python 基础内容给学完了。

3、 多做项目巩固基础

有很多学习编程的人,会陷入到一个误区,太注重理论知识的学习,而忽略实际代码的编写。这样导致的结果就是看似学习了很多内容,比如 python 的装饰器、匿名函数、lamba 表达式等等,但根本就不懂的如何使用。对于这个问题我之前还写了篇文章

编程很多知识都是在一个又一个项目中慢慢的熟悉。我在学习完 python 的基础内容之后,我就开始大量的找些小项目来练习。通过这些小项目,一是巩固自己之前所学的内容,二是学习新的知识。 比如之前自己写的一个小项目,里面涉及到正则表达式的使用,但对于这块内容我不是很熟悉。

在写到与正则表达式有关的代码,我会先停下来去找有关正则表达式的教程,博客。先把正则表达式的内容学明白,在继续编写之后的代码。 在项目中会遇到很多没接触到的知识,遇到自己不熟悉甚至看不懂的代码,不要畏惧,相反应该感到高兴。

因为你把这些内容解决了,你的编程能力又能提升一步,这就是你可以提升的地方。 那这些练习项目又要到哪里找?我把之前自己学习所接触到的项目资源全部列举出来,大家优先选择自己感兴趣的内容学习。

「Python_精选项目课程_在线实验_实验楼 - 实验楼」

https://www.shiyanlou.com/courses/?tag=python

其中「实验楼」还有大量的 python 练习项目,理由有些项目是需要会员才能查看。但教大家一个小技巧,你把「实验楼」里面需要付费查看的项目,把项目名称先在网上搜索下,你就能看到别人分享一模一样的内容,这样你就不用花钱了。

4、爬虫基础学习

项目的练习我一共花了两周的时间,这两周时间我每天都在找一个小项目来练习。通过这两周的项目学习,我对 python 基础内容又有了进步一的理解,也能慢慢自己写出一些小的项目。这时候我就开始下一步的学习。 我首先在网上查找了下 python 都有哪些方向。

这几年随着人工智能和大数据的火爆,python 这门语言也出现在大众的视野,并且越来越热门。现在 python 的方向可以大致分为这几类:1 人工智能、2 机器学习、3 数据分析、4 web、5 后台、6 爬虫。

爬虫和 web 方向相对其他方向来说比较容易学习。所以在了解到 python 一些方向之后,结合自身的情况以及兴趣点,比如我自身数学不好,也只有本科学历,所以我暂时把机器学习和 AI 给排除掉。最后综合自己得能力,我选择了爬虫方向继续进阶学习。

同样我先在网上查找下学习爬虫需要掌握哪些内容,并做出一个思维导图。

一个个的击破,爬虫的学习过程中有一个很好的视频学习资料就是崔庆才的爬虫教程。这份资料我也分享给大家,跟着视频里的内容一个个的学习,就可以把爬虫大部分的知识都学习到(后台回复「python爬虫」即可获取)。

我爬虫的基础内容就是跟着这视频里的教程,一步步的学习。

4、爬虫实战练习

爬虫的基础内容学习完之后,就需要通过大量的实战项目来巩固爬虫的基础,在这里我就列举一些自己所做过的项目。每篇文章我都有详细的说明,里面的源代码我也都上传到 github 上。

除了这些以外你还可以在下面这几个链接里,继续找些项目来练习。 推荐知乎用户 @gaga salamer 的实战练习博客

「知乎用户信息爬虫(规模化爬取)」

http://link.zhihu.com/?target=http%3A//aljun.me/post/22

「用scrapy爬取豆瓣电影新片榜」

http://aljun.me/post/4

「用scrapy对豆瓣top250页面爬取(多页面爬取)」

http://aljun.me/post/5

「用scrapy自动爬取下载图片 | GAGASALAMER」

http://aljun.me/post/6

「用scrapy自动下载石原sama的豆瓣影人图集(727张图片,自动下载)」

http://link.zhihu.com/?target=http%3A//aljun.me/post/7

5、 爬虫书籍

爬虫的书籍推荐《Python3 网络爬虫开发实战》,里面很详细的介绍了爬虫各个方面的知识,非常很全面。如果你以后想要走爬虫方向,建议你购买一本。配合上面的爬虫视频资源,学习的效果非常的好。

6、爬虫面试题

等你把上面的知识都学完之后,尤其是把《Python3 网络爬虫开发实战》这本书认真看一遍过后,在做多几个大型的项目,你就可以去找爬虫的工作了。这时候你就需要刷些面试题。

面试题可以看下这些文章

[PYTHON 一些基础面试题目总结]

https://blog.csdn.net/alvine008/article/details/39229057

[很全的 Python 面试题]

http://python.jobbole.com/85231/

[Python面试必须要看的15个问题]

http://www.cnblogs.com/Vito2008/p/5044251.html

7、 Python 书籍推荐

入门书籍

- 《Python学习手册》

- 《Head First Python》

- 《Learn Python The Hard Way》

- 《Python编程:入门到实践》

- 《笨办法学Python》

- 《简明Python教程》

进阶书籍

- 《Python Cookbook(第三版)》

- 《流畅的Python》

- 《Python源码剖析》

- 《Python进阶》

- 《Flask Web开发:基于Python的Web应用开发实战》

8、总结

这就是我学习 python 爬虫整个过程,我的自学经历,不单单是提供各类资源,更重要的是教大家如何去学习一门新的语言。文中我是以 python 为例,但你把文中的思路换成别的同样语言一样适用。 我现在一直在追求认知层面的学习,因为学习到最后你会发现,学习任何东西,你只要把握了本质的方法,你学什么都非常的快。

我非常的明确自己每个阶段该做什么,以及怎么做。每天我只要看下思维导图,就懂得自己还有哪些内容没有掌握。我的方向永远不会迷失,并且是序循渐进。并不是一上来就学习最难的部分,甚至我在整个 python 学习过程中,那些很难理解的知识,我都会已目前的情况来选择是否要死磕。

如果这个知识点,不是我目前必须要掌握的内容,那我会选择跳过。

学习就好比旅行,任性一点没关系,向你喜欢的风景出发。有时候回头看,发现自己错过了什么风景,再回头追寻并不晚。不用害怕错过,重要的是一直在旅程上。

当然编程的学习还有很重要的一点就是基础,编程的基础可以包括这几方面:1 数据结构、2 算法、3 计算机网络、4 操作系统。如果你以后想要走的更远,那编程基础一定要牢牢的掌握。

9、我的知识星球

我的知识星球正式开始运营了,并且这篇文章我上周就在我星球里发布。我的星球主要是带大家从认知的层面去学习事物,不管是 python,还是别的内容。

在我的星球里你可以得到哪些?

1. 每周一篇长文

随着你接触的领域多了以后,你会发现人这一生都在为自己的认知买单,趁职业早期,不仅要打磨技能,更要吸纳新知。当你的认知提升上去,你会发现其他方面也会迅速提升,我就有切身体会。

所以我会在星球里,每周写一篇长文,就像今天这样的文章,输出这些年提升的认知,这些认知是自己能如此快速成长的根本原因。

2. Python 成神之路

日拱一卒,功不唐捐。说的是每天像个卒子一样前进一点点,进步一点点,终会有所成就,任何功夫都不会浪费。编程的学习也是如此。我现在的领域很明确就是走 Python 方向,对于编程这块的学习,我一直都没有落下。

随着星球正式运营,我会在星球里每天输出一个 Python 知识点,会每天带大家学习一个内容。从最基础的内容一步步的进阶,到实战项目练习,带大家一起共同成长。

3. 现在加入立减 20

目前星球的定价是 99 元,如果你把今天这篇文章认真的去执行,这篇文章带你的价值绝对超过 99。而且只要你现在加入星球,立返 20 给你,所以现在的价格是 79。

推荐阅读:

人必有痴,而后有成

如何自学 Python相关推荐

  1. 【小白自学Python时踩的那些坑,你值得拥有】

    其实坑多的很,但作为刚自学Python的小白,相当于一个新生小孩,对于新事物不知道从哪一步下手,然后手忙脚乱的乱来一通,直接从入门到放弃,这篇文章主要就是针对Python入门最!最!最!基础也是最容易 ...

  2. 零基础该如何系统地自学Python编程?五个阶段带你从小白到大佬

    对于零基础学习或是已经学完基础不知道下一步该干什么的朋友,可以看看这篇缓解迷茫.今天分享下如何系统地自学Python规划目标,有一个学习目标在去行动. 有了目标,怎么行动呢?建议采用视频+书籍的方式进 ...

  3. 你是如何自学 Python 的?

    盲目学习吃力不讨好,我总结了些经验希望可以帮助到正在盲目学习的萌新们........ 其实python非常适合初学者入门.相比较其他不少主流编程语言,有更好的可读性,因此上手相对容易.自带的各种模块加 ...

  4. 自学Python从哪学方面入手?

    自学Python语言主要可以从以下三个方面入手. 一.要选择一个主攻方向,围绕主攻方向来制定学习计划. 二.是要搭建起实验环境,要边学习边做实验. 三.是要营造一个交流环境,自学并不意味着要脱离交流环 ...

  5. 非科班的我如何自学Python在一线城市找到一份15k的offer的?

    大家好,我是PythonYu,今天是我kotlin入门后,入行Python后,第一次总结下自己的经验! 12年从三流大学毕业后,刚开始接触的是java,后来入门了kotlin,后来我学习了Python ...

  6. 转行python经验_【经验分享】转行如何自学Python并且找到工作,分享自己心得

    目前信息化产业发展势头很好,互联网就成为了很多普通人想要涉及的行业,因为相比于传统行业,互联网行业涨薪幅度大,机会也多,所以就会大批的人想要转行来学习Python开发. 做Python开发多年,给大家 ...

  7. python学哪些东西_想要自学Python ,需要准备什么东西?

    学习Python这门技术,你需要保持一颗敬畏的心态去学习,认真对待写下的每一行代码,甚至每一个字符.想要学习Python拿高薪,你要学习满足企业需要的技术,比如Python基础.Linux.Web全栈 ...

  8. 文科生自学python要多久_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  9. 自学python找工作难吗-大四应届毕业生,学了两个月Python,找工作感觉好难啊?...

    回答这个问题,是因为我们最近采访了一位Python爱好者,目前他在目前在河北廊坊某工厂上班,普工. 从他的故事里,你或许能够找到答案. 为保护当事人隐私,文中主角名字均为化名. 当记者第一次见到郑强时 ...

  10. 自学python可以做什么兼职-一行生财:毕业100天,通过副业赚(挣)到我的第一个10w...

    一行 读完需要 12分钟 速读仅需 4 分钟 大家好,我是一行 读大学时,觉得研究生好有钱啊,不仅免学费,每个月还给上千的补贴,出差还包吃住! 后来读研究生时,卧槽真穷,一个月补助 1200,出差实验 ...

最新文章

  1. dataconnectiondialog mysql_MySQL的DataConnectionDialog
  2. DEDE常见问题(转)
  3. 【Android 安装包优化】APK 打包流程 ( 文件结构 | 打包流程 | 安装流程 | 安卓虚拟机 )
  4. 06-typeAliases标签和package标签
  5. java的classpath是什么_JAVA初学者classpath设置情况是什么?
  6. php正则表达式,数组,函数
  7. boot jndi数据源 spring_spring boot多数据源配置(mysql,redis,mongodb)实战
  8. java xml map 方法_JAVA XML转换MAP 方法
  9. Python 数据分析三剑客之 Matplotlib(三):图例 / LaTeX / 刻度 / 子图 / 补丁等基本图像属性
  10. eclipse+spket+Extjs4.2.1开发环境搭建
  11. 转行数据分析,是选Python还是R?
  12. ios之JavaScript
  13. sqlserver之创建视图
  14. uc3854 matlab仿真,基于UC3854硬开关PFC变换电路设计课程设计.doc
  15. Microbiome | 黄海所陈松林院士/华科宁康等-肠道菌群在龙利鱼(半滑舌鳎)抗弧菌病性状形成中的机制...
  16. 如何解决win10语言栏消失变成空白问题
  17. Android一键清理原理
  18. WC2007 剪刀石头布【补集转化+比赛问题费用流】
  19. JSP JSTL标签
  20. Maven的安装配置、IDEA中搭建Maven环境

热门文章

  1. tensorflow-federated+win10
  2. 根据邓白氏号码查询公司信息
  3. 【Tips】【UE】总结自己常用的UltraEdit使用技巧
  4. 2019ccpc东北地区大学生程序设计竞赛(东北电力大学)前四题
  5. 2022年熔化焊接与热切割考试练习题及在线模拟考试
  6. 2022年熔化焊接与热切割考题及在线模拟考试
  7. 明月浩空播放器php源码,【模板分享】明月浩空的Colorful响应式全站Pjax模板
  8. 大数据平台展示可视化效果,echarts图表实战项目(源码50套)
  9. MAPIFolder.UserDefinedProperties 的作用
  10. 关于ubuntu安装flash插件的问题