初讀「Python基礎教程」自學Python完全讀不懂該如何是好?

從來沒學過編程,讀教材讀到一頭霧水、不知所云,突然很有挫敗感。我不靠 IT業謀生賺錢,也已錯過專業培訓的機會,但不想放棄曾經的理想,編程零基礎應如何補救?謝謝!


看了題主的描述我大致能夠理解題主現在的狀態了。記得我剛開始接觸編程是在高考結束因為被「軟體工程」專業錄取所以在假期里自學Java。當時的狀態和題主差不多,不知道為什麼代碼究竟是怎麼執行的(記得當時還去百度知道上問程序語句的執行順序=_=),不知道為什麼要編譯,為什麼寫出來的程序都是黑框框,雙擊還無法運行……後來大概有半年時間就好了,多少算是積攢了一些經驗,拿出來和題主分享一下。

方法上

如果感到迷惑就先不要考慮編程的「思路」,先做到把代碼讀懂。書上的代碼是循序漸進由少到多的。針對書上的每一個(是每一個噢~)常式,要做到從頭到尾每一條語句的每一個關鍵字都明白是什麼意思(書上明確指出不用理解的忽略之)。然後合上書本將能夠實現相同功能的代碼默寫出來。同時適當的改改代碼,比如刪掉某一條,加上某一句之類的,來加深理解。注意千萬不要背常式。只要是功能一致,掌握方法就算完成目標,背下來毫無意義,並且不會有所提高。之後一段時間後隨著對代碼理解的加深會漸漸的自然地理解寫程序的「思路」。感覺就像是學完英語語法背好單詞後,自然就會寫文章了(當然寫的不好)。在學完第一本書後,就嘗試著獨立完成一個小程序,貪吃蛇、俄羅斯方塊之類的,python的話可以嘗試一下寫個文本處理的小程序。在這個時候再系統的考慮「思路」是一個不錯的選擇。《Python基礎教程》這本書後邊有大量的實例,在寫那些實例的時候也是個不錯的時機。

此外還有一點,一開始肯定會有大量的名詞看不懂。碰到不懂的名詞盡量上網去查,來知乎問也可以。不要積攢太多,不然很容易產生理解障礙。這也是一個學習的過程。編程並不僅僅只有代碼,還有與之配套的其他知識,有一些是沒有專門書籍系統講解的,需要自己積累。

理解上

寫程序的思路在初學的時候平時的思想完全可以硬上(當然深入以後就不行了)。舉個例子,包餃子.py可以這樣寫:

# 引入廚房中的所有工具

import 廚房

# 之前前三句寫錯了,不小心把別的語言的語法混進來了,已糾正。中文括弧()內的是術語。

# 此處的「肉餡1」肉餡1是一個代號/名字,用來控制/獲取變數。就像遙控器一樣。

#「方法名(參數1, 參數2, ...)」的寫法表示用一定的的輸入(參數),通過「方法名」所代表的一系列

# 運算/操作(此處我們並不知道具體是什麼)。有時它會產生一個結果(返回值),有時不會。

# 此處是某種肉餡。第一句可以解釋為:

# 用一個叫做「肉餡1」的名字(引用)來代表通過以「豬肉」為「材料(參數)」的方法「做肉

# 餡」所得到肉餡。

肉餡1 = 做肉餡(豬肉)

# 「XX.YY」可以理解為XX的YY, 以下就是廚房的調料

調料1 = 廚房.調料

# 同第一句

麵糰1 = 買麵糰(錢)

餃子皮們 = 做餃子皮(麵糰1)

生餃子們 = 包餃子(餃子皮們, 肉餡1)

# 「def 方法名(參數1, 參數2, ...):」定義了一個指令序列,用「方法名」代表,以方便以後需要時

# 直接使用不必重複書寫。上邊用到的「做肉餡」也是這麼定義出來的。

def 煮餃子(生餃子):

# 產生一個鍋

鍋 鍋1

下鍋煮(生餃子, 鍋1)

# 這個東西代表之後縮進的代碼重複執行三遍

for 次數 in [1, 2, 3]:

加水(鍋1)

熟餃子 = 出鍋(鍋1)

# 返回最終的結果

return 熟餃子

