课程导学
事物矛盾的法则,即对立统一的法则,是自然和社会的根本法则,因而也是思维的根本法则。 ——毛泽东
你好,我是加法老师,一个和Python打了近10年交道的老Pythoner。
08年入行,2012年开始自学Python作为第二语言,2015年正式成为Python开发工程师,既做后端开发,也鼓捣爬虫、数据分析,在这10年间也算切身感受到了Python的发育过程。
平时写点儿博客,有时会收到一些网友私信,向我咨询一些Python的问题,除了技术相关,被问最多的基本是【学编程选Python好吗】,换一种更直白的说法就是学了Python能找到工作吗?薪资怎么样?有前途吗?… …
我基本上会建议他们先去网络上搜集一下答案,毕竟搜索能力也很重要,我可不承认自己懒,哈哈。
但是搜索了解之后吧,发现了一种有点儿有趣甚至说有点儿割裂的现象,Python在不同的语境中一边力挺一边被唱衰。
力挺派:在大部分媒体的报道中【Python是发展前景最好的编程语言】【简单易学薪酬高】,培训机构靠【Python+人工智能】赚的盆满钵满,甚至在朋友圈、短视频平台都出现了【现在和未来的社会人人都要学Python】【Python学得好,升职加薪少不了】的推广。与大数据、人工智能等热词捆绑在一起的Python,飞翔在网络风口,前景一片光明。
唱衰派:Python有的只是资本营造出来的火热,一些资深的程序员痛心疾首的告诫半只脚迈进Python大门的小白兔们“快跑!”,【Python是被严重高估的语言】【只会Python很难找到工作】【薪资低、岗位少】【这种脚本语言性能差,真要开发程序是真不行】。
【这些论据做成图片形式,打马赛克】
这是一种最好的编程语言,这是一种最烂的编程语言!看了看这些截然不同的观点,加法老师觉得好像都挺有道理的,但是和我实际在工作中的感受又好像偏离很多,所以,就想结合自己10年的Python工作经历,给你也给向我咨询的小伙伴分享一下我的观点,尽量做到客观公正,拨开迷雾!
本次课程将会分析准确、客观的信息,我也会爬取一些数据,回答下面的这几个问题:
- 网络上Python的红火到底是“真火”还是“虚火”?
- 只会Python很难找到工作吗?
- Python的未来是昂扬向上还是跌落神坛?
希望你看完这次课程后,对Python的市场现状与未来的发展前景有一个比较清晰的认知,结合自身的特点,做出最正确的判断,同时在面临海量的信息时能得出自己的观点。
第一关 Python是“真火”还是“虚火”?
当前IT江湖,编程语言众多,个个身怀一技之长,在各自领域占有一席之地。
我们没有办法评选出最佳编程语言,世界上也不存在这样一种语言,但是会有一些类似“百晓生”的机构实时监测数据,推出“IT江湖排行榜”,能让开发者了解当前编程语言的发展情况。
1.1 国际
TIOBE编程语言排行榜算是现在最常用来表示编程语言流行趋势的重要指标,你在各种关于Python的夸夸群里肯定看到过这张榜单图,时间段可能略有不同。这个榜单是通过公式计算编程语言在8大搜索引擎(比如Google)上被搜索的情况,然后得出一个榜单,每个月都会更新,能反映出某个语言在某一时间段内的热门程度,很好理解,热门语言自然会被搜索的多。
回顾编程语言排行历史可以看到,长期以来,编程语言排行榜上顺位不断的变化着,有的长期霸占头三甲,有的曾经辉煌,现在逐渐没落,而有的曾经默默无闻,现在逐渐展露头角。
而我们今天要说的Python,就属于后者。Python其实“出生”很早,上个世纪九十年代诞生于美国,但是一直默默无闻,大概05年之后一路向前。
注:排名取决于12个月的平均值
从下面这张图可以更明显的看出(数值越大受欢迎程度越高),近几年Python在编程语言排行榜上飙升的还是比较快的,18年后已经可以和经久不衰的 C 语言、Java 等编程语言 “掰一掰手腕”了。在过去的2020年Python还登上了编程语言“名人榜”,这个奖项授予一年中增长率最高的编程语言,就是说Python的热度还在不断增长。
一些其他榜单,例如IEEE、PYPL等,Python也都有不俗的成绩,你可以自行去查一下,很有意思。
通过这些数据,加法老师暂时给出一个结论:国际上的开发者还是对Python寄予了很高的期待的,在全球范围内是得到认可的,是一门高价值学科。
1.2 国内
以TIOBE为代表的排行榜反映了英文世界里各种编程语言的“受关注程度”,但是与国内的实际情况未必完全相符,那在国内的大环境下,Python依然是热门语言吗?
国内这种专门的榜单不多,所以老师会多找几个角度分析一下。
我们先用最简单的百度指数来看一下Python近10年的搜索趋势变化,这也是加法老师与Python结缘的10年,为了让结果更清晰,加入了现在热门的Java作为参考。
老师在2012年开始自学Python作为第二语言,帮助提高工作效率,那个时候Python在国内还只是一门非常小众的语言,除了豆瓣、搜狐在用之外,很难看到有体量的公司用Python。14年、15年开始趋势线上扬,也是15年老师决定从C转为Python开发,在那之后一直保持着很高的流行趋势。
从百度的搜索指数来看,Python的“热度”变化和老师自身感受还是很相符的,能明显的感觉到身边用Python的伙伴越来越多。这张图里,Python在17年开始远超Java,这个让我有点儿吃惊,在互联网领域里Java的使用率肯定是超过Python的。
那我们再来看另外一个榜单,CSDN自2004年开始针对中国开发者进行大规模调查,可以作为了解中国开发者群体整体现状的一个参考。从4月份发出的《2019-2020中国开发者调查报告》统计的数据可以看出,Python开发者数量占比近三成,在常用语言中居前三。在上一年的报告中Python的占比是两成,排第五。

