初學python可以閱讀哪些代碼?讀代碼時要做些什麼工作幫助提高?
沒有編程經驗,零基礎
嘗試讀過django,但是感覺沒有上下文讀起來很吃力,總是一頭霧水,怎樣解決?
我覺得LZ沒搞懂 書、文檔、源碼的區別。
書,是用來入門/拔高,大部分書籍都是給初學者一個整體的框架,以及語法基礎,幫你把知識串聯起來
文檔,是在有了一定基礎,隨時翻著看的。(不排除有其他語言經驗的人選擇直接掃文檔)
源碼,是用來拔高。包括了解語法知識,開始了解實際用法、經驗等等
至於你說的django,你在閱讀源碼前,你看過django書籍嗎?你看過django官方的tutorial 1~4了嗎?
所以,樓主你給我的感覺就是學習不踏實,太浮躁。
這是所有學習的忌諱!(Thank you so much @SusanChul for an awesome translation!)
我實在無法用語言描述我對Codecademy的熱愛,如果你對編碼毫無經驗,亦或者是想要再次溫習提升這一技能,在這個網站中的互動課程可以切實且按部就班地幫助你。
Python | Codecademy

如果你遇到一些問題(卡住了)不知道如何解決,可以點擊疑難解答討論專區(QA Forum)這一標籤,人們會在其中詢問一些常見的問題(比如如何關閉引號)。
Codecademy中的一些課程已經被翻譯成了中文,但是我依然呼籲並期待著是否有人能夠做一個中文版的Codecademy來幫助更多的人!
- - - - -
Python | Codecademy
Man oh man, how I love Codecademy! If you have no experience with code, or just want to review your skills, the interactive lessons take you step-by-step!

