2020年10月 TIOBE 排行榜超过了 Java, 历史上首次 Python 超越了 Java ,再次让许多朋友对 Python 产生了兴趣,今天我们来梳理下学习 Python 几个阶段或者级别,期望对持续进化的你有所帮助

本文缘起于知乎上的一个提问: 怎么自学python,大概要多久? ,当时做了一个回答,这次重新整理了一遍,全文如下:

看了回答区的很多回答,感觉很专业也很详尽,觉得要回答多久的问题,需要先回答 学习的目标是什么 这个问题,这里将目标分为 入门、进阶、深入和终极四个部分来说明

入门:只是了解

Python 已然是最流行的语言,特别是在数据分析和机器学习风靡的情况下,Python 也受到了少儿编程的青睐,所以许多同学处于各种原因,只是需要了解一下

那么需要先了解 Python 环境搭建,了解一下操作系统的基本只是,比如环境变量、命令行工具等 然后安装 Python,并且可以在命令行中执行进入 Python,执行简单操作

接着,在文件文件中,写入 print(Hello World) ,保存,执行

这就可以算入门了,整个过程不到一个小时

对应入门来说,推荐用命令行的方式,很多教成会推荐 Anaconda,PyCharm 等集成开发工具,虽然功能强大,界面美观,不太信息量太大,比如容易分散注意力,且不利用 Python 环境的理解

进阶:完成简单任务

要完成一些简单任务或者是写写脚本,比如处理下 Excel、Word、文本中的数据,做些文件处理操作,写个自娱自乐的小程序(非微信\支付宝\头条等小程序)等

只需要了解基本 Python 语法,比如变量定义,基础数据结构,判断语句,循环语句,方法定义等

另外学习一下相关软件包,比如 OpenPyXl (可参考 《Excel 神器 —— OpenPyXl》 )用于处理 Excel

Python-docx(可参考 《Word 神器 python-docx》 ),用于处理 Word

Python 内置模块 os,用于处理文件系统,Pygame 简单游戏包(可参考 《做硬核老爸,我用 Python》 ),用来做些好玩的游戏,等等

这一阶段,只要持续练习,一个月左右,就能熟练上手,做出自己想要的东西,提高工作效率

我公司有个通信设备工程师,为了方便调试主机,开始学 Python,不到一年时间,不仅解决了工作中的问题,得到了嘉奖,还成了部门 Python 专家,经常指导其他人学习 Python

高级:构建应用系统

如果想让更多的人用自己写的程序,而不仅仅用于自己,就需要构建一个系统或者应用。

Web 系统

需要学习 Flask(可以参考 《Web 开发 Flask 介绍》 ) 或者 Django 等 Web 框架

更重要的是,需要了解网络基础知识,如 Http,域名,云服务器等

数据库处理等相关知识,如 Sql 语句,Mysql 数据库,或者 Sqlite 数据库等

安全相关知识,如 Session,token,OAuth 认证机制(可以参考 《OAuth2.0 简介》 )等

服务部署相关知识或技能,将自己的程序通过网络方式提供更多的人使用(可参考 《部署 Flask 应用》

桌面应用

比如在 Windows,或者 Linux 下的应用,需要了解操作系统相关知识

并学习 wxpython、PythonWin、PyGTK、PyQt 等软件包,像 wxpython 有强大丰富的功,并且支持跨平台的桌面应用,让你做的程序有更好的适应环境

Windows 下的应用,可参考 《公交闹钟 —— 再也不用白等车了》 ],其中描述了如何构建一个Windows 定时任务,以及将 Python 程序打包成 可执行文件 的方式

如果要达到构建系统的目标,除了 Python 语言本身以及相关软件包的学习之外,更多的是需要学习网络、操作系统、编程思想、设计模式等方面的知识

如果是从头学习,至少需要半年使时间,如果要到达精通,且在商业项目中应用,则可能需要一到两年时间

深入:数据分析与机器学习

python 几乎是个万能的语言,特别实在数据分析和机器学习方面,因为其写更少的代码,做更多的事的理念,深受数据科学家们的追捧。

