2022年 12月 19日

什么程度叫 “精通python” ?

打开boss直聘、拉勾、51Job、猎聘等招聘网站,看看python岗位招聘,要求是: 精通python。
那么,什么才算精通python呢?

  • 精通是个伪命题,怎样才算精通Python,这是一个非常有趣的问题。很少有人会说自己精通Python,因为,这年头敢说精通的人都会被人摁在地上摩擦。其次,我们真的不应该纠结于编程语言,而应该专注于领域知识。比如,你可以说你精通数据库,精通分布式,精通机器学习,那都算你厉害。但是,你说你精通Python,这一点都不酷,在业界的认可度也不高。

  • 你们所说的什么要怎样数据分析、爬虫、Web 等,在我看来那不是精通 Python,而是精通某一领域,抛开 Python换用另一门语言也可,在我看来,精通 Python 语言大约需要如下这些步骤:

    level 1:了解基本语法
    这是最容易的一级,掌握了 Python 的基本语法,可以通过 Python 代码实现常用的需求,不管代码质量怎么样。
    level 2:熟练使用常用的库
    熟悉常用 standard library 的使用,包括但不限于 copy / json / itertools / collections / hashlib / os / sys 等。
    熟悉常用的第三方库,这就根据每个人不同的用法而有所不同了,但是一定要掌握你所常用的那个领域里的第三方库。
    level 3:Pythonic
    这一级别比上一级别稍难,但是还是可以轻松达到。所谓 Pythonic,就是相比其它语言,Python 可以通过更加优雅的实现方式(不管是语法糖还是什么),比如(包括但不限于) with、for-else、try-else、yield 等。
    另外你还需要掌握这些所谓魔法的实现原理,了解 Python 在语法层面的一些协议,可以自己实现语法糖。如 with 的实现方式(上下文管理器)等。达到这一级,你的代码可以看起来很漂亮了。
    level 4:高级玩法
    掌握 Python 的内存机制、GIL 限制等,知道如何改变 Python 的行为,可以轻松写出高效的优质的 Python 代码,能够轻松分辨不同 Python 代码的效率并知道如何优化。
    level 5:看透本质
    阅读 Python 的 C 实现,掌握 Python 中各种对象的本质,掌握是如何通过 C 实现面向对象的行为,对于常见的数据结构,掌握其实现细节。到这一步,需要将 Python 源码学习至少一遍,并对关键部分有较深层次的理解。
    level 6:手到拈来,一切皆空

我个人是很反对对一个语言使用“精通”这个词的。因为广大码农嘴里的“精通xx语言”实际上毫无意义。代表不了任何东西。代码是一个工具,就像一只笔一样。你精通“使用”这只笔是毫无卵用的,而广大码农嘴里“精通xx语言”其实就是精通”使用“xx语言而已。精通使用一只笔是没有太大意义的(但是前提必须要基本会用哈),有意义的是你精通拿这只笔来做什么事,是拿来写书法、写文章或者是画画。然而写书法好的人换一只不那么熟的笔就不会写字了吗?写文章的换只笔就写不出好文章了?画画的换只笔就画不出画了?

所谓精通,第一个是这门语言实现上的抽象,第二个是这门语言适合应用的领域。语言本身没有太大的学习价值,或者不能说是价值低,应该说是门槛低吧。所谓门槛,无非就是经验与智力。对一门语言了解到可以胜任工作就可以了,没有必要过分纠结于语言这种东西

所以招聘网站上贴出的精通,可以用下面一个比方:
某个游泳池要开业,所以需要一些救生员。于是他就贴出了求职公告。诚聘救生员,需精通游泳,待遇从优,非诚勿扰。然后有人就在X乎上问了。大神们,什么叫做精通游泳?嘛,我觉得吧,你起码得能在平静水面游个200米吧。哎呀这个太基本了。既然是精通游泳,起码你得把蛙泳仰泳蝶泳自由泳各来个一公里吧。年轻人,不要总想着搞个大新闻。主席畅游长江,谈笑风生,也没敢自称精通游泳。你游没游过长江啊。半年后,游泳池倒闭了。HR写“精通”的意思是,请新手有自知之明,我们需要一些能解决我们问题的人。什么叫能解决问题其实他也不明白,反正Team Leader满意就行。他希望的是差不多就得了,多来几个人才是正事(这才是人家的KPI)。而不是一年总共才上门一个人,而且还是个龟叔这个级别的人。实际上龟叔真的来了他才不知道该怎么办才好。就好像泳池招聘广告,只是希望你能在需要的时候,跳下去救人。而不是希望在泳池的旁边,养四个菲尔普斯。。。

更多关于python基础,微新扫一扫,以后会有持续更新
在这里插入图片描述