熟餃子們 = 煮餃子(生餃子們)

# 輸出

print 熟餃子們

以上是一個以日常生活為例的例子。不過有的人對這類不太恰當的比喻東西不太敏感。再補充一個從數學的角度來看的。在學校里上數學課時定義過函數,和程序中的函數的概念非常接近,具體區別看這裡(http://www.zhihu.com/question/20385250)。上邊提到的「方法」就是程序里的「函數」(同義詞)。數學裡我們這樣寫:

f(x, y, z) = x*2+y-z

m = f(x, y, z)

寫作Python代碼就是

def f(x, y, z):

return x*2+y-z

m = f(x, y, z)

看出區別了嗎?我猜想程序中的這個寫法就是從數學中借鑒過來的從這個角度來講程序也可以簡單粗暴的理解為用某種特殊語言描述的運算過程。和平時寫數學作業其實類似。只不過其中多了些「print 「Hello world」」之類的特殊語句。思路還是差不多的。

完全可以看做是現實世界中一步一步來的思路。這叫「面向過程」的編程方法^_^。熟悉了以後其實也沒什麼,但一開始確實會有些轉不過彎。有一個習慣的過程。

最後,Python是一門很有親和力的語言,適合非科班入門(當然Python也很強大)~《Python基礎教程》這本書還是不錯的,與同類書相比算是最接近面向零基礎了,可以堅持看下去。至於零基礎什麼的……那些寫代碼的老宅男已經脫離人民群眾太久了……鬼知道他們的零基礎是什麼……

一開始出現茫然不知所措的現象其實是一個普遍的現象。

寫程序是個非常有趣的是,希望題主堅持自己的夢想~


交流才是王道。

初期自學最佳的方法就是找一個會的人,纏上他,問他應該去看什麼書,遇到不懂的就問他。

不然,你只是找到一本別人都說好的教材,依然不可避免地碰到難以解決的問題。

人與人的直接溝通效果要絕對強於看書、看視頻之類的單向學習。

歡迎你來我們教室一起學。

http://crossin.me

微信:crossincode

qq群:295921816


我覺得,樓上說的都不是關鍵。

關鍵是題主看的那本書確實不適合初學者。怎麼說呢,那其實是一本初學者看著吃力,有經驗者看著沒勁的書籍。沒錯,就是一本爛書。


這本書不是很適合0基礎的朋友,建議你看看

像計算機科學家一樣思考Python

Python編程實踐

Python核心編程(第2版)

學習編程,不能只學語法,需要學習編程思路,學習解決問題的方法。

不然會出現書可以看懂,但自己不能寫代碼解決問題。

請看黃哥本人寫的文章

如何捅破python編程的那層紙

article/pythonstudy.md at master · pythonpeixun/article · GitHub

剪刀石頭布小習題三種語言python2、php、go代碼

article/jdstb.md at master · pythonpeixun/article · GitHub

一段小代碼說明@property裝飾器的用法

一段小代碼說明@property裝飾器的用法

如何捅破python編程的那層紙之二

如何捅破python編程的那層紙之二

如何捅破python編程的那層紙之三

如何捅破python編程的那層紙之三

黃哥python遠程視頻培訓班

article/index.md at master · pythonpeixun/article · GitHub

黃哥python培訓試看視頻播放地址

article/python_shiping.md at master · pythonpeixun/article · GitHub

加油!


0基礎的話,是要熬一段時間的。我們計算機的大一時很多0基礎的同學也是雲里霧裡。

建議先找一本計算機導論讀一讀,主要理解一下CPU與內存的關係、馮諾依曼結構、2進位與數制轉換吧。

然後,個人覺得Java比較適合作為第一門語言,因為設計硬體的內容較少。特別推薦《Head First Java》,有趣也易懂。

關於教材,國內的計算機教材都不太好,語言晦澀且觀念陳舊。教材首先英語版,計算機還是英語最精準。譯本也不錯,不過專業辭彙常錯譯。國內的教材,特別是高校教授寫的最次,不過也有優點,就是基礎教材涉及硬體的內容和很多考試的偏門點都講得透。

最後說一個學習心得,一本書看不懂了,應該找相同內容的其他作者的書對比著看。看不同的人對同一問題的表述,這樣更容易明白。

祝學習順利。


2樓說的很對。另外,補充一點個人觀點。我非計算機專業,對編程比較喜歡,學校教C的時候用的 譚浩強 的C語言基礎,初學的時候感覺無比枯燥,覺得很簡單,並且沒有用處,直至最後老師布置小項目做時才覺得原來學的東西可以這樣用。豁然開朗。

然後自學Java的時候,我就藉助Android開發教程來學習,感覺也挺好,在後來遇到了RoboCode,電驢上有下載的,感覺這種邊做邊練項目的經歷對編程很有用。學語言,能邊做項目邊學是最好的。

另外我也正在自學Python,不過,大三了,課外時間不是很多,感覺進度很緩慢。在此推薦一本 lovely python的書,裡面通過應用需求學習,感覺也挺不錯的。


完全讀不懂不太可能吧,推薦從《learn python the hard way》這本書學起,完全零基礎學習python


憑著大學的C語言基礎,看到了第七章,實在看不動

簡直懷疑這書用金山詞霸翻譯的吧

翻譯這麼渣,已經無力吐槽,

第一次看到外文的技術類書籍這麼不靠譜

樓上有位說的很多

作者的思路太跳躍,一個問題的框架和概念,還沒有講清楚,就跳出很多細節和注意事項、背景信息(其實沒用,有點炫耀博學的趕腳),干擾你的思路,越看越暈

有一類高手屬於只會做,不會說的那種,懷著最大的善意相信是作者是這種類型

太坑了,

這本書在知乎和一些推薦帖子里名氣很大,口碑也好,

開始以為是自己的原因,理工科忘了太久,硬撐著看到第七章,上豆瓣上來一看,原來還是有人說實話的,那些推薦的有多少人是自己真正看過的這本書的。


0基礎不推薦python基礎教程。裡面的語法講的快對新手比較吃力推薦先從 與孩子一起學編程 起。


首先建議先把縮進弄好,沒有縮進代碼塊要怎麼看出來結構層次啊,學習Python建議你去黑馬雲課堂,裡面的python教程挺好的,而且都是免費提供的。還有一個網站是教Python的,可以直接在上面寫代碼Learn | Codecademy,這個是國外的網站,國內的話可以去實驗樓學習,Python是可以運行的偽代碼,所以不用擔心學不會,加油


我也是零基礎學,幸好看的第一本書是python學習手冊(第四版),感覺還好,基本類型一看就懂,後面到類 高級話題才看不懂


6.00.1x Course Info

剛上完這個網路課,MIT公開課Introduction to Computer Science and Programming Using Python,推薦前面幾周的入門課


題主,我推薦本更簡單的書吧。

這本書初中生都能讀

題主說的python基礎教程,還有這本父與子我都讀過,零基礎初學者可以看父與子小卡特這一本,難度很親民你看就知道了~~


題主說的這本《python基礎教程》我看過,前六章還是比較簡單易懂的,初學者學起來也應該沒問題。從第七章 類(對象)開始,講的確實讓初學者雲里霧裡。其實對於入門級別編程來說,對象是一個很容易理解的概念。但這本書思路確實把簡單的東西弄複雜了。作為對比我上面推薦這本父與子就解釋的很貼切易懂。從第七章如果讀不下去,可以換我這個父與子讀讀,他把函數,類(對象),模塊具體是什麼解釋的很通俗易懂。

第七章確實講的太差了,主要是思路差,學過的能讀懂他講了一大堆繞了一堆是什麼意思。而初學者根本就是看不懂,雲里霧裡很正常。如果父與子這本書覺得太簡單,還有一本《python編程,從入門到實踐》講的也不錯


python基礎教程 你注意看看前言 應該是給程序設計基礎的人員初學python的

可能書看錯了


你確定他是在看書嗎 ,書都反了


推薦閱讀:

對於剛畢業的程序員,加班重要還是自學重要?
程序員新人如何在業餘時間提升自己的專業能力,該提升哪方面的?
如何知道自己是什麼級別的前端程序員?
IT 人士都用什麼殺毒軟體?
現在學機器學習會不會成為下一個通信的犧牲品?

TAG:編程語言 | Python | 編程 | 自學 | IT行業 |