更多課程 選擇中心

Python培訓
美國上市教育機構

400-111-8989

Python培訓

一個合格的Python工程師需要達到怎樣的編程水平?

  • 發布:Python培訓
  • 來源:問答
  • 時間:2017-12-01 15:05

如何才算精通Python?在Python學習中,我們都有哪些誤區?相信你看完這篇文章都會得到解答。

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


一、精通是個偽命題

怎樣才算精通Python,這是一個非常有趣的問題。

很少有人會說自己精通Python,因為,這年頭敢說精通的人都會被人摁在地上摩擦。其次,我們真的不應該糾結于編程語言,而應該專注于領域知識。

比如,你可以說你精通數據庫,精通分布式,精通機器學習,那都算你厲害。但是,你說你精通Python,這一點都不酷,在業界的認可度也不高。

再者,Python使用范圍如此廣泛,一個人精力有限,不可能精通所有的領域。就拿Python官網的Python應用領域來說,Python有以下幾個方面的應用:

Web Programming: Django, Pyramid, Bottle, Tornado, Flask, web2py

GUI Development: wxPython, tkInter, PyGtk, PyGObject, PyQt

Scientific and Numeric: SciPy, Pandas, IPython

Software Development: Buildbot, Trac, Roundup

System Administration: Ansible, Salt, OpenStack

如果有人聲稱精通上面所有領域,那么,請收下我的膝蓋,并且,請收我為徒。

既然精通Python是不可能也是沒有意義的事情,那么,為什么各個招聘要求里面,都要求精通Python呢?我覺得這都是被逼的。為什么這么說呢,且聽我慢慢說來。

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

絕大部分人對Python的認識都有偏差,認為Python比較簡單。相對于C、C++和Java來說,Python是比較容易學習一些,所以,才會有這么多只是簡單地了解了一點語法,就聲稱自己會Python的工程師。

打個比方,如果一個工程師,要去面試一個C++的崗位,他至少會找一本C++的書認真學習,然后再去應聘。Python則不然,很多同學只花了一點點時間,了解了一下Python的語法,就說自己熟悉Python。

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

三、怎樣才算精通Python

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

1. 能夠寫出Pythonic的代碼(什么是Pythonic的代碼,請看我在另一個問題下的回答:怎樣才能寫出pythonic的代碼? - 知乎用戶的回答)

2. 對Python的一些高級特性比較熟悉

3. 對Python的優缺點比較了解

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

3.1上下文管理器

大家在編程的時候,經常會遇到這樣的場景:先執行一些準備操作,然后執行自己的業務邏輯,等業務邏輯完成以后,再執行一些清理操作。

比如,打開文件,處理文件內容,最后關閉文件。又如,當多線程程序需要訪問臨界資源的時候,線程首先需要獲取互斥鎖,當執行完成并準備退出臨界區的時候,需要釋放互斥鎖。

對于這些情況,Python中提供了上下文管理器(Context Manager)的概念,可以通過上下文管理器來控制代碼塊執行前的準備動作以及執行后的收尾動作。

我們以處理文件為例來看一下在其他語言中,是如何處理這種情況的。 Java風格/C++風格的Python代碼:

Pythonic的代碼:

四、結論

我這篇文章很長,但是,我相信對很多人都會有幫助。這里想說的是,Python是一門編程語言,使用范圍非常廣泛,大家不要去追求精通Python程序語言自身,而應該將精力放在自己需要解決的實際問題上。

其次,絕大多數人對Python的認識都存在誤區,認為Python很簡單,只是簡單地了解一下就開始寫Python代碼,寫出了一堆很不好維護的代碼,我希望這一部分人看到我的回答以后,能夠回去重新學習Python。

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

Python有哪些崗位就業?

學JavaWeb的有必要學PythonWeb么?目前市場開發的python更多是測試和自動化崗位吧?web市場中,大型的項目被java占領,小型的有php,python如何在web市場分一杯羹?優勢劣勢在哪?python在其他方面,比如爬蟲啊,數據挖掘等方面的就業前景和學的要求怎么樣?麻煩老師解答一下,謝謝

講師:這個不是有沒有必要的問題, 不論用什么語言都可以開發出web系統, python, php, java都行,如果單就從實現功能的角度來講都沒有區別, 都能實現, 但是要考慮到開發效率, java是完全沒法和python比的, 比如一個小的系統, 用java開發,你要去打開ide,配置maven, 下載spring等等框架配置好開發環境,編寫代碼然后編譯成class之后再運行,這些其實可能一個python文件都能搞定的事情,等到你把開發環境搭建好,python都已經開發完了。 當然這里只是拿了一個小系統做例子, 大系統也是一樣的, 這里只是討論了一個開發效率問題。 如果單就從開發功能上來講, 用javaweb開發出來之后如果你不考慮以后想提升開發效率的話,當然不用去學習python web開發。

目前市場上python的職位遠不止測試和自動化崗位, 你如果去做云存儲之類的就知道openstack實際上就是用python開發的, 很多只要涉及到這塊的都會招python開發。 實際上很多web項目立項之初用java立項的原因都是因為考慮到java人才容易招到而不只是java本身有多大的優勢。 實際上很多創業公司開始逐步轉向用開發效率高的python和php作為web開發。而且java在web系統方面也在逐漸被python, go 和nodejs蠶食。

python目前在python和數據處理領域幾乎都是首選語言,后期隨著人工智能時代的來臨, 很多公司特別是小公司會急于向數據方面考慮首先第一個要解決的問題就是爬蟲爬取數據, 所以數據和爬蟲職位近兩年應該會逐漸增多。

本文內容轉載自網絡,本著分享與傳播的原則,版權歸原作者所有,如有侵權請聯系我們進行刪除!

預約申請免費試聽課

填寫下面表單即可預約申請免費試聽!怕錢不夠?可就業掙錢后再付學費! 怕學不會?助教全程陪讀,隨時解惑!擔心就業?一地學習,可全國推薦就業!

上一篇:入門 Python 要多久時間?該如何學習?
下一篇:想學Python有沒有必要報培訓班?

Python這么簡單還用參加Python培訓班學嗎?

零基礎學Python編程開發難度大嗎?從哪學起?

0基礎想做程序員,該從何學起?

人工智能與Python的區別是什么?

選擇城市和中心
黑龍江省

吉林省

河北省

湖南省

貴州省

云南省

廣西省

海南省

4438全国大成网人网站