天天看點

Python入門的三大問題和三大謊言

Python廣告,鋪天蓋地,小白們霧裡看花,Python無限美好。作為會20幾種語言的程式設計愛好者,我先說說如果入門python應該想好三大問題,并且在此戳穿三大謊言。

Python廣告,鋪天蓋地,小白們霧裡看花,Python無限美好。作為會20幾種語言(BASIC Foxbase/pro VB VC C C++ c# js typescript HTML ArduinoC Delphi VBA VB 彙編 scratch java swift python sql vbscript ...)的愛好者,我先說說如果入門python應該想好三大問題,并且在此戳穿三大謊言:

問題一 是不是興趣?

确認你不是被短期販賣焦慮的廣告撩動的一時沖動,就像我雖然不是程式員但堅持寫了二十幾年程式,這不是一時興起能堅持下來的。如果有強烈使命感,真是感興趣,笑看本貼後,好好看我其它的文章學好程式設計,因為誰勸你也沒用。判斷标準就是你平時是否對科技類産品的愛好能長期堅持。否則請沉下心來,仔細往下看。

問題二 用來幹嘛?

程式設計語言就是萬能工具,同一種語言,同一種夢想,這是不可能的。

1. 萌懂高國中生。

考慮到中國學生的現實,如果你是聯考前的學生,學習python對于純參加聯考學生的意義不大,學好python可以拿幾個程式設計,人工智能比賽的獎是沒問題的,擇校和申請海外名校有一定幫助,但要投入一定的精力,高中生的邏輯思維已成形,正是形成社會型、批判性思維的關鍵時刻,過份的邏輯可能會形成刻闆映象,可能不利于此時應該成形的社會觀、世界觀、人生觀的形成,想靠程式設計促進邏輯思維是天方夜譚,收效不大。

2. 無敵的初一(二)和國小生。

此時的孩子天馬行空,STEM教育反而應提前布局,通過學習Python來了解基礎的文法,的确可以促進孩子擴充解題角度,提高邏輯思維,培養規則意識。有人質疑這會抹殺孩子的想象力,大錯特錯!中國教育太注重1+1是如何算出來的,天天做計算天天練(shit!),難道這些簡單的算式題不都應該交給計算機去做麼?學習程式設計後這些死算硬背的東西程式設計語言自會處理好,孩子發揮想象空間大了,她會想用這樣看似簡單的語句組合搭建能解決問題的系統。在此,建議注意基礎的學習,應用型技術比如WEB網站,動畫制作等可以憑興趣學點即可。此時學習切不可貪多求全,因為沒有必要,教育訓練機構謊言之一:誇張的說python20年不過時!Oh my god,牛叔我學習的語言中已有一半已不複流行,微軟曾經力推的vbscript當時幾乎與JS二分天下,還不是泯然衆人矣,但學習好基礎是重點,千變萬化均在其中,牛叔初看python文法就在一周内做出了商用智能儀表網站,學習成本幾乎為0。

3.浪漫的大學生。

無論什麼專業,咱啥也别說,分點談戀愛的時間,學點python考個計算機二級證書,未來無限好,好處少不了。理工科、金融經濟學的學生少不了資料分析,同樣的論文你用excel做比用python差了不止一個檔次。文科學生,用python做個語義分析、文學史比較、爬個文學網站,藝術舞蹈類以後搞自媒體學點技術美化下視訊、B站、淘寶網站也沒壞處。

4. 高逼格的商用系統支援與開發。

python本身就是殼語言,作為linux體系的從業人員無論是系統支援還是系統開發,均建議毫無保留的要學習,對國内微軟體系的從業人員,除了純技術的程式員,大部分傾向于咨詢方向,其實學不學問題不大。

5. 時髦的手機物聯網開發。

實話實說,目前python在移動前端的優勢并不大,涉及後端開發api接口、網站等方面,還是簡約不簡單。教育訓練機構謊言之之二:python是開發APP,大型遊戲的語言,還說某寶某陌某微APP是python開發的。基本上是扯***。服務于APP和遊戲的API網站是用python開發的我信,大品牌安裝到手機上的APP程式真心很少用python來寫,遊戲的邏輯部分用python寫的也有比如:文明四,網易一些網遊,但核心引擎都是外采或用C語言寫的以供python調用,python能開發APP不假,但由于開發,部署,功能都不太友善,很少被大廠去使用寫APP。同樣,物聯網應用也有把python寫入晶片的騷氣操作,比如MicroPython。但絕大部分python還是作為測試工具、API平台的編寫語言,而不直接往終端裝置裡寫程式。 Python隻是天上那一朵雲,你的裝置用的雲,是它開發的。

6. 提升辦公技能。

這就到了我們第三個謊言:python運作效率高,能瞬間處理幾百個表格,我學會python後把原來十幾個小時EXCEL工作量幾秒就完成了。debat這個慌言這分兩塊:

首先從python來講,能提升辦公技能完全不假,處理資料卻不是最快的,它的代碼運作效率在程式設計語言中最差。它本身是由C語言編寫也是解釋性語言,是以對于運算要求高的深度神經網絡和3D遊戲程式需要編譯或轉成C語言來運作,當然它處理辦公資料時這點差距并不重要,會在意那0.1秒的回眸呢?(除非是美女)python要處理word,excel需要依賴大量第三方庫,由于微軟的檔案格式變化較多,存在大量相容性問題,DEMO中老師給的都是優化後資料,你工作中會碰到大量問題,比如excel的97格式不認,公式讀不出來,合并單元格數值不對,日期不識别……為了一個小問題你要耗一天,這種門檻老師可不會給你手把手解決(我會),開源軟體的版本也多,每個版本之間的相容性也有差别,你可能用了最新的版本,但不一定工作的很好。

第二,從辦公軟體方面講。微軟的辦公系統已經内置了非常強大的功能,無代碼化的操作已經非常友善,任何使用程式設計軟體完成的功能,現在已經90%可以使用内置的滑鼠點選及拖拉完成。EXCEL可以使用PowerPivot可以分析生成百萬級資料圖表,其中資料透視表可以實時的給你統計和分析内容,再搞不定可以連接配接sql資料庫學點SQL語言才是正道;Word可以使用郵件合并功能,一次性生成幾十篇請貼,也可以引入變量插入文檔……學好這些内功,比使用外部工具來操縱它更能展現效率。你能想象幾分鐘能完成的拖拉資料視圖,要用Python搞一個小時還不能用在其它類型的EXCEL表中的痛苦麼。另外。微軟的一系列程式設計工具裡面,對office元件可以做到無縫支援,VBA可以完成一些自動化的功能,再複雜的C#也可以輕松程式設計搞定,而且很少出現各種問題。

在辦公上Python優勢在大資料和功能整合(膠水語言特點)方面明顯,利用Python可以快速處理簡單而大量的資料,類似于大資料處理,複雜的資料處理通過與資料庫的連接配接來完成,可以迅速搭一個收集資料、處理的平台(當然微軟的SharePoint也可以)。但一條原則,這是在學好Office前提下,此時估計你已經能處理99%辦公上的問題。

問題三 怎麼學?

靠自己,靠實踐。古語有雲:“耳聞之不如目見之,目見之不如足踐之。” 隻有自己親身完成的事情才會在大腦中形成回路,上帝不會讓你付他8.9元告訴你,怎麼造世界。創造Python世界,隻有你自己才可以。所謂跟着老師寫代碼,然後分享朋友圈,無非是給自己的心理找安慰,結合自己的體驗才是真功夫。學習程式設計好處是寫的代碼可以立即實踐運作給你點亮成就感,我們首先要做的就是給自己建立一個逐漸深入的小任務組,在每完成一個任務後檢查自己與高手的差別,并且更進一步不斷循環疊代加深。

舉個栗子:如果你是無敵國小生,為了占領這個世界,咱先定一個小目标:造電腦。

那麼目标集合可以這麼層層設計。

1、原理:在程式中進行計算 (學會了基本的計算語句)

Python入門的三大問題和三大謊言

計算原理

2、簡陋電腦:使用者輸入算式能計算 (學會了輸入輸出和eval語句)

3、容錯電腦:輸入錯誤能識别(條件)

4、成品電腦:出結果後等待下次輸入(循環)

Python入門的三大問題和三大謊言

5、豪華皮膚:畫出電腦的界面(pygame作圖)

6、激活按鈕:根據滑鼠點選電腦按鈕顯示數字(pygame事件)

7、豪華電腦:完成電腦的制作(pygame文字貼圖和計算)

Python入門的三大問題和三大謊言

豪華電腦

通過上面的7個步驟,就可以在一周内制作出如上圖精美的電腦,全程靠自己的知識逐漸積累,學會這個任務後,才會發現python其實很簡單。

小牛叔根據自身的學習經驗,總結提練學習程式設計三步曲:

1、選好能逐漸點亮成就感的小任務

2、獨立網上找資料完成,不斷疊代

3、讀源碼檢查你和高手的差別

通過完成簡單的任務後,你自然會知道如下幾點:

1、python錯誤了到哪裡檢查錯誤

2、新的python知識到哪裡找資料

3、我的任務python到底能不能完成

4、以後自學的方向是什麼

歡迎關注小牛叔,共同探讨在學習之路的經驗,避免學習的坑。

漁與魚誰更重要?