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. Python爬虫实现翻译功能

    前言 学了这么久的python理论知识,需要开始实战来练手巩固了. 准备 首先安装爬虫urllib库 pip install urllib 获取有道翻译的链接url 需要发送的参数在form data ...

  2. JZOJ2020年8月11日提高组T4 景点中心

    JZOJ2020年8月11日提高组T4 景点中心 题目 Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个 ...

  3. 不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8

    不是程序员,代码也不能太丑!python官方书写规范:任何人都该了解的 pep8 简介:为什么要强调 书写规范 ?这其实并不关乎"美丑",而是为了 更高的效率(代码阅读.开发.维护 ...

  4. 本地eclipse java api连接远程虚拟机HBase

    1.本地与远程连通 无论是域名或者ip都可以,另外需保证HBase在虚拟机集群上正常运行. 2.本地要有一个跟远程相同的hadoop环境 当然不相同,只要兼容也可以,现采用hadoop-2.5.0-c ...

  5. PyQt(Python+Qt)学习随笔:QDockWidget停靠部件floating和features属性

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 1.floating属性 floating属性表示QDockWidge ...

  6. 面试阿里,字节,腾讯90%被问到的springboot常见面试题,这次给你讲的明明白白!

    1.什么是Spring Boot? 多年来,随着新功能的增加,spring变得越来越复杂.只需访问https://spring.io/projects页面,我们就会看到可以在我们的应用程序中使用的所有 ...

  7. 使用kali生成远控payload

    kali linux中的metasploit框架是优秀的渗透框架之一,今天记载一下使用kali生成windows远控木马的过程 生成payload使用的工具是MSFVenom,我们输入msfvenom ...

  8. 分别使用python和java练习冒泡排序

    冒泡排序算法的运作如下:(从小到大)   比较相邻的元素.如果第一个比第二个大,就交换他们两个. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对.在这一点,最后的元素应该会是最大的数. 针 ...

  9. js- 判断属性是否 属于该对象 hasOwnProperty()

    var obj ={ name:'suan', sex :'male', age:150, height:185, characeter:true, _proto_:{ lastName:'susan ...

  10. leetcode计划(二)——ps:复习面试题计划+锻炼计划

    5.24周日 下周是新的一周,发布任务 一.leetcode计划题目:300,416,494,474(前四个动态规划)(plus:860),232,225,155(后三个栈) 建议之后可以先做:cs- ...