如果目标是做数据分析,首先需要对数据分析思想和过程有所了解(可以参考 《这个数据分析报告,居然没写一行代码》

然后需要学习,数据采集、数据整理、数据可视化等方面的知识或者技能:

  • 数据采集基本上就是常说的爬虫,从网络上获取需要分析的数据,相关框架或者软件包有 Scrapy,Selenium,Requests 等

  • 数据整理就是对要分析的数据进行清洗、分解、归类、转换等操作,常用的包有 Numpy、Pandas 等,可以以极为高效的方式处理完成任务,例如我写的一篇 《干掉公式——Numpy就该这么学》 ,从另一个侧面介绍了 Numpy 的强大

  • 数据可视化只有能被人直观感受到,才能更多的发挥数据的价值,通过条形图、圆饼图、雷达图、散点图等直观有效的图像,将数据直观的呈现出来,是数据分析必不可少的环节,相关框架和软件包有 matplotlib、pyecharts、Dexplot 等,我写过一篇关于 Flask 和 pyecharts 结合的文件可以参考 《Python Flask 数据可视化》

如果你的目标是做数据分析,从头学起,坚持练习,三个月,就可以做基本工作了,这是找个相关数据分析的工作,不成问题,如果想要深入研究,数据分析、甚至机器学习相关的原理算法,并能应用自如,没个三五年估计很难做到

终极:成为专家

其实任何领域成为专家,有一个共识定律:一万小时定律,想成为 Python 的专家也不例外

python 之所以成为众多领域中首选的编程语言,并非 Python 是众多领域的核心,而是 Python 可以作为一种处理问题的思想和实现工具

所以更多的学习者是想将 Python 作为一种学习和工作的工具,提高某个领域中解决问题的效率,因此,如果目标是成为专家,可以先选择一个 Python 可以得到应用的领域,比如系统构建、数据分析、机器学习、视频游戏等等

然后通过在该领域的不断深入,使 Python 技能在该领域上得到最大限度的发挥,可能是个成为专家的捷径

如果问需要多久,只能说看造化了。

总结

无论你的目标是什么,都离不开不断的学习与实践

学习分为三个阶段,第一阶段是学,即了解和学习相关习知识;第二阶段是教,即跟着老师或者教材学;第三个阶段是练,这个阶段是最为重要,需要自己多练

希望这篇短文对你的学习之旅有所启发,祝你早日实现自己的目标。

自学python,从小白到大神,需要多久?的更多相关文章

  1. 【同行说技术】iOS程序员从小白到大神必读资料汇总

    在文章<iOS程序员从小白到大神必读资料汇总(一)>里面介绍了很多iOS入门学习的资料,今天小编就发几篇技术进阶的文章,快来看看吧! 一.iOS后台模式开发指南 这个教程会教你在什么时候怎 ...

  2. python从入门到大神---Python的jieba模块简介

    python从入门到大神---Python的jieba模块简介 一.总结 一句话总结: jieba包是分词技术,也就是将一句话分成多个词,有多种分词模型可选 1.分词模块包一般有哪些分词模式(比如py ...

  3. python从入门到大神---4、python3文件操作最最最最简单实例

    python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...

  4. python从入门到大神---2、和Python编程相遇的日子

    python从入门到大神---2.和Python编程相遇的日子 一.总结 一句话总结: python2和python3是很不同的,连语法都不同,比如 print 函数打印结果 1.python中pip ...

  5. python从入门到大神---3、浮光掠影python3语法

    python从入门到大神---3.浮光掠影python3语法 一.总结 一句话总结: 语法不必一次记全部,效率太差,用哪部分内容,就把那部分内容全部记下来 1.python3中单引号和双引号的区别是什 ...

  6. python从入门到大神---1、初始化实例、类属性、方法

    python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...

  7. 老杜告诉你java小白到大神是怎么炼成的(转载)

    老杜告诉你java小白到大神是怎么炼成的 1. 学习前的准备 一个好的学习方法(应该怎么学习更高效): 一个合格的程序员应该具备两个能力 有一个很好的指法速度(敲代码快) 有一个很好的编程思想(编程思 ...

  8. 小白到大神,Python 密集知识点汇总

    Python 基础 1. 变量 你可以把变量想象成一个用来存储值的单词.我们看个例子. Python 中定义一个变量并为它赋值是很容易的.假如你想存储数字 1 到变量 "one" ...

  9. 【同行说技术】Python程序员小白变大神必读资料汇总( 三)

    在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...

随机推荐

  1. 编译安装opssl

    wget http://www.openssl.org/source/openssl-1.0.1q.tar.gz tar zxvf openssl-1.0.1q cd openssl-1.0.1q . ...

  2. 4. Eclipse集成Git

    4.1 Git插件 Eclipse中已经内置了Git插件 4.2 把工程初始化为本地库 初始化 设置本地库范围的签名 4.3 Git图标 4.4 Eclipse特定文件 Eclispe特定文件介绍 为 ...

  3. Non Super Boring Substring 题解(hash+思维)

    题目链接 题目大意 给你一个长度为d(d<=1e5)的字符串,要你求有多少个子串满足这个子串不包含长度大于等于k的回文子串 题目思路 首先可以hash预处理,然后O(1)用前缀hash值和后缀h ...

  4. csust T1097 “是时候表演真正的技术了” 题解(虚点跑最短路)

    题目链接 题目大意 给你n个点m条路,以及k个宝藏点,q次查询要你求出距离这个点最近的宝藏点的距离 题目思路 一个套路题,建立虚点与k个点连一个权值为0的边,跑最短路即可 注意边多了4000条 代码 ...

  5. High-Resolution Image Inpainting using Multi-Scale Neural Patch Synthesis

    论文来源:CVPR 2017 摘要 之前方法的缺点:之前的方法是基于语义和上下文信息的,在填充较大holes的表现得很好,能够捕获更高级的图像特征,但是由于内存限制和难以训练网络的因素,只能处理分辨率 ...

  6. 【NOIP2017提高A组模拟9.17】组合数问题

    [NOIP2017提高A组模拟9.17]组合数问题 题目 Description 定义"组合数"S(n,m)代表将n 个不同的元素拆分成m 个非空集合的方案数. 举个例子,将{1,2,3}拆分成2 个 ...

  7. 【NOIP2012模拟8.7】JZOJ2020年8月8日提高组T1 奶牛编号

    [NOIP2012模拟8.7]JZOJ2020年8月8日提高组T1 奶牛编号 题目 作为一个神秘的电脑高手,Farmer John 用二进制数字标识他的奶牛. 然而,他有点迷信,标识奶牛用的二进制数字 ...

  8. PyQt(Python+Qt)学习随笔:QTextEdit的setText、setHtml、setPlainText之间的区别

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 QTextEdit中提供了三个设置编辑器文本的方法,分别是setTex ...

  9. Python中对输入的可迭代对象元素排序的sorted函数

    sorted根据输入可迭代对象中的项返回一个新的已排序列表,原输入参数对象中的数据不会发生变化. 具体可参考:<Python中与迭代相关的函数>的详细介绍 老猿Python,跟老猿学Pyt ...

  10. 第13.1节 关于Python的异常处理

    Python的异常网上有很多资料介绍,老猿就不再细说,在这里老猿只挑几件老猿认为重要的内容介绍一下. 一. 异常处理完整语法 异常处理的完整语法语法如下: try: - except (异常1,-,异 ...