冯汉森
Python,一门神奇的编程语言浪潮般崛起了。今天,Python的教学广告处处皆有,是开机新闻里的常客,网页广告的熟人,哪怕朋友圈也免不了它们的身影。
Python热起来,还热出了圈近20年来,C、C++和Java一直位列程序员最常用编程语言前3位,且远远领先于其他语言。现在,Python在各种编程语言排行榜上地位蹿升,挤掉了源远流长的C、C++,挤掉了叱咤风云的Java,让众多程序员纷纷投怀送抱。
Python是当今许多大学里教授的编程第一语言,在统计编程领域排名第一,在人工智能编程领域排名第一,在脚本编写方面排名第一,在系统测试方面排名第一……
我是从小学编程的,也参加过一些算法竞赛,虽然大学没再继续,但是对这个变迁还是稍有感触的。早些时候比赛中大家主要用C和C++,后来也可以使用Java,如今一些新兴的测评网站使用Python渐渐多起来(比如求职者刷题常用的力扣)。算法竞赛是有解题时间限制的,选手编写程序必须要在一定时间内算出结果,超过时限了会根据规则扣除相应的分数或直接零分。一般地讲,在时限长度上,C/C++ < Java < Python,而在编写难度上Python < Java < C/C++。算力就是财力,在早些年普遍算力有限,需要用C/C++来压榨有限算力的最大价值。而如今算力膨胀,编写难度越小、开发周期越短的Python自然也就更受欢迎了。
特别有意思的是,Python“出圈”了——出了程序员的圈子,走向各个人群:上至文职员工,下至小学儿童,均左手爬虫统计,右手人工智能。一门编程语言为何能如此?这就要简单探讨一下编程的本质了。
编程是什么?编程就是编定程序,让计算机代为解决某个问题。为了使计算机能够理解人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉它。
简单来说,编程的本质就是人给计算机下达明确命令的过程,只是计算机这个交流对象十分呆板,它们只“认死理”,交流需要逻辑。一开始只有数学高材生才能胜任这份工作,后来面向过程的编程语言大大地简化了这一过程,熟练的工程师就能编写程序,再到如今,面向对象编程的普及使得普罗大众也能踏入编程的门槛。
一年前我家买了一台小米智能音箱。老爸兴致勃勃地说:“小爱说段相声!”
小爱同学应了声:“哎”,灯亮着等待问题。
老爸等了会儿没得到回应,气道:“你真笨!”
小爱这才开始应答:“骂人是不对的!说好的以礼相待呢?”
类似的事情还发生过很多次,就是因为父母把“人工智能音箱”当成了人在沟通,而实际应视作程序在编程。程序的有效执行需要具有一定的结构和逻辑的命令,而自然语言其实比较“模糊”和“混乱”,人可以理解,但程序很容易解析错。
从形式上来看,编程也不过是一种“不说人话”的交流方式而已,或者编程语言也就可以视为一种外语,而Python可说是核心词汇和语法最少的那种,这正是Python爆火的基础。
为什么“出圈”的是Python?
Python的核心价值要素有两点:上手简单、可选库大。
“上手简单”是指其编程语法上手十分简单,没有太多需要背的语法规则,或者说你不需要背那些规则也能上手,因为实在不行上网现场查也来得及。可以说会英语、看懂模块的用途就差不多能开始用Python编程了。
“可选库大”是指Python社群开源资源多且全。老师在教我們时说:“Python易学难精,但大多数人也不需要精通,很多东西别人都已经写好了,你调用就是了。”Python的社区有很多开源的“包”供你下载,这些“包”囊括了各行各业的各种功能,可以用它们拼装成一个万能的工厂。
“上手简单”让更多的新鲜血液能够快速加入Python的开源社区,“可选库大”让众多初学者不再需要学习各领域的独立的编程语言,上述两个要素又孕育了一个庞大的开源分享系统,使得Python成为了最能满足时代无限需求的语言。
大数据、爬虫、深度学习等时代新技术纷纷入驻Python,极大地降低了人们入门顶尖技术的门槛。以人工智能技术为例,如果你只是需要一个你个人能用的人脸识别、目标识别或人脸生成的程序,你完全可以搜索那些大名鼎鼎的模型,进入它们项目的GitHub(一个面向开源及私有软件项目的托管平台),使用研究者们为你准备好的指令来按部就班地下载并运行对应的Python程序,再加载你自己的数据便可。这个做法几乎已经成为了人工智能领域的行业规范,也是人工智能领域能够日新月异的基础。
再比如,Python的爬虫教程和统计教程可以让你快速而有效地捕捉并统计各平台的某些关键字或关键句,让你几个小时完成原本好几天的工作量。我大二时曾经给一位大四的师兄打下手,他当时在做的就是在微博上找到某关键词的所有评论来做分析预测。师兄就是用Python爬虫程序去自动抓取web页面上自己想要的数据。这些数据要是人工获取工作量巨大。我负责后期给其中一部分评论标注“积极的”或是 “消极的”,足足1小时标注不到200个“正面/负面”情绪标签,我整个人都快疯了。简单学,简单用
在我看来,“Python热”其实是信息时代下社会日益增长的生产效率需求与工作者生产能力不平衡不充分的矛盾。信息时代人们获取信息很方便,但信息爆炸又导致人们没有时间去处理所有信息。Excel等传统工具能够帮助你提高信息处理能力,而Python编程能再帮你提升一截。“Python热”应该是一种时代进展的必然,就算不是Python,也会有其他编程语言顶替它的作用。
想要上手Python是一件非常简单的事情,免费教程数不胜数。我建议大家简单学一下。
如今有许多人在网上拿开源免费的东西来卖钱,请大家务必多挖掘多思考,自己动手丰衣足食,不要偷懒被收智商税。一个简单实用的思路是,你需要什么就学什么。
学Python最好以应用为目的,没有应用案例是很难学好编程的。你可以根据自己的喜好随时创造需求,哪怕只是为了看小说不带广告,为自己的老文件们集体改个名字。
在学校,一个典型的案例是收集同学的信息。如果用Excel样表整合,需要开关Excel、复制粘贴几十次,但用Python自动读取表格再合并追加到一个文件里就很快。当然你也可以开个在线编辑文档让同学自己填,不过在线编辑是有人数上限的,超限的话软件会要求收费,而且填写的隐私信息完全暴露在所有人眼前。
在找工作时,可以学着用爬虫搜索信息后建立信息数据库,从中筛选符合心意的岗位。考研时要选导师,那么多老师你又不认识找谁联系?这个时候你可以通过爬虫把所有老师的公开信息都找出来,再筛选出想报的导师,联系就是了。
责任编辑:朴添勤