[問題] 想要扎實學習PYTHON如何開始?

看板Python作者 (螺旋麵)時間9年前 (2016/06/10 14:03), 編輯推噓11(11027)
留言38則, 12人參與, 最新討論串1/1
我自己的背景是CS碩畢業不久 學校都以C++為主流教學 會了C++之後其實多數語言就沒什麼難度了 而最近用了幾個月的python 但問題來了 不久前去面試 因為我用python回答 他就問我mutable和immutable 但我印象很模糊 所以講錯了 回來找了一下資料 才覺得這真的是基本中的基本 但是找了好多教學資源都只大概提到 所以當初就不會 因為感覺現在學程式的主流就是馬上變出一個Hello world最重要 其他技術細節 寫久了慢慢就懂了 之前去書局翻書 大概也是介紹語法啦 神奇的用法啦 什麼的 但是卻沒看到有書仔細講解python的細節 例如說記憶體怎麼開的 GC怎麼做 常用的東西是怎麼實作的 例如我知道C++ STL裡面的vector是用array實作 我就知道該用push_back會比較快 知道map和unordered_map分別用RB tree和hash實作 這樣我看到問題就能想到什麼才是好方法 但是python... 我有一種感覺 如果繼續用現在的方式學python 一直在學很酷的語法、各種package的用法 那我只會與真的學好他越行越遠 而墮落成腦中塞了一堆知識 卻不懂得活用的碼農 想問各位,有什麼推薦的學習資源 能夠解決這種問題嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.43.186.228 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1465538587.A.F32.html

06/10 14:21, , 1F
可以想辦法去找到這本舊書 http://goo.gl/00Oexq
06/10 14:21, 1F

06/10 14:22, , 2F
底子夠好也可以直接 trace 源碼 https://goo.gl/iipwkO
06/10 14:22, 2F

06/10 14:24, , 3F
個人認為,學很酷的語法跟熟悉各種 packages 也很重要
06/10 14:24, 3F

06/10 14:31, , 4F
不想看源碼,在意執行速度可看 https://goo.gl/iKvqD5
06/10 14:31, 4F

06/10 14:31, , 5F
我想精通 Java 的人也很少有人把虛擬機源碼看完的 XD
06/10 14:31, 5F

06/10 14:32, , 6F
我想高階語言的重點在於避免重新造輪子,站在巨人肩膀
06/10 14:32, 6F

06/10 14:34, , 7F
因此熟悉有哪些 packages 可以活用,相對來說更重要
06/10 14:34, 7F

06/10 14:40, , 8F
先買幾本書看,用了幾個月,會一點,啥都搞不清楚,正常的
06/10 14:40, 8F

06/10 14:47, , 9F
基本門崁:Fluent Python,接下來K Cpython 原始碼
06/10 14:47, 9F

06/10 23:39, , 10F
感謝 夠我看一陣子了!
06/10 23:39, 10F

06/11 02:43, , 11F
有時候覺得問這些底層的原理似乎在走回頭路,要搞的這
06/11 02:43, 11F

06/11 02:43, , 12F
麼複雜乾脆寫C效率還比較高,OO語言會使用比較重要吧
06/11 02:43, 12F

06/11 09:50, , 13F
如果你這麼覺得就去寫 C 吧, 沒人攔你
06/11 09:50, 13F

06/11 09:51, , 14F
事實是用什麼工具都需要瞭解原理, 否則你永遠不能進步
06/11 09:51, 14F

06/11 10:19, , 15F
推原理重要,你不見得當下會用,但總是有派上用場的時刻
06/11 10:19, 15F

06/11 10:41, , 16F
計算機科學的知識,不僅要知其然,更要知其所以然。
06/11 10:41, 16F

06/11 12:32, , 17F
我倒是覺得除非run的東西預期結果跟你所想的不同才需
06/11 12:32, 17F

06/11 12:32, , 18F
要翻底層,不然真的學不完
06/11 12:32, 18F

06/11 12:41, , 19F
OO語言個人覺得研究架構方面的會比較實在
06/11 12:41, 19F

06/11 13:53, , 20F
這跟cpmpiler相關,要去想實作,因而幫助到應用。
06/11 13:53, 20F

06/11 13:55, , 21F
map系和或list comprehension比較也很有趣。
06/11 13:55, 21F

06/11 14:00, , 22F
你要做multi thread,就一定得看一下gil實作。我認為至少
06/11 14:00, 22F

06/11 14:00, , 23F
得知道知識在哪,要用到再去細讀即可。
06/11 14:00, 23F

06/11 14:13, , 24F
同意,重點就是用到再去深究,時間有限啊QQ
06/11 14:13, 24F

06/11 15:34, , 25F
www.ptt.cc/bbs/C_and_CPP/M.1260555706.A.CA2.html
06/11 15:34, 25F

06/11 15:35, , 26F

06/11 15:36, , 27F
好好比較一下上面兩個 link :)
06/11 15:36, 27F

06/11 15:57, , 28F
http://www.effectivepython.com 推薦這本書,很多重要 Py
06/11 15:57, 28F

06/11 15:57, , 29F
thon 概念跟寫法都有提到,書不會太厚。
06/11 15:57, 29F

06/12 00:40, , 30F
推effective Python 有寫過再看實力會再上一層
06/12 00:40, 30F

06/13 22:28, , 31F
一直翻底層也不一定有用,看過兩週還是一樣忘記
06/13 22:28, 31F

06/13 23:56, , 32F
我是用python寫Uva後,對於效能和實作細節有更深的了解
06/13 23:56, 32F

06/21 02:04, , 33F
但我覺得 immutable 跟你的方向可能又不太一樣,我自己
06/21 02:04, 33F

06/21 02:04, , 34F
認為那是滿常見到的東西,是你真的去寫個作品就會碰到的
06/21 02:04, 34F

06/21 02:07, , 35F
我的意思是說比起 trace code 直接想個有興趣的東西然後
06/21 02:07, 35F

06/21 02:07, , 36F
implement 應更快可以避免類似 immutable 這類問題答不
06/21 02:07, 36F

06/21 02:07, , 37F
出來的可能。當然如果你願意且有興趣看他的底層 code 當
06/21 02:07, 37F

06/21 02:07, , 38F
然是最好
06/21 02:07, 38F
文章代碼(AID): #1NMbWRyo (Python)
文章代碼(AID): #1NMbWRyo (Python)