對於幾乎是零基礎的人,直接學 Python 編程合適嗎?

聽說 Python 非常簡單易學。


首先聲明:我的入門語言是C。

我贊成把Python作為入門語言

  1. 語法簡單明了。第一門語言,其實就是語法+Flow control,而Python的語法簡單,代碼可讀性高,容易入門。
  2. Python的哲學是「做一件事情應該只有一種最好的方法」,對於初學者規範自己的學習有很大的幫助,同時也幫助初學者能夠讀懂其他人的代碼(相比Perl的代碼簡直沒法看)
  3. 養成良好的習慣。Python對於代碼的要求嚴謹,特別是縮進(Indentation),對於初學者養成良好的代碼習慣很有幫助。
  4. Python的語法設計非常優秀(反面例子PHP),思想也比較現代,可以更快的理解現代編程語言的一些思想。
  5. Python仍然是傳統基於Class的OO(對比Javascript基於prototype的OO),和Java,C#,Ruby一樣,比較大眾。從Python去學Design Pattern也是比較合適的。
  6. Python的內置數據結構清晰好用(C提供的略少,PHP的略亂),同時Library比較多,優秀的代碼很多(相比PHP就有許多爛的代碼,誤導新人)。
  7. Python免費的書很多(英文),可以找到許多資料啃。同時(國外)社區比較集中,有問題可以向高手問。
  8. Python在其他領域,比如科學計算等等有廣泛的運用,對於學一門語言作為工具來說,Python很合適。

說說缺點把:

  1. 語法:這是一把雙刃劍,雖然Python語法簡介優雅,但是再去學C的時候,很可能會出現忘掉「;」等等問題(我自己沒試過,猜的)。
  2. 國內應用有限:雖然Python受到了追捧,尤其是國外,但是在國內來說,應用還是有限,純粹靠Python吃飯要比C/PHP難一些。
  3. 動態(dynamic-typed):做開發當然動態語言很舒服,但是如果初學一門動態語言,很可能會忽視掉一些基礎。
  4. 版本:2.7和3.0是不兼容的,對於初學者可能會造成一些困惑。

想了半天就想了這麼點缺點,總體來說優點 &> 缺點。


在眾多高大上的自學指導中,嘗試做一股清流,把要講清楚的都講清楚,除了一堆資料之外,你能在學之前就有一個非常明顯的結果傾向。

如果你對職業或者規劃還有疑問,請你查看下:https://www.zhihu.com/question/20039623/answer/201115937

本文以《小白帶你學Python》為內容方向,試圖在繁雜的信息里,給你找到你學習Python的動力和路徑,本文更新於2017年7月21日17:30;

你想更深入了解學習Python知識體系,你可以看一下我們花費了一個多月整理了上百小時的幾百個知識點體系內容:

【超全整理】《Python自動化全能開發從入門到精通》筆記全放送

==============正文分割線===========

在前文中我們提到:

Python崗位有哪些呢?主要的崗位有這些:

Python全棧開發工程師(10k-20K)

Python運維開發工程師(15k-20K)

Python高級開發工程師(15k-30K)

Python大數據工程師(15K-30K)

Python機器學習工程師(15k-30K)

Python架構師(20k-40k)

目前應用最多的:全棧開發、數據分析、運維開發,今天我們就以這三個重點的崗位來做一下自學Python的規劃,希望你在學之前就能有結果的來走得更遠。

在這裡我們建議大家用知識投資的《道、法、器、術、勢》五個工具來完美的執行和落地自學Python,好了,廢話不多書,我們來開始:

————————

第一:道——明確目標

其實很多人在學習Python之前很少想這個,因為很多人說:現在Python很火呀,所以我么需要學。這個其實跟你自己沒有什麼關係,例如:你曾經想做一個網站不會開發,現在可以做了,現在Python很火併且你也要學來找工作,未來Python很火,我具備了Python的技能會不錯。

在一生中,我們或多或少總會卡到目標上。在一些我們擅長的領域,我們會有明確的目標,並且積極指導別人:親!幹事之前,你要先定目標啊!

王健林的小目標,大家在朋友圈也都看過了,他會定先掙它一個億。

第二:法——做好你學習Python的系統規劃

1.目前市場需求主流的崗位里,你得選擇一個其中你目前看來可以學,並且最敢興趣學習的方向;

2.在方向選擇好後,對照招聘網站:拉勾、智聯、Boss直聘等網站的崗位要求,進行學習內容的統計與大概的記錄;

3.分模塊的計劃你學習這個模塊的時間和完成的大概目標;

