自学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篇带有实例干货的资料,赶紧来看看吧!另外,喜欢写博客的博主可以申请加工程师博主交流群 ...
随机推荐
- Elasticsearch实现搜索推荐词
本篇介绍的是基于Elasticsearch实现搜索推荐词,其中需要用到Elasticsearch的pinyin插件以及ik分词插件,代码的实现这里提供了java跟C#的版本方便大家参考. 1.实现的结 ...
- Sysbench对Mysql进行基准测试
前言 1.基准测试(benchmarking)是性能测试的一种类型,强调的是对一类测试对象的某些性能指标进行定量的.可复现.可对比的测试. 进一步来理解,基准测试是在某个时候通过基准测试建立一个已知的 ...
- mq TransientStorePool
总得来说 有些像页高速缓存那样,为了避免页面被换出到交换区,mq申请了一块内存,并且用指定这些页面不能被操作系统换出,然后将这些内存分配给业务使用:
- cobbler 装机服务
一.Cobbler 安装 $ yum install -y epel-release $ yum install -y cobbler cobbler-web pykickstart debmirro ...
- Mybatis报错invalid comparison: java.util.Date and java.lang.String
请求参数中两个属性确实都是date类型,数据库也确认是data类型,这个错误是因为 在这里把date类型的参数与单引号做了比较出现的,删除就可以正常运行了.
- 第15.45节、PyQt输入部件:QKeySequenceEdit快捷键输入部件简介和使用案例
专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.功能简介 Key Sequence Edit输 ...
- Python中sort、sorted的cmp参数废弃之后使用cmp_to_key实现类似功能
Python2.1以前的排序比较方法只提供一个cmp比较函数参数,没有__lt__等6个富比较方法, Python 2.1引入了富比较方法,Python3.4之后作废了cmp参数.相应地从Python ...
- js将秒数转换为时分秒格式
function secondToTimeStr(t) { if (!t) return; if (t < 60) return "00:" + ((i = t) < ...
- Spring引用数据库文件配置数据源
例子:引用 druid.properties 在Spring配置文件(applicationContext.xml)引入外部配置文件,需要指定特定的 key才能被正确识别并使用 在原本的 url.us ...
- 优化 Webpack 的构建速度
1.使用高版本的 Webpack 和 Node.js 2.多进程/多实例构建:HappyPack(不维护了).thread-loader 3.压缩代码 webpack-paralle-uglify-p ...