自学python,从小白到大神,需要多久?
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,从小白到大神,需要多久?的更多相关文章
- 【同行说技术】iOS程序员从小白到大神必读资料汇总
在文章<iOS程序员从小白到大神必读资料汇总(一)>里面介绍了很多iOS入门学习的资料,今天小编就发几篇技术进阶的文章,快来看看吧! 一.iOS后台模式开发指南 这个教程会教你在什么时候怎 ...
- python从入门到大神---Python的jieba模块简介
python从入门到大神---Python的jieba模块简介 一.总结 一句话总结: jieba包是分词技术,也就是将一句话分成多个词,有多种分词模型可选 1.分词模块包一般有哪些分词模式(比如py ...
- python从入门到大神---4、python3文件操作最最最最简单实例
python从入门到大神---4.python3文件操作最最最最简单实例 一.总结 一句话总结: python文件操作真的很简单,直接在代码中调用文件操作的函数比如open().read(),无需引包 ...
- python从入门到大神---2、和Python编程相遇的日子
python从入门到大神---2.和Python编程相遇的日子 一.总结 一句话总结: python2和python3是很不同的,连语法都不同,比如 print 函数打印结果 1.python中pip ...
- python从入门到大神---3、浮光掠影python3语法
python从入门到大神---3.浮光掠影python3语法 一.总结 一句话总结: 语法不必一次记全部,效率太差,用哪部分内容,就把那部分内容全部记下来 1.python3中单引号和双引号的区别是什 ...
- python从入门到大神---1、初始化实例、类属性、方法
python从入门到大神---1.初始化实例.类属性.方法 一.总结 一句话总结: 方法不加括号是代码段:感觉python方法和js,php很类似,不加括号是代码段,加括号变成方法,比如f,f() 1 ...
- 老杜告诉你java小白到大神是怎么炼成的(转载)
老杜告诉你java小白到大神是怎么炼成的 1. 学习前的准备 一个好的学习方法(应该怎么学习更高效): 一个合格的程序员应该具备两个能力 有一个很好的指法速度(敲代码快) 有一个很好的编程思想(编程思 ...
- 小白到大神,Python 密集知识点汇总
Python 基础 1. 变量 你可以把变量想象成一个用来存储值的单词.我们看个例子. Python 中定义一个变量并为它赋值是很容易的.假如你想存储数字 1 到变量 "one" ...
- 【同行说技术】Python程序员小白变大神必读资料汇总( 三)
在文章<Python开发.调试.爬虫类工具大全>里面向大家总结了各种实用工具和爬虫技术,今天小编收集了5篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...
随机推荐
- Crossing River 题解(贪心)
题目链接 题目大意 t组数据(t<=20) 给你n个人(n<=1000)过河,每个人都有权值,一条船,每次船最多运2个人,每次的花费为两个人的较大花费 求所有人都过河需要的最小花费 题目思 ...
- Java集合【5】-- Collections源码分析
目录 一.Collections接口是做什么的? 二.Collections源码之大类方法 1.提供不可变集合 2.提供同步的集合 3.类型检查 4.提供空集合或者迭代器 5.提供singleton的 ...
- Spring Boot 2.4.0正式发布,全新的配置文件加载机制(不向下兼容)
千里之行,始于足下.关注公众号[BAT的乌托邦],有Spring技术栈.MyBatis.JVM.中间件等小而美的原创专栏供以免费学习.分享.成长,拒绝浅尝辄止.本文已被 https://www.you ...
- Intel s2600系列做虚拟化需要注意的item
Intel s2600cw\cp主板做虚拟化BIOS需要设置以下选项,附件为截图供参考. -->vt,cpu虚拟化,默认关闭,需要确保开启 -->ht,cpu超线程,默认开启,需要确保开启 ...
- 05_Content Provider
Content Provider是内容提供器,与内容(数据)的存取(存储.获取)有关,是Android应用程序的四大组成部分之一,是Android中的跨应用访问数据机制. 数据库在Android当中是 ...
- javascript开发后端程序的神器nodejs
目录 简介 nodejs的历史 nodejs简介 nodejs的运行环境 process 终止进程 env argv CLI交互 exports模块 nodejs API nodejs的框架 简介 j ...
- jupyter notebook 将当前目录设置为工作目录
生成配置文件首先打开你的CMD或者是终端(Linux),在你配置过环境变量的基础下,你直接输入以下命令: jupyter notebook --generate-config 然后打开生成的配置文件, ...
- charles 常用功能(七)简易接口压力测试(repeat advance 功能)
接口请求次数.并发量.请求延迟时间均可配置 1.选中需要进行测试的接口,鼠标右键 选中[repeat advance] 设置迭代数量
- PyQt(Python+Qt)学习随笔:QAbstractScrollArea的sizeAdjustPolicy、horizontalScrollBarPolicy、verticalScrollB属性
老猿Python博文目录 老猿Python博客地址 Qt Designer中QAbstractScrollArea包括三个属性,分别是horizontalScrollBarPolicy.vertica ...
- 哪些地方会出现css阻塞,哪些地方会出现js阻塞?
js的阻塞特性: 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等. 直到JS下载.解析.执行完毕后才开始继续并行下载其他资源并呈现内容. 为了提高用户体验,新一代浏 ...