尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️
免費送Python知識圖譜
在微信公眾號書圈(itshuquan)後台回復【教學大綱下載】 下載Python 20張知識圖譜 知識圖譜持續更新中…..
本文轉自:癡海(已獲授權)
閱讀文本大概需要 14 分鐘。
最近一直有讀者在後台問我,K 哥你是如何看待 Python、Python前景如何、Python工作上有哪些方向。今天我就認真寫篇文章講講自己對於 Python的一些理解,以及如今 Python都有哪些方向。全文 5143 個字,本文參考了一些資料,有些內容是來源於網路上,我會在最後標註來源。
1 Python前世今生
1.1 Python作者
Python的作者荷蘭人「Guido von Rssum」,在 1982 年從阿姆斯特丹大學(Universiteit van Amsterdam,縮寫為 UvA)獲得數學和計算機碩士學位。
UvA 大學有多牛逼?2015 年 QS 世界大學排名 55,21 世紀歐洲頂尖大學。從 1632 年成立以來,一共產生過 6 名諾貝爾獎得主,其中諾貝爾物理學家得主 3 名,和平、醫學和化學獎得主各一名。
正是這所牛逼的大學,撫育了 Python的發明者 Guido。有時候看到有人在崇尚學歷無用論,想想都覺得可笑。世界上頂級的管理者,商業精英,計算機語言開發者,無不是擁有頂級的學歷背景。
1.2 ABC 語言
在 Guido 那個年代,人們流行的編程語言還是 Pascal、C、Bourne Shell。但那時候電腦配置非常的低,寫一個大點的 C 語言數組就占滿內存。Shell 雖然簡潔,但沒有數值型的數據類型,不能全面的調動計算機的功能。
Guido 就希望能有個語言可以像 C 和Shell一樣,既能全面調動計算機的功能接口,又可以輕鬆的編程。當時的 ABC 語言讓 Guido 看到了希望,並且他也參與到這門語言的開發中。下面是一段 ABC 語言的代碼,這個程序用於統計文本中出現的詞的總數。
HOW TO RETURN words document: PUT {} IN collection FOR line IN document: FOR word IN split line: IF word not.in collection: INSERT word IN collection RETURN collection
HOW TO 用於定義一個函數。ABC 語言使用冒號和縮進來表示程序塊。行尾沒有分號。for 和 if 結構中也沒有括號()。賦值採用的是 PUT,而不是更常見的等號。這些改動讓 ABC 程序讀起來像一段文字。這與 Python有很多相似的地方。
從代碼可以看出,程序是有良好的可讀性和易用性,但同時 ABC 有個致命的缺陷,它對於電腦的配置要求非常的高。在那個電腦配置只有 128KB 的 RAM 時代,無疑宣告 ABC 這門語言是不可能流行的起來。
但這次 ABC 語言開發的經歷,奠定了之後 Python優雅,易用的基調。編程語言 Python的設計風格,有許多源自於 ABC 語言。
1.3 Python的誕生
時間來到 1989 年,Guido 為了打發聖誕節假期,就開始編寫 Python語言的編譯器。大佬假期無聊就寫出這麼偉大的語言。再想想自己假期都是在做什麼。
Python這個名稱,是來自 Guido 所摯愛的電視劇「Monty Python’s Flying Circus」。他希望這個新的叫做 Python的語言,能符合他的理想:創造一種 C 和 shell 之間,功能全面,易學易用,可拓展的語言。
1991 年,第一個 Python編譯器誕生,它是用 C 語言做到,並且能夠調用 C 語言的庫文件。從一出生,Python已經具有了:類,函數,異常處理,包含表和詞典在內的核心數據類型,以及模塊為基礎的拓展系統。
Python語法很多來自 C,但又受到 ABC 語言的強烈影響。來自 ABC 語言的一些規定直到今天還富有爭議,比如強制縮進。但這些語法規定讓 Python容易讀。
最初的 Python完全由 Guido 自己開發,但 Python得到 Guido 同事的歡迎。很快 Guido 和同事一起組建 Python的核心團隊。隨後 Python將機器層面上的細節隱藏起來,交給編譯器處理。這樣使得使用 Python的工程師,可以花更多的時間在程序的邏輯思考上,而不用過度關心具體的做到細節。這一特性讓 Python逐漸流行起來,偉大的語言就此走上高速發展的道路。
1.4 Python高速發展
隨著 Python逐漸進入正軌,版本更新迭代也越來越快。
-
1989 年由荷蘭人Guido van Rossum於 1989 年發明,第一個公開發行版發行於 1991 年
-
Granddaddy of Python web frameworks, Zope 1 was released in 1999
-
Python 1.0 – January 1994 增加了 lambda, map, filter and reduce.
-
Python 2.0 – October 16, 2000,加入了內存回收機制,構成了現在Python語言框架的基礎
-
Python 2.4 – November 30, 2004, 同年目前最流行的 WEB 框架 Django 誕生
-
Python 2.5 – September 19, 2006
-
Python 2.6 – October 1, 2008
-
Python 2.7 – July 3, 2010
-
Python 3.0 – December 3, 2008
-
Python 3.1 – June 27, 2009
-
Python 3.2 – February 20, 2011
-
Python 3.3 – September 29, 2012
-
Python 3.4 – March 16, 2014
-
Python 3.5 – September 13, 2015
-
Python 3.6 – December 23, 2016
-
Python 3.7.0a2 – October 17, 2017
-
Python 3.7.0b5 – May 31, 2018
從 1991 公開發行版到如今 Python的 3.7.0b5,Python已經走過了 27 年。而就在今年的 5 月份 Python成功登頂編程排行榜,成為最流行的編程語言。
1.5 使用 Python 開發項目
如今隨著人工智能和大數據的興起,Python 這門語言也越來越多人使用。並且在全世界範圍內,有很多公司就是利用 Python 進行開發,其中不乏大家所熟知的公司。比如
-
Google:Google在很多項目中用 Python 作為網路應用的後端,如 Google Groups、Gmail、Google Map s等,Google App Engine 支持 Python作為開發語言。
-
YouTube: 404 視頻分享網站,在某些功能上就是使用到 Python。
-
Quora:社交問答網站。
-
知乎:國內最大的問答網站,也是利用 Python開發。
-
豆瓣網:圖書、唱片、電影等文化產品的資料數據庫網站。
-
Reddit:社交分享網站,最早用 Lisp 開發,在 2005 年轉為 Python。
-
Dropbox: 文件分享服務。
-
Django: 鼓勵快速開發的 Web 應用誇獎。
-
EVE: 網路遊戲 EVE 大量使用 Python 進行開發。
還有很多的案例,大家可以去 Python官網上 About > Success Stories 里查看。
2 Python 國內現狀
國內對於新技術的接受程度,並沒能像國外一樣。很多在國外使用非常火爆的技術,但在國內至少要延遲一到兩年的時間,才會被各大公司所使用。比如 Kotlin,在 2017 年 5 月 17 日(北京時間 5 月 18 日凌晨)的 Google I/O 2017 Keynote 上, Google宣布,將 Kotlin 語言作為安卓開發的一級編程語言。這之後國外的公司在啟動新的 Android 項目都把 Kotlin 做為首選語言,對於以前的舊項目也會利用 Kotlin 進行重構。
而國內卻沒有任何動靜。直到 2018 年國內部分公司開始使用 Kotlin,一些做 Android 開發的朋友,應該有不少被要求學習下這門語言。Kotlin 已經是 Android 開發未來的方向。
現在國內對 Python 的態度就像最初的 Kotlin 一樣,大部分人還是只停留在表層,知道機器學習和數據分析要用到 Python。具體要說下 Python 都可以應用哪些方面,大部分人都不知道。但市面上 Python 相關的應用還是有很多,比如在國內比較有名的有豆瓣、知乎、金山的測試框架、搜狐的郵箱。
隨著這幾年人工智能和大數據的大火,市場上 Python 相關的需求也越來越多。我從拉勾網上找了些 Python 相關工作,1~3 年經驗薪資待遇還是非常不錯平均在 15K 左右。
各國也紛紛布局自己的 AI 戰略,美國有Google的「Tensorflow」,國內有百度全力布局 AI,國家教育部也正式發布《人工智能基礎(高中版)》,這里面都是首選 Python 做為開發語言。
社會上種種信號早已說明,人工智能是未來發展的方向,而 Python 也只會越來越火爆,對應的需求也會越來越多。
3 Python 開發方向
那麼 Python 具體的工作方向都有哪些?這里我給大家列舉了一些主流的 Python 開發方向。
3.1 機器學習
機器學習是人工智能的一個分支。人工智能的研究歷史有著一條從以「推理」為重點,到以「知識」為重點,再到以「學習」為重點的自然、清晰的脈絡。顯然,機器學習是做到人工智能的一個途徑,即以機器學習為手段解決人工智能中的問題。
機器學習的薪資是非常的高,我隨便在拉勾網上找了些相關的崗位,薪資都是在 15K 以上,最高可達到 80K。
但機器學習對應的要求是比較高,尤其對於學歷來說至少要研究生。還要求你有一定的數學基礎,比如高數、概率論、線性代數等。有能力有學歷的人,那你就選擇這個方向,絕對不會錯。
3.2 數據分析
數據分析是一類統計方法,其主要特點是多維性和描述性。有些幾何方法有助於揭示不同的數據之間存在的關係,並繪制出統計信息圖,以更簡潔的解釋這些數據中包含的主要信息。其他一些用於收集數據,以便弄清哪些是同質的,從而更好地了解數據。
這幾年隨著大數據的火爆,數據分析這個行業也越來越火,薪水也水漲船高。拉勾網的薪水也非常的不錯 ,10K 是非常輕鬆。
3.3 web 開發
web 應用被分類歸為分布式應用,一般是客戶端—服務器結構,所以我們有一部分的代碼運行在客戶端,另一部分代碼運行在服務器。而在 Python 中有非常多的 web 開發框架,比如 Django、CherryPy、Flask、Pyramid、TurboGear 等等。
這些框架能讓你快速開發出一個 web 應用,web 開發在市場上是有非常多的需求。在拉勾網的薪資也是很高,平均 15K。
3.4 爬蟲工程師
網路爬蟲(又被稱為網頁蜘蛛,網路機器人,在 FOAF 社區中間,更經常的稱為網頁追逐者),是一種按照一定的規則,自動地抓取萬維網信息的程序或者腳本。另外一些不常使用的名字還有螞蟻、自動索引、模擬程序或者蠕蟲。
Python 獨特的語言特性,使得它非常適合用來進行網站的爬取。人們一提交 Python 有哪些應用,就會想到爬蟲。在拉勾網上爬蟲的薪資一樣很高,平均 10K。
3.5 測試工程師
最後說個測試工程師。測試工程師,軟件質量的把關者,工作起點高,發展空間大。大陸的軟件測試職業還處於一個發展的階段,所以測試工程師具有較大發展前景。Python 也可以用來做一些測試。我也在拉勾網上找了測試工程師相應的薪水,平均 10K。
4 選擇比努力重要
現在的 Python 市場很像 2014 年的移動開發市場,那時候移動互聯網也跟如今的人工智能一樣,非常火爆。市場對於移動開發的需求非常的多,那時候你只要會在 Android 上寫「hello world」,就可以找到工作。各大培訓機構鋪天蓋地的宣傳移動開發。
但隨著移動市場這些年的發展,現在對於基礎移動開發人員已經趨近飽和。如果你現在是一個剛入編程行業的人員,又剛好選擇了移動開發的方向,那對不起,你很有可能找不到工作。
有時候你非常的努力但選錯了方向,你的事業發展速度就會非常的緩慢。而有些人選對了方向,稍微做些事情,事業迅速發展。如今選擇 Python ,你就已經比大部分人領先。
分享一個真實的事,來自帥張的知識星球,別人通過半年 Python 學習,如今找到一個 12K 的工作。而這很有可能是別人一到兩年才能達到的薪資,選擇是比努力更加重要。
總結
以上就是我自己對於 Python 的一些理解。未來選擇擁抱 Python ,一定能讓你收獲很多。
人必有癡,而後有成
本日推薦圖書
-
本書案例具有實用性,例如校園網搜尋引擎、小小翻譯器、抓取百度圖片這些爬蟲案例略加修改可以應用到實際項目中;還有通過微信通信協議開發微信機器人、機器學習的文本分類、基於卷積神經網路的手寫體識別等案例;另外是一些大家耳熟能詳的遊戲案例,例如連連看、推箱子、中國象棋、網路五子棋、兩人麻將、人物拼圖和飛機大戰等遊戲。通過本書,讀者將掌握Python編程技術和技巧,學會面向對象的設計方法,了解程序設計的所有相關內容。本書不僅為讀者列出了完整的代碼,同時對所有的源代碼都進行了非常詳細的解釋,通俗易懂、圖文並茂。掃描每章提供的二維碼可觀看知識點的視頻講解。
-
掃描,京東7.5折優惠購書中…
全國高校Python/大數據/微信小程序課程高級研修班啟動了!
課程名稱 全國高校Python數據分析與實訓課程高級研修班 全國高校大數據技術與實訓課程高級研修班 全國高校微信小程序開發與實訓課程高級研修班 時間和地點 1月17日-20日,廈門 報名表下載地址: 1.https://wj.qq.com/s/2879798/9463(復制到瀏覽器中) 2. 在後台回復【會議】或者【培訓】 會議期間,將贈送最新出版的圖書(首發)