4.列出你可能出現的學習誤差與為之準備的應對方案;

好了,你發現沒有,其實任何學習重要的不是有什麼資料,核心是如何學,學多久,有沒有時間限制,遇到過自己多次學習某個內容或者其他人學習某個內容,最關鍵的一點是在起步階段,開始屬於激情期,激情在前面釋放越多,後面的持續力就很弱,好了這就是關於學習計劃。

廢話說多了,那我們來看看一個普適性的學習Python的流程;

1天——下載並安裝好學習環境:到www.python.org網站上下載一個python3.0以上的版本。我建議初學者,不要下載具有IDE功能的集成開發環境,比如Eclipse插件等。

4周——下載一些python的學習文檔,比如《簡明Python教程》,《笨辦法學Python》等等。通過學習語法,掌握python中的關鍵字語法,函數語法,數學表達式、變數、數據結構、語法等等等

1. 了解Python是什麼,都能做些什麼?

2. 知道什麼是變數、演算法、解釋器

3. Python基本數據類型

4. 列表和元組的操作方法

5. 字元串操作方法

6. 基本的字典操作方法

7.任何知識它的基礎知識都是有些枯燥的,現在我們就可以動手來做一些邏輯層面的東西了。掌握 if、else、elif、while、for、continue、break和列表推導式等這些語句的使用,還有程序中的異常處理。

2周——看完基礎後,就是做一些小項目鞏固基礎,python具備很好的交互學習模式,對於書本上的例子我們可以通過交互平台進行操練,通過練習加深印象,達到學習掌握的目的。

2周——通過以上三個步驟的學習後,我們大致掌握了python的常用方法、關鍵字用法以及函數語法等。接下去的學習上,我們就可以著手學習常用模塊的使用, 比如os,os.path,sys,string模塊等。我們可以在交互環境中先熟悉使用其中的函數,如果遇到函數的使用上的問題,可以參考python 安裝後的自帶chm幫助文件。

2周——為了更好得掌握python,我們的學習不能只是停留在學習一些語法或者api階段。在此階段中,我們可以嘗試用python解決我們項目中遇到的一 些問題,如果項目不是用python開發的,那我們可以想想能不能用python製作一些項目組可以使用的一些工具(utility),通過這些工具簡化 項目組成員的任務,提高我們的工作效率。如果沒有項目,我們也可以自己找些題目來自己練習練習。

2周——Python庫是Python的精華所在,可以說Python庫組成並且造就了Python,Python庫是Python開發者的利器,所以學習Python庫就顯得尤為重要:

2周——經過以上鍛煉後,我們的python知識水平肯定是越來越高。接下去的學習,我們就要更上一層樓。為了學以致用,真正能應用於項目開發或產品開發,我 們還必須學習企業應用開發中必須要掌握的網路和資料庫的知識。在此的學習就不光是python語言本身的學習了,如果之前沒有學習和掌握很網路和資料庫知 識,在此階段我們可以藉此機會補習一把。

3周——到此階段,我們已經是真正入門了。在接下去的工作中,就是要快速地通過我們的所學來服務項目了。在此階段,我們除了掌握python自帶的模塊外,我 們最好在掌握一些業界廣泛使用的開源框架,比如twisted、peak、django、xml等。通過熟練使用它們,達到閃電開發,大大節省項目寶貴時間。

《Python 核心編程》,介紹了 Python 的一些具體領域的開發方法;

《Python 網路數據採集》,很簡單的爬蟲入門書;

《利用 Python 進行數據分析》,介紹了 Pandas 和 NumPy 的用法;

《Flask Web 開發》,如何用 Flask 寫一個博客。

第三:術——你具體的學習手段

1.每天你計劃學習多少時間?例如一天必須學2小時,每天堅持;

2.每個階段的計劃拖延時間不能高於多少時間?

3.如果一個階段不順利如何調整?

其實很多時候,並不是資料不夠多,而是本身的學習思路和計划出現了問題,那麼其實最後學習Python的結果會變成:懂得了很多道理,收集了很多資料,依然學不好Python。

第四:器——學習的工具和素材

在知乎的所有學習的評中,出來最多的就是書、視頻、網站一大堆,很多人覺得非常的贊,確實如此,但是回頭看,你的網盤裡躺著的500G視頻,還是沒有讓你學會Python,我給大家的建議是:少為多,學為多,做為多,完成為多,而不要做伸手黨。

在主流的學習中,按照學習素材來分,我們分為這幾大類:

——真人:有人給你準備好素材,過程計劃,內容,讓後你只要用心學就行,這個就是大家常說的培訓,屬於懶人成長式。(線下培訓班)

