最近迫切應學的編程語言

最近迫切應學的編程語言

做者 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)。
轉載請註明出處。
原文:http://www.jianshu.com/p/08ca8573e681html


編程語言之爭歷來未曾中止,這篇文章絕對不會去討論哪一個語言是最好的(固然了,除了「PHP 是世界上最好的語言」這句「真理」以外)。python

插句題外話,不要聽一些人說:「編程語言沒有好差之分,只有用起來順不順手」。這話其實不正確,編程語言就是有好差之分。有些編程語言就是設計得很差,就是不適合通常的應用,就是無人問津。程序員

我想談談最近幾年個人感覺:算法

我深入地認識到 Python 是當下迫切應該學習的編程語言。編程

爲何這麼說呢?且聽我慢慢「因式分解」:後端

  1. Python 很火,很是火。這和人工智能(AI :Artificial Intelligence)有關。Python 有不少優秀的庫,特別適合數學運算和科學計算,而人工智能就須要不少計算和一些算法,所以 Python 的不少庫好比 Numpy,Pandas,SciPy,等就有用武之地了。並且不少大公司啓動了適合人工智能的庫或項目,好比 Google 公司發佈的開源機器學習庫 TensorFlow,Tesla(特斯拉)的 OpenAI,FaceBook 開源的 PyTorch,等等。這些庫上層均可以很方便地用 Python 來操做。Google 的 AlphaGo 擊敗了人類最強圍棋(Go)玩家李世石,而 AlphaGo 是基於 Google 的 DeepMind,DeepMind 前不久宣佈底層基於 TensorFlow 了。特斯拉的 OpenAI 在單人對抗中擊敗了人類最強的 Dota 2 影魔選手之一的 Dendi,完整對戰視頻。固然了,如今 AI 已經能夠在星際爭霸 2 中打敗人類選手了。​

OpenAI 和人類選手 Dendi 的 Dota 2 單人對決

  1. Python 很是容易入門。Python 號稱「Battery included」。咱們知道 battery 是「電池」的意思,included 是「包含」的意思,所以就是說 Python 簡單到「已經包含了電池了」,功能都已經包含在語言裏了,直接拿來用便可。其語法實在很簡單,基本沒有編程經驗的孩子幾天也能夠學會。如今 Python 更是已經被加入幼兒園、中小學的教材中了。微信

  2. Python 幾乎能夠被應用在任何領域。人工智能、科學計算領域天然不用說,各類成熟的庫調用起來極爲方便;大數據領域也是 Python 大展拳腳之處;雲計算領域 Python 能夠發揮實力,好比著名的 Dropbox 就是 Python 寫的;用 PyGame 能夠進行快速遊戲開發;GUI 圖形界面編程也不在話下,Matplotlib 這個繪圖庫能夠知足你;嵌入式領域,著名的樹莓派(Raspberry Pi)開發板的主要開發語言是 Python;Web 應用有 Django、Flask,等這個 Web 應用框架,能夠很快速地開發出絢麗無比的網站;Web 後端 Python 也不甘寂寞,知乎和豆瓣的後臺就是 Python 寫的;近幾年新興的職業 DevOps (development 和 operations 的組合)通常也用 Python 來寫腳本;一些大型項目的構建以及一些小任務的處理,Python 的腳本也能助你快速開發;用 Python 作爬蟲程序,能夠輕鬆爬取網絡上你想要的內容(固然,請不要幹壞事),Python 有不少不錯的爬蟲庫,例如 Scrapy。網絡

  3. 優越的跨平臺性能,幾乎全部的操做系統均可以跑起來 Python。框架

  4. Python 既支持面向過程函數式編程也支持面向對象的抽象編程。機器學習

  5. 用 Python 語言編寫程序讓人很愉快,反正我學習的時候感受寫 Python 的程序有一種快感。

  6. Python 很是精簡。自己的 API 封裝得挺好,所以不少功能不須要咱們從新造輪子,直接調用便可。再加上那麼多成熟的庫,用起來不要太開心。一樣實現一個功能,用 C 語言,Java 或 C++ 每每要寫不少行代碼,Python 只需一行或者幾行代碼幫你搞定。

  7. Python 在 Tiobe 編程語言排行榜的最新一期榜單(2020 年 6 月)中已經位列第 3,僅次於 Java,C語言。雖然說這個榜單不能涵蓋所有,但也是編程界比較權威的榜單了。能夠看出 Python 勢頭強勁。

  8. Python 是解釋型語言,所以假如你要作些小測試,或者學習這門語言,將會很是省時間,由於不須要編譯,直接解釋就能夠執行。好比我很喜歡的 Python 的 IDE(集成開發環境),由大名鼎鼎的 Jetbrains 出品的 PyCharm,就讓寫 Python 程序成了一種享受。

  9. Python 的可擴展性很好,開發者能夠用 C 語言或者 C++ 編寫 Python 的擴展模塊,還能將 Python 嵌入到 C/C++ 程序中。著名的 Numpy 就是用 C語言寫的。

  10. Python 的源代碼寫得不錯。其源代碼一開始是用 C 語言寫的,Python 的做者使用中立的面向過程的 C 語言,實現了動態面向對象,使得 Python 具有靈活和優雅的特性。Python 的源代碼也是值得學習的。推薦一本書,是中國人寫的,叫《Python 源碼剖析》,做者 陳儒,豆瓣評分 8.7。

  11. 規範的代碼。Python使用強制縮進來保證代碼規範性,幾乎不須要代碼審查。

之前學習 C++ 的時候,感受真是挺難的,主要是 C++ 比較龐雜,東西太多,概念都能把你繞暈了,並且還要考慮指針和內存等等。不少寫 C++ 的人其實並無很好地掌握其精髓,寫出來的程序每每很是醜陋,難以擴展和維護。

但 Python 就很簡單,終於能夠用節省下來的時間去看看詩和遠方了。固然了,要寫出優秀的 Python 代碼也沒有那麼容易。

Python的優勢也不僅我所列的這些。

固然,Python 也不是沒有缺點。好比動態解釋型語言速度相對編譯型慢一些(但其實 Python 如今速度已經挺快了)。操做系統的編寫目前仍是以彙編語言,C 語言和 C++ 爲主。

Python 還有一個最大的缺點,就是「優勢實在太多了」。

因此,省下幾局打王者榮耀的時間,來學學 Python 吧,必定大有裨益。

至於學習 Python 的教材,能夠看看《Head first Python》這本書,很淺顯易懂。慕課網的各類 Python 視頻也是入門和提升的好資源。

若是你英語好的話就直接看 Python 官網的 Tutorial(教程)吧:

https://docs.python.org/3/tutorial/index.html

沒有比這更權威和保持更新的了。

固然了,到時候你深陷 Python 的「情網」,沒法自拔時,請不要來找我「算帳」,這鍋我可不背。

固然了,這篇文章只介紹了 Python。其實 Google 開源的 Go 語言和 Kotlin 語言也都不錯,但比起 Python 勢頭仍是差了點。
我以前也寫過一篇關於 Kotlin 的文章:Kotlin探索之旅 | 第一部分第一課:Kotlin若只如初見


我是 謝恩銘,公衆號「程序員聯盟」(微信號:coderhub)運營者,慕課網精英講師 Oscar 老師,終生學習者。熱愛生活,喜歡游泳,略懂烹飪。人生格言:「向着標杆直跑」

相關文章
相關標籤/搜索