二哥,你好,我是一名大专生,学校把 Python 做为主语言教给我们,但是我也去了解过,其实 Python 门槛挺高的,所以我在自学 Java,但是我现在并不清楚到底要不要全心的去学 Java,学校里的课程也越来越繁重,而学 Java 又会要投入很多精力,我很纠结疑惑。希望二哥可以给一点建议。二哥看到的话还望百忙之中抽一点时间。感谢!
这是读者“前进一点”在微信上问我的一个问题,我当时给他的回复是“Python 挺火的,学 Python 就好。”但当我在 B 站上看了羊哥的一期视频后,深感懊悔,觉得自己给出的建议是不负责任的。
意识到自己的问题之后,我就赶紧给读者“前进一点”发了一条信息道歉。另外,回想起之前还有一些读者问过我类似的问题,我的答案都不够严谨,因此打算特意写一篇文章来反省一下。
羊哥视频里面分享的内容还是非常严谨的,他认为,Python 应用的方向主要有 5 个方面:
-
人工智能和机器学习
-
数据分析
-
爬虫
-
Web 开发
-
自动化测试
有理有据,所以我完全认同羊哥的观点。
01、人工智能和机器学习
人工智能和机器学习是 Python 应用的重头戏,但这方面的岗位对学历的要求非常高,高到我自己都应聘不上,非常残酷。
在招聘网站上大致浏览了一下,我发现,这方面的岗位不算多,但工资挺给力的,在 15K- 30K。不过,招聘信息上直接说了,“我们的程序员小伙伴都毕业于 211/985 学校”,就这一条,我就会被拒之门外。学历硬伤啊,所以应聘“人工智能和机器学习”这方面的岗位很难,扎心,谁叫咱不是学霸呢。
考虑到我的读者已经蔓延到了初中生群体,我得郑重其事地说一句,“ 如果你喜欢学习,那就好好学,别在该学习的年纪浪费了青春 。”哎呀,我去,说这句话真有点拿自己做反面教材的感觉。
我上小学的时候,一直是第一名,因为学校的招生范围就我们村那么大,一共也就三四十名学生。等到上了初中,一直保持前四,因为学校的招生范围就我们乡那么大,一共也就三四百名学生。等到上了高中,一直保持学校前十,但在整个县城是没有任何优势的。
真的是天外有天,人外有人,大部分人都是平凡的,普通的,所以这方面的岗位竞争真的很难。
02、数据分析
一般的小公司,比如说我就职过的公司,完全就没有数据分析的必要性,因为重点是在产品上,如何做好产品吸引来用户才是重点。如果说产品的用户数量少,数据就完全发挥不出价值。
那也就意味着,数据分析工程师的岗位会相对较少,毕竟有大数据的公司屈指可数。但说实话,这个岗位的薪资还是非常给力的,发展前景也好。如果学习能力强的话,硬指标过关的话,可以尝试。
工资高,通常的原因是供不应求,也就是说岗位多,但人才少。但实际情况是,数据分析的岗位少,符合要求的人才更少。在公司只是在重复操作 SQL、Excel 等基础工具的数据分析员很容易被自动化工具替代,又扎心了。
大专院校把 Python 作为主语言来教的话,我想肯定不是奔着这两个方向(人工智能、机器学习和数据分析)来的。第一个原因就是学历的问题,第二个原因就是教师不一定能教得会,更别说学生能不能学会了。
03、爬虫
关于爬虫,不得不提一下羊哥视频评论区的一句话,不管是不是段子,我觉得挺值得深思的。
我有个同学搞爬虫被带走了,还好他不是主犯,就是登记了一下。
爬虫是近些年非常火热的一个话题,连我都买了一本爬虫入门的书,准备学一学,无奈 Java 方面可写的素材越来越多,这个计划一直未能成行。
什么是爬虫呢?可能有些不是程序员的读者不太清楚,我找百科问了问,它说,“爬虫,又称网页蜘蛛,是一种按照一定规则,自动抓取互联网信息的程序或者脚本。”
在知识付费的大环境下,这种爬虫就有点麻烦。拿我来说吧,我希望自己的文章只发表在我希望发表的平台下,假如其他平台在未经我的授权下,就把我的文章爬走,放在自家平台上,我就觉得知识产权受到了破坏。
文章还好,是我愿意公开的,如果涉及到一些隐私信息被爬取,那就更糟糕了,是吧?
现在很多平台都在做反爬,并且做得越来越好,这就在一定程度上有点“魔高一尺道高一丈”的意味,所以,爬虫方面的工程师还是蛮不容易的。
04、Web 开发
用 Python 做 Web 开发的大型互联网公司我听说的不多,羊哥说豆瓣以前用的是 Python,现在也不用了。
不管怎么说,如果拿 Java 来和 Python 相比的话,显然在 Web 开发方面的优势巨大。不管是从技术框架上,还是性能上,以及应用的规模上,同等条件下,Java 工程师显然更吃香啊。
很多培训机构夸赞 Python 在 Web 开发方面有着巨大的优势,开发效率高,速度快。嗯,其实我觉得应该是因为 Python 的语法简单,容易教——这恐怕是主要原因啊,我这样说会不会被社会毒打?
这样吧,我给小伙伴推荐一个网址:
https://developer.mozilla.org/zh-CN/docs/learn/Server-side/Django
学习 Django 的,一个广受欢迎且功能完整的服务器端网站框架,Python 写的,并且是 MDN 出品,最重要的是,免费的。
05、自动化测试
说句实在话,Python 的自动化测试还是应用非常广泛的,考虑到框架的脚本质量,测试用例的简单性,以及运行模块可能存在的技术弱点,我给大家推荐五款 Python 的测试框架。
1)Robot Framework,主要用于测试驱动类型的开发与验收中。
2)Pytest,特点是开源、易学。
3)PyUnit,针对单元测试的 Python 类自动化测试框架,收到 Junit 的启发。
4)Behave,允许团队执行 BDD(行为驱动开发,behavior-driven development) 测试。
5)Lettuce,专注于具有行为驱动开发特征的普通任务。
06、最后
以上观点都是我个人主观给出的,不一定正确哈,仅做参考。
如果说,有些读者的学历非常牛逼,然后学习能力也非常强,那么选择人工智能、机器学习、数据分析,我觉得前途是光明的,既能赚钱,待遇又好,还不可替代,不学 Python 绝对亏。
如果说,有些读者学历一般,做程序员仅仅是为了糊口饭吃,那么我觉得可以把 Python 作为第二语言来学,不要当做主语言。搞点范围许可内的爬虫,自动化测试,我就觉得挺好的。况且 Python 这门语言本身是非常优秀的,不然怎么搞人工智能,海量数据分析,对吧?