PS:不做任何推薦

——視頻:有人把學習的過程錄製好,你只要按照要求跟著做就行,出現問題你無法及時找到。(真人視頻、代碼視頻)

Python入門_Python入門教程_python入門視頻教程-慕課網

http://blog.fishc.com/category/python

https://ke.qq.com/course/134017#tuin=cd72585

——書本:有人把學習過程幫你寫出來,你只需要跟著書本的過程過就行,然後按照要求學習(實體書籍、電子書)

《簡明Python教程》

《笨辦法學Python》

https://learnpythonthehardway.org/

https://www.kancloud.cn/kancloud/python-basic

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

書籍推薦如下:

————————————————————————

下面我們推薦6本高分書籍給大家,希望大家學習愉快:

1.Python編程:從入門到實踐

豆瓣評分:8.8

內容簡介:本書是一本針對所有層次的Python 讀者而作的Python 入門書。全書分兩部分:第一部分介紹用Python 編程所必須了解的基本概念,包括matplotlib、NumPy 和Pygal 等強大的Python 庫和工具介紹,以及列表、字典、if 語句、類、文件與異常、代碼測試等內容;第二部分將理論付諸實踐,講解如何開發三個項目,包括簡單的Python 2D 遊戲開發如何利用數據生成互動式的信息圖,以及創建和定製簡單的Web 應用,並幫讀者解決常見編程問題和困惑。

豆瓣書友推薦:很好的入門書,簡潔全面,適合小白。learning python之類大磚頭太不友好。這本雖然有些地方講得不深入,但是對新手友好。

————————————————

2."笨辦法"學Python

豆瓣評分:8.0

內容簡介:本書是一本Python入門書籍,適合對計算機了解不多,沒有學過編程,但對編程感興趣的讀者學習使用。這本書以習題的方式引導讀者一步一步學習編程,從簡單的列印一直講到完整項目的實現,讓初學者從基礎的編程技術入手,最終體驗到軟體開發的基本過程。

Zed Shaw完善了這個堪稱世上最好的Python學習系統。只要跟著學習,你就會和迄今為止數十萬Zed教過的初學者一樣獲得成功。

這本書會讓你的每一分鐘投入都有回報。Python是世界上最強大、最受歡迎的編程語言之一,很快你就會成為一名Python程序員。

豆瓣書友推薦:花了一周的時間看完,在以前的基礎上零零碎碎學了一些新的東西,還算是有所收穫,但是前面講的很基礎很簡單,到ex40之後突然難度增加不是很懂在講些什麼。

————————————————

3.Python學習手冊

豆瓣評分:8.1

內容簡介:《Python學習手冊(第3版)》講述了:Python可移植、功能強大、易於使用,是編寫獨立應用程序和腳本應用程序的理想選擇。無論你是剛接觸編程或者剛接觸Python,通過學習《Python學習手冊(第3版)》,你可以迅速高效地精通核心Python語言基礎。讀完《Python學習手冊(第3版)》,你會對這門語言有足夠的了解,從而可以在你所從事的任何應用領域中使用它。

豆瓣書友推薦:用了兩周的時間將這本書啃了一下,還有200多頁的電子版沒看,但還是忍不住先來評論。既是總結自己,也想幫助別人。

本書總評:

優點:解釋詳細,例子豐富;關於Python語言本身的講解全面詳盡而又循序漸進不斷重複,同時詳述語言現象背後的機制和原理;除語言本身,還包含編程實踐和設計以及高級主題。

缺點:有些厚;翻譯不佳;代碼練習題很少;

————————————————

4.Python基礎教程

豆瓣評分:8.0

內容簡介:本書是經典教程的全新改版,作者根據Python 3.0版本的種種變化,全面改寫了書中內容,做到既能「瞻前」也能「顧後」。本書層次鮮明、結構嚴謹、內容翔實,特別是在最後幾章,作者將前面講述的內容應用到了10個引人入勝的項目中,並以模板的形式介紹了項目的開發過程。本書既適合初學者夯實基礎,又能幫助Python程序員提升技能,即使是 Python方面的技術專家,也能從書里找到令你耳目一新的東西。

豆瓣書友推薦:寫得挺生動親民的,很好的入門書。

————————————————

5.Python核心編程

豆瓣評分:8.0

內容簡介:學習專業的Python風格、最佳實踐和好的編程習慣;

·加強對Python對象、內存模型和Python面向對象特性的深入理解;

·構建更有效的Web、CGI、互聯網、網路和其他客戶端/伺服器架構應用程序及軟體;

