作者Helicoid (螺旋麵)
看板Python
標題[問題] 想要扎實學習PYTHON如何開始?
時間Fri Jun 10 14:03:05 2016
我自己的背景是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://webptt.com/m.aspx?n=bbs/Python/M.1465538587.A.F32.html
3F:→ LiloHuang: 個人認為,學很酷的語法跟熟悉各種 packages 也很重要 06/10 14:24
5F:→ LiloHuang: 我想精通 Java 的人也很少有人把虛擬機源碼看完的 XD 06/10 14:31
6F:→ LiloHuang: 我想高階語言的重點在於避免重新造輪子,站在巨人肩膀 06/10 14:32
7F:→ LiloHuang: 因此熟悉有哪些 packages 可以活用,相對來說更重要 06/10 14:34
8F:→ freeunixer: 先買幾本書看,用了幾個月,會一點,啥都搞不清楚,正常的 06/10 14:40
9F:→ bigpigbigpig: 基本門崁:Fluent Python,接下來K Cpython 原始碼 06/10 14:47
10F:→ Helicoid: 感謝 夠我看一陣子了! 06/10 23:39
11F:→ ripple0129: 有時候覺得問這些底層的原理似乎在走回頭路,要搞的這 06/11 02:43
12F:→ ripple0129: 麼複雜乾脆寫C效率還比較高,OO語言會使用比較重要吧 06/11 02:43
13F:→ uranusjr: 如果你這麼覺得就去寫 C 吧, 沒人攔你 06/11 09:50
14F:→ uranusjr: 事實是用什麼工具都需要瞭解原理, 否則你永遠不能進步 06/11 09:51
15F:推 smallmac: 推原理重要,你不見得當下會用,但總是有派上用場的時刻 06/11 10:19
16F:推 LiloHuang: 計算機科學的知識,不僅要知其然,更要知其所以然。 06/11 10:41
17F:→ ripple0129: 我倒是覺得除非run的東西預期結果跟你所想的不同才需 06/11 12:32
18F:→ ripple0129: 要翻底層,不然真的學不完 06/11 12:32
19F:→ ripple0129: OO語言個人覺得研究架構方面的會比較實在 06/11 12:41
20F:推 Yshuan: 這跟cpmpiler相關,要去想實作,因而幫助到應用。 06/11 13:53
21F:推 Yshuan: map系和或list comprehension比較也很有趣。 06/11 13:55
22F:推 Yshuan: 你要做multi thread,就一定得看一下gil實作。我認為至少 06/11 14:00
23F:→ Yshuan: 得知道知識在哪,要用到再去細讀即可。 06/11 14:00
24F:推 ripple0129: 同意,重點就是用到再去深究,時間有限啊QQ 06/11 14:13
25F:→ bigpigbigpig: webptt.com/m.aspx?n=bbs/C_and_CPP/M.1260555706.A.CA2.html 06/11 15:34
27F:→ bigpigbigpig: 好好比較一下上面兩個 link :) 06/11 15:36
29F:→ adason: thon 概念跟寫法都有提到,書不會太厚。 06/11 15:57
30F:推 smallmac: 推effective Python 有寫過再看實力會再上一層 06/12 00:40
31F:推 hl4: 一直翻底層也不一定有用,看過兩週還是一樣忘記 06/13 22:28
32F:推 gozule: 我是用python寫Uva後,對於效能和實作細節有更深的了解 06/13 23:56
33F:→ itis0423: 但我覺得 immutable 跟你的方向可能又不太一樣,我自己 06/21 02:04
34F:→ itis0423: 認為那是滿常見到的東西,是你真的去寫個作品就會碰到的 06/21 02:04
35F:→ itis0423: 我的意思是說比起 trace code 直接想個有興趣的東西然後 06/21 02:07
36F:→ itis0423: implement 應更快可以避免類似 immutable 這類問題答不 06/21 02:07
37F:→ itis0423: 出來的可能。當然如果你願意且有興趣看他的底層 code 當 06/21 02:07
38F:→ itis0423: 然是最好 06/21 02:07