(数据来源:CSDN)
1.3 数据背后的原因
互联网人讲究用数据说话,你会发现搜索数据和使用数据出现了偏差,其实这就是造成一边感觉Python已经在网络上很火了但是又感觉实际使用的人没有那么多的原因。
因为在搜索引擎上查询的人不一定在使用这门编程语言,也许只是想去了解一下。
TIOBE公司的总裁保罗-简森曾经说过,Python普及与数据挖掘、人工智能和数值计算等领域的蓬勃发展相关,但同时也与普遍编程需求的增加有关。Python自身的一些特点造成了搜索词条的人特别多。
(1)人工智能的蓬勃发展
要说现在网上里面最炙手可热的非人工智能莫属,我家三岁孩子在上的数学课都要挂个名字叫【AI思维】。人工智能的概念其实很早就出现了,但是受制于算力一直没有得到很好的发展,近几年由于计算力的增长、海量数据的积累还有算法的进步和优化,人工智能开始真正的发挥作用,应用到各个领域。
Python作为适合人工智能的基础语言,一方面会吸引大量计划从事人工智能的人来学,一方面自然也会引起网络上对这门【新语言】的关注,如果我是培训机构也会趁这个风口好好推广一番的。
这里加法老师想提醒一下,Python是实现人工智能的一种工具,并不意味着会写Python代码就能去做人工智能的工作,人工智能对学历、专业的要求还是很高的。仅从我身边来说,学了Python去做后端开发、数据分析的比较多,编程经验特别浅的大多去做了测试、运维,Python的应用领域非常广泛,学习者选择很多。
(2)普遍编程需求的增加
过去大多数编程活动是由专业人员来完成,比如像加法老师这种起码是计算机专业的,现在的人们需要一种简单易学的,不是程序员也能上手的,能很快被学习的语言,而Python恰好满足了这些需求。我觉得这是Python特别了不起的地方,它打破了普通人和编程之间的壁垒。
Python代码特别简单,同样的功能,Python代码量会更“瘦小”,可读性也强,举一个最简单的例子,看看把大象装进冰箱,如果用不同的语言来实现,分别用几步?
而且Python本身自带丰富的库文件可以直接拿来使用,比如爬虫库、数据分析库等等。
你可能在朋友圈里看到过【Python高效办公】的推广,Python确实有很多库可以学习一下用来提高办公效率,比如爬取信息,快速分析数据,或者写一些小的脚本工具,最开始加法老师就是Python来写小工具提高工作效率的。如果你对Python感兴趣,想提升工作效率,Python是一个很好的选择,好用还不难,也许未来Python会成为office一样通用的工具。但是那些【学Python自动化办公,升职加薪,实现月入三千到三万】营销文章的就不要信了。
好的,我们复盘一下。
从搜索数据来看,Python在10年间地位确实发生了翻天覆地的变化,这是毋庸置疑的,作为一个Python使用者,我很开心的说,Python确实“火”了。与其他编程语言的不同点是,Python的搜索数据即包括程序员,也包括了非程序员。
从开发者的调查问卷来看,Python目前并不是第一语言,但是使用率在增长中,这是因为有不少开发者像加法老师一样会选择在原有语言的基础上再学一门Python或者直接迁移到Python,也有不少“小白兔”一开始就选择Python入行。
第二关 只会Python不好找工作吗?
有人说Python薪酬高,市场缺口大,也有一些老程序员发出呼喊,如果只凭Python会很难找到工作,真实的情况是怎样的,我们通过数据来看一下。
2.1 招聘市场
透过招聘岗位数据也可以看出当前企业对语言的需求情况。老师采集了前程无忧2021年3月份的的岗位数据(仅供参考),从统计表格可以看到,老牌的Java、C语言凭借早年打下的江山,依旧占据着中国市场很大份额,而Python作为近年来刚刚展露头角的语言,正慢慢的攻城略地,随着人工智能革命的深化,Python的应用将会越来越广泛。
(数据来源:前程无忧 2021.3)
这几年Python很火,有大量的学生选择Python相关专业,也不断有其他行业的小伙伴正在转行或者计划转行Python。那就存在这样一个问题,大家都来学习Python,这片市场会不会饱和呢?
入行Python的人数确实在连年增长,但是社会和用人单位的需求量依然非常大。Python程序员就业方向多元,除去Python开发工程师、Python人工智能工程师、Python自动化测试外,也能够朝着Python游戏开发工程师、数据分析工程师、Linux运维工程师等方向发展,不同层次的应聘者都有选择的方向,供求矛盾并不突出。
2.2 开发薪资
前面从岗位数量的角度介绍了Python当前的发展现状,很多童鞋肯定很关心的一件事就是,如果成为一名光荣的Python程序员“钱途”如何呢?
老师从另外一个招聘网站51CTO上把所有语言的工资水平搜出来,整理成表格给大家参考,一目了然,让事实说话咯。
从上面的表格中是按平均工资的高低进行的排序,但找工作也要考虑招聘人数占比,第一名的“rust”工资虽高,但属于小众语言,占比不高,这就决定来就业面窄。
综合起来看,python的薪酬状况还是不错呢,最高的工资基本是由人工智能和算法方向贡献的。
老师还参考了一下薪酬平台上的数据,数据统计2020年3月~2021年3月各平台发布的公开薪酬,全国Python平均薪资水平在14K+,2020年相较于2019年基本持平,薪资在10K-15K的人数最多,可以看出学习Python作为进入互联网行业的敲门砖是一个不错选择。
(数据来源:职友集)
从上面的统计数据中也可以看出,不同开发人员的工资差别非常大,甚至出现了10倍杀的情况。
薪酬的影响因素非常多,地区是一个重要的因素。Python的招聘需求几乎都由一二线城市发布,这些城市的平均薪资也有较大的差异,北、上、深三个一线城市位于前三甲,杭州由于拥有阿里巴巴超过了我们预期中的广州。
(数据来源:职友集)
除了地区的影响,工作经验也是一个重要的因素,工作经验越丰富,工资也会越高。
这里你可能会有担心,作为Python的初学者,没有丰富的经验,是不是只能拿到一个非常低的工资?有幸也招过不少人,对于招聘单位来说,他们更看中的是求职者的能力,设置工作经验也是为了快速淘汰能力不够的求职者,只要你技术到位即使是新入行工资也不会低。
在这里,老师提一个建议,正所谓技多不压身,如果想开高工资,除了要有扎实的Python技能,要多学些业务层面的知识。比如你会了Python,如果做大数据,要学习spark、hadoop、hbase等大数据生态圈里的开源软件;如果你做自动化运维,你需要了解运维的对象。这些是业务层面的知识,只有这样做一名综合型人才,不仅工作机会多,薪水也多多哦。
第三关 预测Python的发展前景
听着这样一种说法,Python的行业红利已经消失了,前途不好说,在这一关,加法老师将会新兴技术发展曲线的角度聊一聊我认为的Python的发展趋势,然后针对当前对Python的一些技术方面的争议点做一做回应。
3.1 Python已经进入稳定发展期
编程语言总体上经过三代的发展,从最早的机器语言,然后到汇编语言,最后到现在的高级语言。
我们现在说的各种语言都是高级语言,高级语言的数量比我们想像的要多,随着技术的发展,很多编程语言已经渐渐退出历史舞台,Fortran、Basic 和 Pascal 语言基本上已经很少有人使用了,但C语言是一个典型的代表,经久不衰,现在还非常流行。
Java 语言是随着网站的出现成熟变成了现在最流行的语言之一。C# 则是微软公司看 Java 很流行而写的一个与 Java 语法相似的语言。
伴随着硬件水平的提高,以及大数据时代的到来,Python的特性完美迎合了当前发展的主流,使得Python迅速成为主流编程语言。
从编程语言的发展史我们可以得出一点结论:编程语言的兴衰和当前社会的需求息息相关。如果一门编程语言能够适应社会的需求,则发展的很好,如果不能够符合社会发展需要了,则它会慢慢被淘汰。
也有一些人认为Python现在的火热都是资本堆出来的泡沫,当初“低门槛、高薪酬”的行业红利已经不存在了。
Python虽然诞生较早,但是之前一直默默无闻,我们依然可以把它看做是一种新兴技术,任何一项新技术,从诞生到大规模应用一般都要经历 看好、过热、调整、稳定的过程,Python也是如此。
- 看好——刚刚展露头角时,社会预期会较高,对Python寄予厚望,各种标准还没有成型,一边探索一边开始大规模使用;
- 过热——受到舆论宣传的影响,企业为了建立先发优势大量招聘,16、17年的时候只掌握Python的单一技能就能找到一份不错的工作,真正的低门槛、高薪酬。IT培训机构迅速上线了大批技术课程,大量的学习者投入Python麾下。
- 调整、稳定——经历了过热的阶段,企业不再盲目上马,人们也更加理性的思考,进入调整的阶段。事实上19年之后市场已经回归稳定状态,技术人员只会一种技术的时代已经过去,现在的岗位要求都需要掌握更多的技能。
所以说并不是行业红利消失,而是现在才是正常的、稳步增长的状态。
3.2 关于Python语言本身的质疑
毛主席教导的好:有人群的地方就有左中右,对Python的态度也是一样,有人看好Python前途,就有人贬低Python的能力。下面我们就一起来分析网络上对Python看法探讨探讨:
(1)“Python性能差,和C++或某某语言没法比”
在这里,加法老师要加餐一个重要的知识点——摩尔定律:每隔18-24个月,也就是差不多2年,硬件性能就提升一倍。
老师的第一台电脑还是700MHZ的赛扬CPU,32M内存(1024M=1G),1G的硬盘的配置,现在送给收废品的估计都不愿意要了。现在计算机起步就得4核X1500MHX~4000MHZ的CPU、内存8G。如果对这些数字没有实感的话,可以打开你的智能手机看一看,运行内存应该是8G,这得相当于多少台老式计算机呀【微笑表情】。
计算机硬件水平的迅猛发展是Python流行的一个重要外部因素。Python相较于C语言、Java存在一个明显的不足,代码性能较低,执行效率不高。哎,不对呀,刚刚不是说Python的效率高吗,怎么又说效率不高了,有点懵~~
老师普及一下新手容易混淆的两个概念,开发效率和执行效率。
开发效率是指用某个编程语言开发代码的效率,可以理解为写代码所需要的时间,执行效率是写好的代码在计算机执行所需要的时间。总体来说这两个概念是跷跷板的两头,开发效率高就要降低执行效率,执行效率高就要降低开发效率。
早期硬件水平很差,对于程序员来说,如何编写一个执行效率高的语言就很重要,因为硬件很low啊,这个时候汇编语言和C语言就很适合这个时期的特点。当硬件速度突飞猛进的发展,执行效率就变的不重要了,程序员们渐渐看重了开发效率,因为开发的快,意味着更快的抢占市场,把技术变现,所以Python渐渐展露头角,冲上了编程语言排行榜前排位置。
计算机硬件性能提升,计算力增长,能存储海量的数据,这些还使得数据技术飞速发展,人工智能再一次兴起,在这样的契机下,Python凭借其极强的通用性,乘着数据时代的浪潮一跃而起。同时Python的各类数据分析、机器学习的第三方库也日趋完善,使得它成为当今数据技术应用领域的第一编程语言。
Python的运行效率是它的一个劣势,这是高级语言的通病。C语言是仅仅高于汇编语言的中级语言,接近硬件,速度快是天生的,但随着硬件速度越来越快,开发效率和语言的易用性已经慢慢超过了语言执行效率,想想看,即使有10倍的速度差别,C语言用0.01秒和Python的0.1秒对用户的体验会差别很大吗?
再进一步讲,绝大多数的应用对性能的要求并不苛刻,Python完全可以胜任。往后随着硬件的进一步发展,这一区别会更加不明显。
(2)“Python语法混乱”
Python有Python2和Python3两个版本,且这两个版本不兼容,一些人认为这会对Python的流行起到了一定的阻碍作用,但随着时间的流逝,Python2已经逐渐退出了历史舞台,这个问题也就慢慢消失了。
其实Python 是一种表述清晰的语言,它的语法被有意地设计得极为严格,例如强制缩进规则,从而使得任何不符合好的编程习惯的代码都不能通过编译。略微强制的语言规范,也使得Python 的代码一般很清晰,更易于团队合作,更适应于社会化编程。学习编程主要和首要就是学习语法,正是Python的语法简单易学,才使得Python更受欢迎。
本次课程中,老师从国内、国外两个角度介绍了Python当前的发展现状,结合Python的特点与当前的社会发展需要谈了谈Python的未来发展前景。如果你现在正在犹豫要不要入行Python,希望本次课程能帮助你做出正确的决策。