·學習如何使用Python中的Tkinter和其他工具來開發自己的GUI應用程序及軟體;

·通過用C等語言編寫擴展來提升Python應用程序的性能,或者通過使用多線程增強I/0相關的應用程序的能力;

·學習Python中有關資料庫的API,以及如何在Python中使用各種不同的資料庫系統,包括MySQL、Postgres和 SQLite。

豆瓣書友推薦:了解Python語言方方面面的不錯選擇,雖然版本有些舊,對於較晚接觸Py的人來說,一個「副作用」是可以更多地了解Py的過去。

————————————————

6.流暢的Python

豆瓣評分:9.5

內容簡介:本書由奮戰在Python開發一線近20年的Luciano Ramalho執筆,Victor Stinner、Alex Martelli等Python大咖擔綱技術審稿人,從語言設計層面剖析編程細節,兼顧Python 3和Python 2,告訴你Python中不親自動手實踐就無法理解的語言陷阱成因和解決之道,教你寫出風格地道的Python代碼。

豆瓣書友推薦:非常好的python進階書,翻譯的也不錯,基本上沒有錯誤。協程和元編程死了一堆腦細胞。之前也看了不少文章宣傳py3,但看完這本才最終決定遷到py3。

————————————

——新聞:關於學習的碎片化的諮詢和知識,來用於你的個人成長(微信、知乎、諮詢流)

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

http://python.jobbole.com/

http://www.magedu.com/pythonxx

http://www.pythontab.com/

第五:勢——學習的心態和狀態

1.任何一個學習的過程,看起來很爽,但是做起來就未必了,老掉牙的堅持是必備的。

2.教程選擇一到兩個就OK了,不要求多;

3.多寫代碼,盡量讓代碼擼爽你;

4.盡量多出錯;

————————————

最後給大家貢獻個一月學會Python基礎開發的訓練計劃:

時間分為4周,全部自學,僅提供大綱,適用於Web方向:

1、第一周:讀完《笨辦法學Python》;

2、第二周:寫個爬蟲,需要深入了解re、sqlite3、Queue等幾個模塊,做個簡單爬取;

3、第三周:學習一種Web開發框架,推薦Flask、webpy、Django之類的,學個資料庫,寫個簡單的web應用如博客;

4、第四周:給博客做個小功能並走完測試和伺服器上架;

————————

以上為關於如何自學的一個流程,希望大家拍磚!


我作為一個真正的零基礎,在2012年初,抱著無知的勇氣,開始學習python。

我犯的最大錯誤在於,選擇了語言,卻沒有選擇自己想做什麼。當時看完了Learn python the hard way和一本600餘頁的書,一頭霧水不說,還是什麼都不會做。對,特別是那本書,上面寫的大部分東西都不知道是幹嘛使的。

然後此事就作罷了。

今年,突發奇想,是不是可以做個網站玩。然後翻出django book,看了幾章後,茅塞頓開,以前看的600多頁一夜之間就懂了大半。

對於我這種小白,python的簡單反而是個障礙。

強烈建議,想清楚做什麼,再決定學什麼。


我們學校本科編程入門(教不會編程的人編程)就是用Python。

據說是因為python的syntax 比較簡單和簡潔,初學者不會被一些很細節的東西(語法等)綁住了手腳,從而讓他們更容易理解編程裡面的很多概念和更大的東西。

那門課貌似每周三小時,歷時四個月。到三個半月的時候,就可以寫一些小項目了(前三個項目更像script,最後一個項目是自己設計和寫一個text-based 遊戲,涉及到 Tkinter,很有趣)。其中有很多學習金融,精算,生物,甚至藝術的學生學習,所以說的確很簡單易學。

但是因為Python語法簡單,所以很多概念還沒有。所以建議掌握了Python一陣可以開始Java。

我們學校大二學軟體編程什麼的,就是Java了。然後下學期學計算機系統就是Linux, 和 C了。

綜上我建議Python -- &> Java -- &> C/C++


基本上有人問我初學編程選什麼語言的時候,我的回答基本上都是 C#。

首先C#是強類型語言。語法基本上和C和Java都差不多,學會之後轉到C和java很容易(轉到python就更容易了)。而且.NET類庫也很多。

然後C#可以讓你同時熟悉過程式編程和函數式編程,這個對理解其他的程序語言也是非常有益的。

最重要的是:

配置C#環境:下載VS,安裝,完成。

配置Python環境:下載Python,安裝,配置環境變數,下載IDE/編輯器,配置編譯腳本,完成。

