「人生苦短,快用Python」,这话曾是不少选择投入Python麾下的「码农」们的一句调侃和自我标榜。
与敏捷开发、大数据甚至人工智能风口捆绑在一起的Python,似乎从来不缺热度。2019年1月TIOBE排行榜显示,由于全球流行度在过去一年中涨幅最高(3.62%),Python一举获得了2018年度编程语言的称号。
事实上,过去几年间Python一直都被寄予厚望,有人认为它最有望超越Java的地位,成为主流编程语言霸主。
(截至2019年3月份,TIOBE的Python编程社区指数走势图。目前Python的评分增速迅猛,达到历史新高峰。)
然而,与国际技术社区上一片「形势大好」对比鲜明的是,国内技术圈却一直存在对Python的「力挺」和「唱衰」两派阵营,针锋相对;同时Python在国内互联网公司的普及度也仍然偏「小众」。
在这种自我矛盾的环境下,那些曾因为「人生苦短」而选择Python的程序员,如今的薪资水平和职业发展又如何?今天我们就用100offer平台的独家数据来寻找答案。
注:本文数据除另行说明外,均取自 2017年1月1日至 2018年12月31日,经筛选在 100offer 进行匿名展示的中国大陆共 410 位 Python方向求职者和 2196 份面试邀请(下文简称面邀)。100offer 致力于为 2 年以上经验的中高端互联人,提供北上广深杭、新加坡等地的工作机会。求职者收到的面邀薪资普遍高于市场平均水平。
Python人才市场整体乐观,
但薪资仍不及主流技术岗位
从数据表现来看,近年Python工程师在人才市场上整体趋势是乐观的。
2016年到2018年期间,每年平均面邀薪资都是稳步上升,人均面邀数从2016年的6份,逐步小幅缩减到了2017年的5.6份和2018年的4.2份。
横向与其他技术岗位相比,Python这样的薪资涨幅也算得上是表现突出。下图显示,Python在2018年的平均面邀薪资首度突破了40万大关,同比涨幅在所有技术岗位中排名第三,仅次于C/C++和安卓。
不过从图中也可看出,虽然各种培训班常常拿「Python是高薪工作的敲门砖」、「掌握了Python,就能在AI时代快人一步」等卖点招揽学员,但实际上,Python的平均薪资水平目前仍然不如Java、安卓、C/C++等主流技术岗位,甚至也小幅落后于.net、iOS和Go。
「Python是沾了深度学习风口的光,之前被吹得有点神话了。目前国内互联网对Python的应用普及度还是远不如Java的,」一位100offer的客户经理透露道。「从企业客户近期在我们平台的招聘需求量来看,市场对Java人才的需求也比Python强劲。」
的确,下面两张图也证实了,不论是求职人数还是企业招聘数量,尽管Python的市场占比近年已有所上升,却仍然难以撼动Java、前端、安卓这三大经典开发岗位的地位。
各种资历背景的Python求职者,
谁配得上更高的薪水?
Python在中国曾经历过三次风潮。第一次是 2007 年的搜索引擎浪潮,Google 进入中国市场,这家明星公司里对Python高普及率也吸引了人们的关注;第二次是2009 年到 2012 年的中国互联网创业潮,许多新兴公司急于快速搭建网络架构,开发环境友好的 Python成为许多工程师首选。第三次则是从2015 年初至今,深度学习概念带火的技术潮流。
在这三次风潮中,中国程序员展现出了对捕捉技术风向的饥渴和超强的学习能力。Python与近年走俏的GoLang以及众多前端框架等技术一样,尽管都以海外为诞生和发祥地,但总能被国内的技术工作者在短时期内掌握,并利用庞大的互联网市场人口进行检测。
那么,在第三轮技术风潮方兴未艾的今天,哪类Python人才更经得起市场的检验?
1)工作年限:Python人才供给偏年轻化,资深程序员仍然稀缺
在求职者的工作年限上,近年的人员构成变化很小,python工程师仍是年轻人的天下:近半数工程师分布在3-5年经验区间,6年以上的资深人员占比不到三成。
同时,不同工作经验的求职者获得的面邀机会和薪资区别也较为明显。一方面,姜还是老的辣,越资深的员工的面邀年薪越高;另一方面,往年的面邀机会主要向初级人员倾斜,而到了2018年,6-8年的资深Python人员在市场上更受公司欢迎,收到的面邀最多。
因此整体上,市场稀缺的资深Python人才更受追捧。
2)学历:优中选优,低学历人群的市场空间被挤压
Python工程师求职者的整体学历水平,近年有所提升。2018年在100offer平台上进行匿名简历展示的Python程序员中,硕士及以上学历的占比上升了5个百分点,专科生原本就不大的「生存空间」,还在被不断挤压。
高学历给Python人才带来的面邀机会和薪资回报,也是显而易见的。
2017年不同学历人群的薪资差异并不明显,即便是专科生也能获得人均3份面邀;然而,到了2018年,专科生仅能获得人均1份面邀,硕博候选人的薪资优势更加凸显。
3)技术背景:复合背景的Python程序员更吃香
有趣的是,从求职者的以往工作背景来看,「根正苗红」的Python程序员并不算多,大多数人拥有复合背景。
简历中的最近一份工作经历中有Python开发经验的人仅占26%,加上算法和数据工程师这两个与Python密切相关的岗位,一共也才34%。
相比之下,从事后端、移动端、前端等非Python语言开发岗的程序员最多,占比高达36%; 甚至有20%的候选人来自跨度相对更大的运维、测试、安全和非技术岗。
Python求职者之所以有这样「兼容并包」的技术背景,客观原因之一就是它更简明易学、可读性好,易维护,学习成本和时间相对较短。
上图的薪资和面邀数据也表明,资深专家型人才、管理型人才,或者是复合型背景的开发人员从事Python,比技术单一型的Python工程师更「吃香」。
哪些类型企业能给Python工程师开高薪?
1)Python高薪招聘,从「小而美」向大厂集中
早年时,发放Python招聘需求的企业较为均匀地分布在各个轮次的企业中。由于极度的敏捷高效和相对的成熟稳定,Python 备受各类中小型互联网公司青睐。
进入2018年,一方面互联网寒潮对创业公司的生存和招聘需求造成了显著影响,另一方面,一些大厂的项目组也纷纷开始应用Python,面邀数量明显向上市公司集中。
在面邀薪资上,2018年也呈现出了大厂的「集聚效应」,A~C轮创业公司的平均年薪,甚至能被上市公司拉开将近10万的差距。而2017年,C轮、D轮和上市公司之间的Python薪资水平还几乎没有区别。
目前国内互联网公司对Python的应用,早已不再局限在中小企业和创业团队中,而是向国际大中型互联网公司看齐。大量应用Python的典型包括Youtube、Dropbox、Quora、Google、Facebook,以及百度、腾讯、字节跳动、豆瓣、知乎、汽车之家、美团等。不过,国内大厂目前对Python的需求主要集中在策略、模型和算法类岗位。
2) 北京和杭州更适合Python工程师跳槽
在100offer的Python面邀中,北京公司以压倒性的数量优势超过了其它城市,几乎接近杭州、上海、深圳和广州四座互联网一线城市的Python面邀数总和。杭州薪资水平最高,同时面邀数量占比高达34%,仅次于北京。两地的Python程序员能获得相对更优质的机会。
企业眼里的优秀Python工程师,都有哪些特质?
100offer上的Python岗位,以后端开发和架构为主,以算法和数据挖掘为辅,并有少量前端、全栈开发岗,以及运维支持。当然,Python还可延伸应用于下图所示的众多细分领域,我们在此仅就平台上的常见招聘岗位做重点梳理。
(Python在不同应用场景中的知识结构。图片来自网络)
通过大量的企业面邀JD,我们将各个企业对优秀Python人才的期望,分类总结出了以下共性。
1、 Python后端开发
编程语言:具备2年以上开发经验,至少熟悉一种开发语言:Python、Java、PHP、C/C++
服务框架:熟悉常见的Python框架,熟练掌握Django、Tornado、Flask等其中的一种
数据库:熟悉常见的数据库,至少熟练掌握Mysql,Mongodb,Redis其中一种;熟悉大规模数据存储及分析系统优先
熟悉Unix/Linux操作系统,有良好的编码规范
对web后端技术架构有全面理解,熟悉 TensorFlow 等机器学习框架,是加分项
2、 算法、大数据、爬虫类
编码能力强,内功扎实;熟悉linux开发环境,熟悉Python,至少精通 C/C++ 或 Java 中的一种编程语言。
熟悉爬虫机制,有分布式爬虫开发经验者优先 ,熟悉Scrapy / Redis / MongoDB / MySQL 者优先
了解多种网络通信协议,熟悉 Thrift RPC 或 gRPC 加分
熟悉机器学习的常用算法,有足够强的业务理解力,数据思维好
数学专业的硕士或博士,有一定数学功底,加分
有图像识别、深度学习、机器学习、自然语言处理等相关经验,大大加分
3、 Python前端开发/全栈开发
熟悉Python、Java、PHP、C#、Shell等语言中的至少2门,熟悉Linux操作系统
与大部分前端的招聘需求类似:HTML5 / CSS3 / JavaScript 基础扎实,精通 ES6 / jQuerydejs 等,熟悉前端框架(Vue/ Angular /React)和原理
熟练掌握 webpack /gulp /rollup 等构建工具,有丰富的前端工程化实践经验
掌握Tornado/ OpenERP / Django / Flask者加分
熟悉 MySQL、PostgreSQL 等数据库,能编写调试 SQL 语句、存储过程,索引、性能优化者,是重要加分项
其实各应用场景需要的知识结构有不少重叠之处,需要每位 Python 工程师根据自己的职业规划,有意识地构建知识体系和技能树。
100offer说:
得益于AI和机器学习的大风口和 Python 在算法和大数据方面的优势,加上入门门槛相对较低,使其一度成为编程小白们眼里的香饽饽。然而需要认清的一个现实是,Python 的热潮持续了几年,至今仍然在最主流的语言之外徘徊。
结合全文分析,100offer对 Python 人才市场的未来持谨慎乐观的态度。
一方面,Python 在人工智能、数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域的应用越来越普遍。同时,深度学习领域仍有很大的发展空间,Python 社区的活跃度和普及率也是其它新型AI语言难以超越的。因此,只要AI的大趋势在,Python 人才在互联网行业就总有一席之地。
另一方面,大家对 Python 薪资不要有不切实际的幻想。随着人才供给增加,互联网企业的定薪也在恢复正常化,Python 开发薪资仍然与主流开发岗位有差距,并没有出现人们想象中的「一飞冲天」。此外,Python 语言饱受诟病的诸多缺陷,也给了Julia、Swift for TensorFlow等新语言可乘之机。
无论 Python 的未来是进是退,有一句话很在理:顺境时拼命往上爬,逆境时提升自己。对于 Python 程序员来说,努力积累自身的技术实力,远比陷入对未知趋势的担心和无畏猜测来得更实际。
在此,我们建议想成为优秀 Python 开发者的你,要避免沦为「唯 Python 论」者和技术单一型人才。在后端技术架构、数据库结构设计等方面积累扎实基础,坚持多逛技术社区、做笔记和持续学习,多拓展技术圈人脉,与更多同行互相交流,开拓技术视野,都是值得践行的进阶方法。