python學習有必要了解底層嗎?
01-28
自學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這麼熱,會不會很快出現市場飽和,比如五年內?