什麼程度叫 「精通python」 ?

打開boss直聘、拉勾、51Job、獵聘等招聘網站,看看python崗位招聘,要求是: 精通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:手到拈來,一切皆空json

我我的是很反對對一個語言使用「精通」這個詞的。由於廣大碼農嘴裏的「精通xx語言」實際上毫無心義。表明不了任何東西。代碼是一個工具,就像一隻筆同樣。你精通「使用」這隻筆是毫無卵用的,而廣大碼農嘴裏「精通xx語言」其實就是精通」使用「xx語言而已。精通使用一隻筆是沒有太大意義的(可是前提必需要基本會用哈),有意義的是你精通拿這隻筆來作什麼事,是拿來寫書法、寫文章或者是畫畫。然而寫書法好的人換一隻不那麼熟的筆就不會寫字了嗎?寫文章的換隻筆就寫不出好文章了?畫畫的換隻筆就畫不出畫了?數據結構

所謂精通,第一個是這門語言實現上的抽象,第二個是這門語言適合應用的領域。語言自己沒有太大的學習價值,或者不能說是價值低,應該說是門檻低吧。所謂門檻,無非就是經驗與智力。對一門語言瞭解到能夠勝任工做就能夠了,沒有必要過度糾結於語言這種東西機器學習

因此招聘網站上貼出的精通,能夠用下面一個比方:
某個游泳池要開業,因此須要一些救生員。因而他就貼出了求職公告。誠聘救生員,需精通游泳,待遇從優,非誠勿擾。而後有人就在X乎上問了。大神們,什麼叫作精通游泳?嘛,我以爲吧,你起碼得能在平靜水面遊個200米吧。哎呀這個太基本了。既然是精通游泳,起碼你得把蛙泳仰泳蝶泳自由泳各來個一千米吧。年輕人,不要總想着搞個大新聞。主席暢遊長江,談笑風生,也沒敢自稱精通游泳。你遊沒遊過長江啊。半年後,游泳池倒閉了。HR寫「精通」的意思是,請新手有自知之明,咱們須要一些能解決咱們問題的人。什麼叫能解決問題其實他也不明白,反正Team Leader滿意就行。他但願的是差很少就得了,多來幾我的纔是正事(這纔是人家的KPI)。而不是一年總共才上門一我的,並且仍是個龜叔這個級別的人。實際上龜叔真的來了他纔不知道該怎麼辦纔好。就好像泳池招聘廣告,只是但願你能在須要的時候,跳下去救人。而不是但願在泳池的旁邊,養四個菲爾普斯。。。編程語言

更多關於python基礎,微新掃一掃,之後會有持續更新分佈式

相關文章
相關標籤/搜索