今天,你学 Python了吗?
当代人的知识焦虑中,一定少不了这门叫 Python 的语言。朋友圈隔几天就出现的「Python 训练营」广告和评论区热闹的互动,总给人一种全民学 Python 的错觉。
是错觉吗?好像也不是,毕竟连地产大亨潘石屹都把学习 Python 当作自己的「人生礼物」,浙江都已经把 Python 纳入信息技术高考科目了,这股风潮似乎有愈演愈烈之势。
写这篇文章不是想给这份焦虑煽风点火,而是真诚地劝退。
Python 是个啥?
在搞清楚要不要学 Python 之前,有必要了解它的历史。
虽然 Python 「出圈」是这两年的事,但它问世已有近 30 年历史。稍微接触过 Python 的人,大多都听说过这样一句话:人生苦短,我用 Python。(著名程序员 Bruce Eckel 更早的时候说过「Life is short You need Python」)这句名言就出自 Python 之父吉多·范罗苏姆(Guido van Rossum),看到这个「范」姓想必很多人都能猜出他的国籍了——荷兰。
▲范罗苏姆穿着写有「人生苦短,我用Python」的 T 恤 图片来自网络
范罗苏姆开发 Python 的理由很任性,1989 年圣诞节期间,为了打发假期时间,他决定创立一门新的编程语言,这门语言应该既像 ABC 一样具备良好可读性和易用性,又易于扩展和编译。
1991 年,由范罗苏姆独立开发的第一版 Python 编译器发布,后续的版本则由他和同事合作,但他仍是主要开发者和决策者,2018 年 7 月 12 日退休后,范罗苏姆仍是 Python 社区的「终身仁慈独裁者」(Benevolent Dictator For Life)。
至于为什么叫 Python,是因为当时范罗苏姆正好在看 BBC 的喜剧《Monty Python’s Flying Circus》,他觉得要给自己的产品起一个简短、独特且略带神秘感的名字,于是就用了带有「蟒蛇」之意的 Python。
那么 Python 到底好在哪里?如果你去问掌握 Python 的人,对方可以给你列出无数条,太技术性的东西这里也不多说了,但是我们前文提到 Python 简单易懂的特点,还是可以从下图这张与 Java 的对比图中略窥一二,即使完全没有编程基础,相信你也能看懂这段代码。
▲ 图片来自网络
正因为 Python 易学好懂,所以非常适合没有学过编程的科研人员处理实验数据甚至开发程序,他们并不关心计算机要怎么实现这些运算,也不想把精力花在内存管理、并行处理等问题上,只要能又快又好地解决问题即可,而 Python 恰好可以满足需求,用最简单的方式调用各种函数、粘结不同的语言,所以很多人把 Python 称为「胶水语言」。
而在学术界的广泛使用,也造就了人工智能热潮涌现后 Python 的流行,因此人工智能和 Python 应该算互为因果或互相成就的关系。
不过这里有一个容易混淆的地方,很多培训课程都会把 Python 和人工智能划等号,但其实不然,人工智能是一个广泛的概念,Python 涉及到的只是人工智能中的深度学习,比如 Google 的 Tensorflow 和百度的飞浆都是支持 Python 的深度学习框架,下次再看到打着 AI 旗号教你 30 天 Python 入门的广告,就可以直接拉黑了。
人生苦短,我学 Python
正如前文所说,Python 的学习门槛较低,学习曲线非常平滑,所以流行起来后,它的使用也不再局限于程序员和科研人员,比如很多运营岗位的招聘需求上都会写上「熟悉 Python 者优先」,全民学 Python 可能还是夸张了点,但你身边总能找到一两个学 Python 学到头秃或掌握了新技能成就满满的人。
他们当中,有的目标非常明确。
「为了爬虫啊。」某知名社交的运营小范学 Python 的目标很实际,「进公司以后才发现有必要学一下 Python,不然老得麻烦别人写爬虫程序。」
▲ 图片来自:Unsplash
会 C语言和 Java 的程序员阿峰,为了做数据挖掘,最近也自学了 Python。相比于自嘲已经把高数还给大学老师的小范,学习 Python 用阿峰的话来说,「只是语法的问题」。他可以熟练地列举 Python 的各种好处:「资源太丰富了,你想学人工智能,框架和库一堆一堆,多到你不知道用哪个好。」
「应该这么说,大家都用 Python,可以说是生态环境决定了吧。底层和类库,你当然也可以用其他语言,不过这一大堆东西,你自己再撸一遍,那不是重复造轮子吗?」阿峰总结道。
还有一些人,他们学 Python 并不指望用它解决实际的问题。
我司的邱姓编辑学 Python 的初衷只是想对人工智能有更好的理解:「跟踪人工智能的发展,只了解大概原理是不够的,学了 Python,起码我能对那些研究成果到底达到什么水平有具体的认知。」
抱有类似想法的还有在一家网络公司当产品经理的小韩:「我在一个技术为导向的行业里做产品,学 Python 是必然的,更多的时候不一定是要自己亲自上阵写代码,而是要理解技术思维.
「你不能提一个完全不符合技术逻辑的需求,会被嘲笑的。自己写过代码,就能知道技术是怎么理解和来完成一个需求的过程,你在写产品文档的时候更能站在技术角度来告诉他们:我要做什么。这样他们看和开发的时候效率也会更高,反复理解和沟通也会减少。还有就是要清楚的明白技术有没有在骗你,(你的需求)到底能不能做。」条理清晰地说完学 Python 的理由后,小韩又补充了一句:「另外就是我觉得自己写代码,真的挺酷的。」
然而,有 1000 个学 Python 的理由,就有 1001 个放弃的理由,从入门到放弃,可能只要一节课。
一个「难」字,就能劝退无数理科小白。虽说 Python 在编程语言中已经是难度相对低的,但也并不是毫无门槛,「从语法规则上说,它非常简单,至少比日常语言要简单得多;难处在于它要处理的对象、对现实事物的抽象,是数学式的思考方式。」接触过 BASIC 和 HTML 的邱编辑如是说。
也就是说,如果你连高中的函数都没学好,恐怕就会陷入「道理我都懂,可我还是不知道怎么写」的绝望中。
「我就上了个 Django 框架课,搞了个服务器,」自称「数学绝缘体」的 Sasa 跟我吐槽 Python 根本就没有人们说的那么简单,「它真的劝退我,实在搞不懂。然后我去看了 B 站,我真的不明白,为什么有用 Python 排版 PPT 的教程?我用 Office 不好吗?到底为什么要学啊?」这连环三问,竟问得我无话可说。
就算你的数学不错,也很难保证每天在工作之余仍有精力和毅力与枯燥的教程周旋。前面跟我说着觉得写代码很酷的小韩,跟我说他暂时放弃了,「看到一半,最近太忙,没时间了。」
希望我们已经看了入门教材 1/5 的邱编辑能够坚持到底吧。
总结
我们采访的几位学习者,或多或少所在行业都与互联网或科技相关,那么如果生活中完全没有数据分析、爬虫等需求,要不要为了看起虚无飘渺的「编辑思维」学习 Python 呢?
▲ 图片来自:Adafruit
有人说现在的 Python 很像十几年前的英语,如雨后春笋般冒出的培训班、「未来人才必须掌握的基本技能」的论调、从娃娃抓起的焦虑,都和当年如出一辙,就连卖点都一模一样:考试加分,升职加薪。
但这只是表象,如果从实际意义或未来前景来看,我觉得应该把 Python 看作当年的电脑操作技能,也就是会不会用电脑。如今用电脑处理文档、剪辑视频、上网、看视频等已是我们习以为常的操作,你不需要懂得计算机的运作原理,也能将自己掌握的知识借助电脑得到应用,未来 Python 或许扮演的是类似的角色,成为一种基础设施。
总之不必过于神化 Python,多一门技能当然没有坏处,不会,也不见得就被时代抛弃,但你要指望学了 Python 就能像培训班宣传的那样改变人生的话,那就纯粹是想多了。
题图来自:TechRepublic