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、原理:在程式中進行計算 (學會了基本的計算語句)
計算原理
2、簡陋計算器:用戶輸入算式能計算 (學會了輸入輸出和eval語句)
3、容錯計算器:輸入錯誤能識別(條件)
4、成品計算器:出結果後等待下次輸入(迴圈)
5、豪華皮膚:畫出計算器的界面(pygame作圖)
6、激活按鈕:根據滑鼠點擊計算器按鈕顯示數字(pygame事件)
7、豪華計算器:完成計算器的製作(pygame文字貼圖和計算)
豪華計算器
通過上面的7個步驟,就可以在一周內製作出如上圖精美的計算器,全程靠自己的知識逐步積累,學會這個任務後,才會發現python其實很簡單。
小牛叔根據自身的學習經驗,總結提練學習編程三步曲:
1、選好能逐步點亮成就感的小任務
2、獨立網上找資料完成,不斷迭代
3、讀源碼檢查你和高手的區別
通過完成簡單的任務後,你自然會知道如下幾點:
1、python錯誤了到哪裡檢查錯誤
2、新的python知識到哪裡找資料
3、我的任務python到底能不能完成
4、以後自學的方向是什麼
歡迎關註小牛叔,共同探討在學習之路的經驗,避免學習的坑。