python學習有必要了解底層嗎?

自學python一年多了,自己感覺用的很熟練,主要用於寫爬蟲和後端。但最近我發現身邊學習java的同學都對java底層很熟悉。而且面試java主要也圍繞低層。我現在就很迷茫了,python需要熟悉底層嗎?


由需求驅動吧,我覺得可以深入到 python 的 python 級源代碼看看,但如果沒有特別需要,不必要深入到底層的 c 庫去看了。不如多看看 python 的優秀的第三方庫源代碼,比如 flask,requests這些,同時也為開源社區貢獻自己的一些代碼。


不知道題主所謂的底層是什麼知識,jvm?python的話,不需要了解pvm。但是,一些基本的實現還是要知道的,比如,list是一個數組,set是hash實現,雙鏈表是deque。

而且我發現,從標準庫來說,java和python實現思路是一樣的,比如,set其實都是hash表實現,只是value是一個dummy node。所以,python程序員也可以看看java的標準庫實現的,思路都一樣。

如果底層是指操作系統,網路和資料庫這類知識,那麼,什麼程序員都是需要了解的。


這語言簡直就是動態類型的c...什麼都不了解怎麼寫0.0

一堆函數名都跟內核調用名字一樣。。

當然,只用來算東西其實沒什麼必要


雖然所學的東西應該以工作為首要目的

但是程序員有時候需要一些有創造性的工作。懂得越多越容易讓你寫出更好的代碼。難道你要寫一輩子爬蟲么(沒有黑爬蟲的意思)。主動學點東西沒壞處。


看你想玩什麼了。

玩一下即走,幹嘛要那麼深入

要多玩幾下,不深入怎麼讓你玩。

我說的是交女朋友。


python你懂底層也沒啥用,這個語言本身沒多大特色,非常簡單。python最大的優勢是它的庫,找到自己需要的框架能熟練運用就達標了,當然可以過一遍框架的源碼。


無需,懂 JVM 主要是為了寫出性能更出色的 Java 代碼(就跟寫 C++ 要對內存分配那一套十分理解類似)和 JVM 調優。

而 Python 的性能不是那麼重要,也幾乎沒法調優,因為想調優的都會考慮使用 PyPy 或者 Jython (並且可能調優 JVM …)

又或者繼續用 CPython 然後擴展 Native 庫(C 庫),值得注意的是,在 Java 上幾乎極少極少見到與平台有關的庫,因為多數情況下 Java 不會有性能問題。


推薦閱讀:

類可以是另一個類的對象嗎?
求問怎樣用python/python turtle畫「心」呢?
Python的return如何理解?
Python這麼熱,會不會很快出現市場飽和,比如五年內?

TAG:Python | Flask | Python入門 |