为何python不好找工作?

2021-01-29 14:04:48 浏览数 (4120)

这是读者在微信上问我的一个问题,我当时给他的回复是 Python 挺火的,学 Python 就好。但当我在网上看某 Python 视频后,深感懊悔,觉得自己给出的建议是不负责任的。

意识到自己的问题之后,我就赶紧给读者发了一条信息道歉。另外,回想起之前还有一些读者问过我类似的问题,我的答案都不够严谨,因此打算特意写一篇文章来反省一下。

视频里面分享的内容还是非常严谨的,他认为,Python 应用的方向主要有 5 个方面:

  1. 人工智能和机器学习
  2. 数据分析
  3. 爬虫
  4. Web 开发
  5. 自动化测试

有理有据,所以我完全认同他的观点。

1、人工智能和机器学习

人工智能和机器学习是 Python 应用的重头戏,但这方面的岗位对学历的要求非常高,高到我自己都应聘不上,非常残酷。

在招聘网站上大致浏览了一下,我发现,这方面的岗位不算多,但工资挺给力的,在 15K- 30K。不过,招聘信息上直接说了,"我们的程序员小伙伴都毕业于 211/985 学校”,就这一条,我就会被拒之门外。学历硬伤啊,所以应聘"人工智能和机器学习”这方面的岗位很难,扎心,谁叫咱不是学霸呢。

考虑到我的读者已经蔓延到了初中生群体,我得郑重其事地说一句,"如果你喜欢学习,那就好好学,别在该学习的年纪浪费了青春。”哎呀,我去,说这句话真有点拿自己做反面教材的感觉。

我上小学的时候,一直是第一名,因为学校的招生范围就我们村那么大,一共也就三四十名学生。等到上了初中,一直保持前四,因为学校的招生范围就我们乡那么大,一共也就三四百名学生。等到上了高中,一直保持学校前十,但在整个县城是没有任何优势的。

真的是天外有天,人外有人,大部分人都是平凡的,普通的,所以这方面的岗位竞争真的很难。

2、数据分析

一般的小公司,比如说我就职过的公司,完全就没有数据分析的必要性,因为重点是在产品上,如何做好产品吸引来用户才是重点。如果说产品的用户数量少,数据就完全发挥不出价值。

那也就意味着,数据分析工程师的岗位会相对较少,毕竟有大数据的公司屈指可数。但说实话,这个岗位的薪资还是非常给力的,发展前景也好。如果学习能力强的话,硬指标过关的话,可以尝试。

工资高,通常的原因是供不应求,也就是说岗位多,但人才少。但实际情况是,数据分析的岗位少,符合要求的人才更少。在公司只是在重复操作 SQL、Excel 等基础工具的数据分析员很容易被自动化工具替代,又扎心了。

大专院校把 Python 作为主语言来教的话,我想肯定不是奔着这两个方向(人工智能、机器学习和数据分析)来的。第一个原因就是学历的问题,第二个原因就是教师不一定能教得会,更别说学生能不能学会了。

3、爬虫

关于爬虫,不得不提一下羊哥视频评论区的一句话,不管是不是段子,我觉得挺值得深思的。我有个同学搞爬虫被带走了,还好他不是主犯,就是登记了一下。

爬虫是近些年非常火热的一个话题,连我都买了一本爬虫入门的书,准备学一学,无奈 Java 方面可写的素材越来越多,这个计划一直未能成行。

什么是爬虫呢?可能有些不是程序员的读者不太清楚,我找百科问了问,它说,"爬虫,又称网页蜘蛛,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。”

在知识付费的大环境下,这种爬虫就有点麻烦。拿我来说吧,我希望自己的文章只发表在我希望发表的平台下,假如其他平台在未经我的授权下,就把我的文章爬走,放在自家平台上,我就觉得知识产权受到了破坏。

文章还好,是我愿意公开的,如果涉及到一些隐私信息被爬取,那就更糟糕了,是吧?

现在很多平台都在做反爬,并且做得越来越好,这就在一定程度上有点"魔高一尺道高一丈”的意味,所以,爬虫方面的工程师还是蛮不容易的。

4、Web 开发

用 Python 做 Web 开发的大型互联网公司我听说的不多,羊哥说豆瓣以前用的是 Python,现在也不用了。

不管怎么说,如果拿 Java 来和 Python 相比的话,显然在 Web 开发方面的优势巨大。不管是从技术框架上,还是性能上,以及应用的规模上,同等条件下,Java 工程师显然更吃香啊。

很多培训机构夸赞 Python 在 Web 开发方面有着巨大的优势,开发效率高,速度快。嗯,其实我觉得应该是因为 Python 的语法简单,容易教——这恐怕是主要原因啊,我这样说会不会被社会毒打?

5、自动化测试

说句实在话,Python 的自动化测试还是应用非常广泛的,考虑到框架的脚本质量,测试用例的简单性,以及运行模块可能存在的技术弱点,我给大家推荐五款 Python 的测试框架。

1)Robot Framework,主要用于测试驱动类型的开发与验收中。

2)Pytest,特点是开源、易学。

3)PyUnit,针对单元测试的 Python 类自动化测试框架,收到 Junit 的启发。

4)Behave,允许团队执行 BDD(行为驱动开发,behavior-driven development) 测试。

5)Lettuce,专注于具有行为驱动开发特征的普通任务。

6、总结 

以上观点都是我个人主观给出的,不一定正确哈,仅做参考。

如果说,有些读者的学历非常牛逼,然后学习能力也非常强,那么选择人工智能、机器学习、数据分析,我觉得前途是光明的,既能赚钱,待遇又好,还不可替代,不学 Python 绝对亏。

如果说,有些读者学历一般,做程序员仅仅是为了糊口饭吃,那么我觉得可以把 Python 作为第二语言来学,不要当做主语言。搞点范围许可内的爬虫,自动化测试,我就觉得挺好的。况且 Python 这门语言本身是非常优秀的,不然怎么搞人工智能,海量数据分析,对吧?

在此推荐几个我认为很不错的Python教程供大家学习: