溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

很多人說(shuō)精通Python?對(duì)于精通我們存在哪些誤區(qū)

發(fā)布時(shí)間:2020-08-10 02:56:13 來(lái)源:ITPUB博客 閱讀:149 作者:千鋒Python唐小強(qiáng) 欄目:編程語(yǔ)言

如何才算精通Python?在Python學(xué)習(xí)中,我們都有哪些誤區(qū)?相信你看完這篇文章都會(huì)得到解答。心靈也會(huì)得到釋放!

如果不能,我希望這篇回答能讓你意識(shí)到自己Python知識(shí)還存在哪些不足,在之后的學(xué)習(xí)中,從哪些方面去改進(jìn)。

一、精通是個(gè)偽命題

怎樣才算精通Python,這是一個(gè)非常有趣的問(wèn)題。

很少有人會(huì)說(shuō)自己精通Python,因?yàn)?,這年頭敢說(shuō)精通的人都會(huì)被人摁在地上摩擦摩擦。其次,我們真的不應(yīng)該糾結(jié)于編程語(yǔ)言,而應(yīng)該專(zhuān)注于領(lǐng)域知識(shí)。

比如,你可以說(shuō)你精通數(shù)據(jù)庫(kù),精通分布式,精通機(jī)器學(xué)習(xí),那都算你厲害。但是,你說(shuō)你精通Python,這一點(diǎn)都不酷,在業(yè)界的認(rèn)可度也不高。

再者, Python使用范圍如此廣泛,一個(gè)人精力有限,不可能精通所有的領(lǐng)域。就拿Python官網(wǎng)的Python應(yīng)用領(lǐng)域來(lái)說(shuō),Python有以下幾個(gè)方面的應(yīng)用:

  1. Web Programming: Django, Pyramid, Bottle, Tornado, Flask, web2py
  2. GUI Development: wxPython, tkInter, PyGtk, PyGObject, PyQt
  3. Scientific and Numeric: SciPy, Pandas, IPython
  4. Software Development: Buildbot, Trac, Roundup
  5. System Administration: Ansible, Salt, OpenStack

如果有人聲稱(chēng)精通上面所有領(lǐng)域,那么,請(qǐng)收下我的膝蓋,并且,請(qǐng)收我為徒。

既然精通Python是不可能也是沒(méi)有意義的事情,那么,為什么各個(gè)招聘要求里面,都要求精通Python呢?我覺(jué)得這都是被逼的。為什么這么說(shuō)呢,我慢慢跟大家分析!

二、為什么招聘要求精通Python

絕大部分人對(duì)Python的認(rèn)識(shí)都有偏差,認(rèn)為Python比較簡(jiǎn)單。相對(duì)于C、C++和Java來(lái)說(shuō),Python是比較容易學(xué)習(xí)一些,所以,才會(huì)有這么多只是簡(jiǎn)單地了解了一點(diǎn)語(yǔ)法,就聲稱(chēng)自己會(huì)Python的工程師。

打個(gè)比方,如果一個(gè)工程師,要去面試一個(gè)C++的崗位,他至少會(huì)找一本C++的書(shū)認(rèn)真學(xué)習(xí),然后再去應(yīng)聘。Python則不然,很多同學(xué)只花了一點(diǎn)點(diǎn)時(shí)間,了解了一下Python的語(yǔ)法,就說(shuō)自己熟悉Python。

這也導(dǎo)致Python的面試官相對(duì)于其他方向的面試官,更加容易遇到不合格的求職者,浪費(fèi)了大家的時(shí)間。Python面試官為了不給自己找麻煩,只能提高要求,要求求職者精通Python。

三、怎樣才算精通Python

既然精通Python本身是一件不可能的事情,而面試官又要求精通Python,作為求職者,應(yīng)該達(dá)到怎樣的水平,才敢去應(yīng)聘呢?我的觀點(diǎn)是,要求精通Python的崗位都是全職的Python開(kāi)發(fā),Python是他們的主要使用語(yǔ)言,要想和他們成為同事,你至少需要:

1. 能夠?qū)懗鯬ythonic的代碼(什么是Pythonic的代碼,請(qǐng)看我在另一個(gè)問(wèn)題下的回答:怎樣才能寫(xiě)出pythonic的代碼? - 知乎用戶(hù)的回答)

2. 對(duì)Python的一些高級(jí)特性比較熟悉

3. 對(duì)Python的優(yōu)缺點(diǎn)比較了解

這樣說(shuō)可能比較抽象,不太好理解。我們來(lái)看幾個(gè)例子,如果能夠充分理解這里的每一個(gè)例子,那么,你完全能夠順利通過(guò)"精通Python"的崗位面試。

很多人說(shuō)精通Python?對(duì)于精通我們存在哪些誤區(qū)

大家在編程的時(shí)候,經(jīng)常會(huì)遇到這樣的場(chǎng)景:先執(zhí)行一些準(zhǔn)備操作,然后執(zhí)行自己的業(yè)務(wù)邏輯,等業(yè)務(wù)邏輯完成以后,再執(zhí)行一些清理操作。

比如,打開(kāi)文件,處理文件內(nèi)容,最后關(guān)閉文件。又如,當(dāng)多線程程序需要訪問(wèn)臨界資源的時(shí)候,線程首先需要獲取互斥鎖,當(dāng)執(zhí)行完成并準(zhǔn)備退出臨界區(qū)的時(shí)候,需要釋放互斥鎖。