基於題主的基礎——"沒有編程經驗,零基礎",我覺得題主不太適合看源碼,應該系統性的學習Python。如果題主又想看代碼,又想學Python,我想你可能需要這個Python Cookbook (豆瓣)
Python Cookbook (豆瓣)裡面有很多很有用的code snippet,雖然簡單,但是實用。大部分情況都是先提出一個問題,然後用Python解決。題主可以一邊學Python,一邊看代碼,肯定比你看開源項目源碼爽。
如果題主要看web框架的源碼,不推薦看django,可以看看flask,也可以看看我這篇博客 Flask源碼剖析手頭有這麼幾本:1、《簡明 Python 教程》(Swaroop, C. H. 著,沈潔元 譯)2、《Python入門》(原著 Guido van Rossum,翻譯 李東風)3、《Python 語言參考手冊》(Guido van Rossum)4、《深入Python (Dive Into Python)》(Mark Pilgrim著,limodou譯)5、《Python v3.0c1 documentation》(官方手冊,有中譯)
大一的時候就思考如何讀一份陌生的代碼。最近有一些想法。
從github上獲得原代碼。
看git歷史
拖進source tree,查看提交代碼的歷史更改。
一定要跑起來
想辦法運行。不運行起來的代碼,並不能看懂。
找合適的代碼
找到合適的代碼。如果直接看nginx應該看不懂,如果看一個幾十行的http server,卻是可以看懂的,是可以讓人理解的。最重要的一點是理解代碼的歷史,理解代碼的發展過程,從小到大的過程,理解功能為什麼一步一步的添加。
代碼指紋,聯繫作者
代碼指紋,代碼不是憑空變出來的,寫代碼的人會在博客和書上留下痕迹,留下思路,留下的論文。聯繫方式,其實解決很多疑惑的辦法是直接聯繫作者。
一定要會調試
單步調試,調試列印變數。寫python,寫Objective-C很重要的一點是調試好。
畫UML
UML圖不只是沒用的圖,他們是告訴你代碼如何分析的方面,畫UML類圖。動態圖,靜態圖,類圖,部署圖,用例圖。。。。。。。。
唯物主義辯證法
唯物主義辯證法分析法。聯繫的觀點看代碼,發展的觀點看代碼,矛盾的主要方面的看代碼。詳細見唯物主義辯證法。
仿寫
這個耗費時間比較長。但是照著寫一遍,一步一步是最有益處的。
上班法
學生黨應該找個地方上班去,去找自己想做的東西的公司。
買書
知識比錢知值錢,時間比錢值錢。書可以節約很多時間。
到github上看python開發的項目
https://github.com/languages/Python
選擇哪個項目可以參照以下幾點:
1. watch和fork的次數多
2. 代碼量較少
3. 自己比較感興趣(比如我很少看web和gui的項目)最早接觸的編程語言是Python(大學開學前的假期自學的MIT公開課),工作中用得最多的也是Python,同時又是職場新人,我覺得我還是可以回答一下這個問題的。
首先,你在什麼都不明白的情況下嘗試去讀Django源代碼,是幾乎沒有什麼效果的,反而適得其反。學習任何一門編程語言,都應該遵循這麼一個步驟:0. 從網上教程中學習最基本的syntax,然後寫小程序練手,達到熟練的目的;1. 學習各種常用的庫的使用。對Python來說,就是常見的sys,os,re,urllib,socket等這類的自帶庫。而像socket這樣的庫,可能還需要你對網路有一個基本的了解,不過既然你都開始看Django了,的確應該去了解一下。在此期間,依舊需要不斷的練習。2. 在上述兩點做到之後,你應該已經可以獨立完成一份較為複雜,能夠解決一些問題的程序了,例如寫一個爬蟲,一個CLI之類的小工具。那麼接下來,你就可以去研究Django框架,學慣用Python寫一個網站了。
3. 等你熟練掌握Django之後,就可以開始閱讀源代碼了。當然,我不建議初學者上來就研究Django這種大項目的源代碼。可以先挑一些比較簡單的,比如bottle和flask。這兩個web框架屬於典型的小而精,最早的版本可能只有區區500行,閱讀起來毫無壓力,並且能夠對你理解web框架的實現有較大提高。結合一下我自己的經歷。在開始實習之前,我曾經在一家很小的基金公司當過臨時工,並用Python開發了公司的報表系統,算上前端整個實現大概用了幾千行代碼。因為公司只有兩個dev,老闆又不是技術出身(槽點挺多的一家公司,在此不表),所以code review幾乎是沒有的。我那時候寫的程序,不說編碼風格難看,和Pythonic完全沾不上關係,很多地方都是用近乎於「hack」的手法完成的,不穩定,也沒有什麼擴展性。同時,注釋風格又不統一,很多該有注釋的地方也沒有。那時候的我大概屬於step 2的完成階段左右。
之後開始實習,我才發現 ——— 自己之前寫的Python實在是TM太丑了。於是把公司筆記本帶回家,晚上用公司VPN上bitbucket上的team repository看幾個senior寫的Python,同時閱讀了bottle和requests的源代碼,並將在裡面學到的東西在自己的實習項目里付諸實踐。那也是我成長最快的一個階段。不到這一步,我根本不知道什麼叫「寫出工業級的代碼」。
現在已經工作了,依舊在堅持讀source code,每次讀都能學到新東西。一點個人的經驗之談:讀碼,尤其是Python的碼,主要看三個東西:exception是如何處理的,注釋風格,對edge cases的處理(如果有的話)。這三樣東西對寫出健壯、高效的Python代碼來說至關重要。
這裡推薦一下@7sDream的 https://github.com/7sDream/zhihu-oauth。代碼寫的很驚艷,能夠學到很多東西。如果實在沒時間讀requests的話,一定要抽時間讀讀這個。零基礎的話我實在不建議你開始就讀源代碼,python基本的語法和很多語法糖都沒有掌握的話看起來會很費勁的,我建議你先把基礎打紮實了吧,具體看什麼書可以參考quora上面的答案:http://www.quora.com/Python-programming-language-1/How-can-I-learn-to-program-in-Python?__snids__=71567478__nsrc__=1
推薦閱讀:
※編程之前是否一定要寫好偽代碼?
※如何看待程序員不寫注釋?
※你見過哪些令你瞠目結舌的Perl代碼技巧?
※為什麼有些程序員不願意縮進代碼?
※CodeBlock安裝後無法運行為什麼?無法找到編譯器?