第一次接觸編程的人通常是做不來下面那些事的吧。


Python入門的好處是你可能很快地喜歡上編程,因為它很難做到勸退。

但是這樣一來,你可能對絕大多數語言都會失去興趣,如果你沉迷於python的自由——那種徹底的一切皆對象的話。


非常適合,理由什麼的我就不多說了,網上到處都是。

我就說一個事實:我讀書的時候實驗室的所有姑娘們,都學會了Python。


雖然我也是從C一路學上來的,並且現在吃的是C這碗飯。但我也認為從Python開始是個不錯的選擇。

分析計算機問題,追求的就是自頂向下,逐步求精。而我們日常教學中普遍採用的C → C++ →JAVA 則完全是反其道而行之,使人重細節而輕框架,在無謂的地方做過多糾纏。

PS:斯坦福的計算機工程專業現在也是從Java開始講起,也許有朝一日,這門課會從Python/Ruby/Perl/Groovy開始吧。


合適


完全可以!

買一本好書,選一個趁手的ide。

推薦看看。

如何通過學習python學會編程

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


最好先c吧....


自學的話,Python 是很好的語言。但是總覺得學 Python 需要一點基礎。而且 Windows 上面學 Python 總覺得有點奇怪,最好還是 Linux。

對於沒有邏輯、流程概念,沒有基本的面向過程編程基礎的人來說,我覺得 Pascal 作為教學語言更好。

Python 的好處在於學了往往有用……


Python相對來說學習比較簡單,比較容易入門。想要快速入門可以按照下面的方法去做:

1. 發現自己的興趣,比如:你想做一個小遊戲,那好,就以這個為目標去研究python gui

2. 多做實例,編程實戰的重要性不用我說了吧。

3.找一個好的python學習社區和群,和網友交流學習經驗,探討遇到的問題。順便給你推薦幾個:

PythonTab:Python中文開發者社區門戶 最好的Python中文網站;

Python基礎教程|Python教程|Python入門

http://bbs.pythontab.com python論壇


我是先學的C#,大約一年以後才學的Python。我覺得先學Python能夠讓你更好的理解編程這件事情。

1)Python的代碼非常接近人類語言,讀起來像詩歌一樣妙曼。

2)Python的數據結構足夠新手使用,GC機制也比較完善。

3)Python可同時用於構建C/S應用和B/S應用,一次學習,兩面使用。

4)大量開源Python類庫可用於編寫各種短小的應用,降低初學者的挫敗感,另外,開源類庫也是最好的教科書。

等等等等……

總之,我建議編程初學者先學Python,然後再考慮C#、Java中的一門,最後再學習CC++。當然,有很多計算機專業的人會反對這種路線,並認為是本末倒置的。


說到簡單易學,C# 不比 Python 難學。

而從 .NET 平台入門折騰的時候還要少些。

但是學 Python 你可以接觸一些 C# 以外的編程思維。

-------------------------------------------------

上面是題外話。

不管有沒有基礎,直接學 Python 都是合適的。


唯一的問題在於,你先從Python入手,用熟了以後再去接觸C/C++,你可能會有抵觸情緒...好比人走出自己的舒適區

而先經受了C/C++的洗禮再接觸到Python的話就會覺得進入了一個全新的世界,爽得一B


python確實能做GUI之外的大多數事,但是我不推薦

我推薦pascal練滿初級演算法思想和數據結構-&>Java練入門-&>C/C++大致了解到new delete和面向對象,基本能看懂思路


python很好,但是對於一些性格固執和先入為主的人來說,不適合作為第一門語言,因為第一門語言會養成你的一些思維定式,比如python的縮進和別人都不同,這並不是不好,只是有些固執的人會不接受第二種寫法,因為別人都是{}和begin end來的

我建議pascal


靠python找到工作人表示,別糾結了,趕緊學吧~


看了上面的答案我總感覺有點怪怪的,比如有人建議「Python -- &> Java -- &> C/C++」,我的學習過程好像是反過來的,C++-----&>Java-----&>Python。當然這也和我個人有關,我本科專業是電氣,入門編程學的C++,研究所才轉到cs,自學Java和Python。我個人覺得,C++是個好語言,雖然學起來比較吃力,尤其是入門,但是硬啃下來對於以後都有好處。


推薦閱讀:

如何成為一名真正的程序員?
如何提高英語口語表達能力 ?
自學程序員要多久,如何找工作?
如何從零開始學習義大利語?
自學托福/GRE,難度相對於報班學習怎樣?

TAG:Python | 編程 | 自學 |