對(duì)于這些情況,Python中提供了上下文管理器(Context Manager)的概念,可以通過(guò)上下文管理器來(lái)控制代碼塊執(zhí)行前的準(zhǔn)備動(dòng)作以及執(zhí)行后的收尾動(dòng)作。

我們以處理文件為例來(lái)看一下在其他語(yǔ)言中,是如何處理這種情況的。Java風(fēng)格/C++風(fēng)格的Python代碼:

很多人說(shuō)精通Python?對(duì)于精通我們存在哪些誤區(qū)


Pythonic的代碼:

很多人說(shuō)精通Python?對(duì)于精通我們存在哪些誤區(qū)


四、結(jié)論

這篇文章很長(zhǎng),但是,我相信對(duì)很多人都會(huì)有幫助。這里想說(shuō)的是,Python是一門(mén)編程語(yǔ)言,使用范圍非常廣泛,大家不要去追求精通Python程序語(yǔ)言自身,而應(yīng)該將精力放在自己需要解決的實(shí)際問(wèn)題上。

其次,絕大多數(shù)人對(duì)Python的認(rèn)識(shí)都存在誤區(qū),認(rèn)為Python很簡(jiǎn)單,只是簡(jiǎn)單地了解一下就開(kāi)始寫(xiě)Python代碼,寫(xiě)出了一堆很不好維護(hù)的代碼,我希望這一部分人看到我的回答以后,能夠回去重新學(xué)習(xí)Python。

最后,對(duì)于一些同學(xué)的疑慮——招聘職位要求精通Python,我的回答是,他們并不奢望招到一個(gè)精通Python的人,他們只是想招到一個(gè)合格的工程師,而大部分的Python工程師,都,不,合,格!

很多人說(shuō)精通Python?對(duì)于精通我們存在哪些誤區(qū)


很多伙伴也會(huì)問(wèn)我Python有哪些崗位就業(yè)?好不好就業(yè)!

學(xué) JavaWeb 的有必要學(xué) PythonWeb 么?

目前市場(chǎng)開(kāi)發(fā)的python更多是測(cè)試和自動(dòng)化崗位吧?

web市場(chǎng)中,大型的項(xiàng)目被java占領(lǐng),小型的有php,python如何在web市場(chǎng)分一杯羹??jī)?yōu)勢(shì)劣勢(shì)在哪?

python在其他方面,比如爬蟲(chóng)啊,數(shù)據(jù)挖掘等方面的就業(yè)前景和學(xué)的要求怎么樣?

這些都是總結(jié)下來(lái)伙伴們的問(wèn)題 !

我在這里也跟大家做一個(gè)回復(fù): 這個(gè)不是有沒(méi)有必要的問(wèn)題, 不論用什么語(yǔ)言都可以開(kāi)發(fā)出web系統(tǒng), python, php, java都行,如果單就從實(shí)現(xiàn)功能的角度來(lái)講都沒(méi)有區(qū)別, 都能實(shí)現(xiàn) , 但是要考慮到開(kāi)發(fā)效率, j ava是完全沒(méi)法和python比的, 比如一個(gè)小的系統(tǒng), 用java開(kāi)發(fā),你要去打開(kāi)ide,配置maven, 下載spring等等框架配置好開(kāi)發(fā)環(huán)境,編寫(xiě)代碼然后編譯成class之后再運(yùn)行,這些其實(shí)可能一個(gè)python文件都能搞定的事情,等到你把開(kāi)發(fā)環(huán)境搭建好,python都已經(jīng)開(kāi)發(fā)完了。當(dāng)然這里只是拿了一個(gè)小系統(tǒng)做例子, 大系統(tǒng)也是一樣的, 這里只是討論了一個(gè)開(kāi)發(fā)效率問(wèn)題。如果單就從開(kāi)發(fā)功能上來(lái)講, 用javaweb開(kāi)發(fā)出來(lái)之后如果你不考慮以后想提升開(kāi)發(fā)效率的話(huà),當(dāng)然不用去學(xué)習(xí)python web開(kāi)發(fā)。

目前市場(chǎng)上python的職位遠(yuǎn)不止測(cè)試和自動(dòng)化崗位, 你如果去做云存儲(chǔ)之類(lèi)的就知道openstack實(shí)際上就是用python開(kāi)發(fā)的, 很多只要涉及到這塊的都會(huì)招python開(kāi)發(fā)。實(shí)際上很多web項(xiàng)目立項(xiàng)之初用java立項(xiàng)的原因都是因?yàn)榭紤]到j(luò)ava人才容易招到而不只是java本身有多大的優(yōu)勢(shì)。實(shí)際上很多創(chuàng)業(yè)公司開(kāi)始逐步轉(zhuǎn)向用開(kāi)發(fā)效率高的python和php作為web開(kāi)發(fā)。而且java在web系統(tǒng)方面也在逐漸被python, go 和nodejs蠶食。

python目前在python和數(shù)據(jù)處理領(lǐng)域幾乎都是首選語(yǔ)言,后期隨著人工智能時(shí)代的來(lái)臨, 很多公司特別是小公司會(huì)急于向數(shù)據(jù)方面考慮,首先第一個(gè)要解決的問(wèn)題就是爬蟲(chóng)爬取數(shù)據(jù), 所以數(shù)據(jù)和爬蟲(chóng)職位近兩年應(yīng)該會(huì)逐漸增多。

很多人說(shuō)精通Python?對(duì)于精通我們存在哪些誤區(qū)


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI