為什麼說沒有程式設計基礎的小白學Python最合適?
作為現在最熱的語言,Python自有其強大之處。 Python的哪些特性更容易讓小白快速如門、讓有經驗者提升演算法能力?今天我們就來分享一位大神的回答。
既然Python那麼簡單易如門,學Python會降低程式設計能力嗎?
作為一個做科學計算的碼農,這裡必須答! 不會!
首先我們來定義一下什麼叫 程式設計能力 。私以為應該同時包含兩個部分: 寫程式碼的能力 ,以及 演算法、資料結構設計能力 。
如果你想要學好Python可以加入一個組織,這樣大家學習的話就比較方便,還能夠共同交流和分享資料,給你推薦一個學習的組織學習有可學習有困難或者想獲取Python資料請加Python學習Q群629440234,互相學習,互相分享學習資料
從小學四年級開始學QBasic,到中學學Pascal和C,本科時一發不可收拾,幹挺C++、Java的同時搞定Obj-C,讀研前又很快的掌握了Python,最近又學了Swift,用過這麼多語言的唯一感想只不過是一個高階語言除了區分是物件化的還是過程化,其餘什麼的區別不大,它就是個語言而已。用QB同樣可以寫個平衡樹,C沒有STL的話要用到的功能自己寫一遍就好,也不會太複雜。
Python是個解釋語言, 同時還是個語法自由度相當大的語言,這就意味著寫程式時絕大多數錯誤是隻有當你的程式跑到出錯語句的時候才會提示出來的,這一點與其他編譯語言差別非常大,以至於當你用Python寫個不太小的玩意時,必須有非常 清晰的概念 、對語言和對 程式流程的掌握 。
Python裡 任意變數都是物件指標的設計 ,使得程式設計的人必須瞭解直譯器執行機制。從這一點看, Python對於建立程式設計概念,瞭解程式執行機制是有很大幫助的。 比起無腦Debug-Watch,縝密的思維以及看著程式碼就能準確分析執行情況的能力,更有助於寫出優秀的程式碼,也是對程式碼能力的鍛鍊。
至於 演算法能力的鍛鍊,與語言本身毫無關聯 ,Python相比C++一輩最大的好處就是在程式設計之時不需要為諸如變數申請之類的問題操心,可以更加流暢地實現心中所想。我喜歡用Python做演算法和思想的驗證,就是因為省事,學習、理解演算法,甚至設計新的演算法,重要的還是個量的問題。思考夠了,就要迅速實現,然後嘗試更多方案。因此, Python這樣一個程式設計省時的語言是提高演算法能力的好工具。
總體來說,無論寫程式碼能力還是演算法設計能力,都是靠 多寫 和 多想 來鍛鍊的。Python會不會降低程式設計能力,也就看會不會減少你寫和想的機會。
老一派的程式設計師可能會覺得Python這種玩意有大量模組,很多程式碼不用自己寫,減少了寫複雜內容的機會。事實上是一個程式好不好並不是由手寫快排或者捏個平衡樹之類的玩意確定的。面對有STL的C++,你還會蛋疼到為了排個陣列而寫快排麼?中學時我能把Splay tree背得滾瓜爛熟,10分鐘能用Pascal敲400來行寫一個Splay tree,但是那又如何? 單調重複的程式碼背下來寫一萬遍並不會提高程式設計能力 ,甚至算不上多寫。
相反,現在別人都造好了輪子等你來用,一方面能更快實現目的,同樣的時間裡你能寫更多的不同的程式,另一方面能針對自己的需求對輪子進行改造,有信心的話把個輪子改造成直升機螺旋槳都不成問題。 Python給予了更大的創造的空間 ,與多寫多想並不矛盾。
非要說Python的問題,那就是執行效率了。不過好歹效率還沒差出兩三個數量級,做做原型啊思想驗證啊什麼的,效率也不是最重要的問題。原型驗證了,有繼續開發的價值,影響效率的部分用別的語言寫一遍編譯一下就好了嘛! Python就像畫速寫和素描 ,或許比不上油畫,後續最終不能掛上畫框開展覽,但一定是鍛鍊基礎的有力工具。
要明白一點,程式設計並不是搬磚的活計,不把自己當藝術家,好歹也要當自己是個工匠,而不是個苦力小工。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69904667/viewspace-2646549/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼沒有基礎學不好python程式設計?Python程式設計
- 為什麼說程式設計師最花心,有圖為證程式設計師
- 沒有程式設計基礎的小白可以學習大資料嗎?程式設計大資料
- 學Python程式設計有什麼用?Python基礎教程!Python程式設計
- python有什麼優點?python適合零基礎學習嗎?Python
- Python適合初學者或者0基礎小白學習嗎?Python
- 為什麼說程式設計師做外包沒前途?程式設計師
- 為什麼學習Python?什麼途徑學習Python合適?Python
- python適合小白學嗎?Python
- 什麼樣的人適合學UI設計?UI
- 為什麼說Docker 不適合跑 MySQL?DockerMySql
- 學程式設計要什麼基礎,零基礎呢?程式設計
- QML程式設計 基礎 小白程式設計
- 學Python有什麼方法?哪些人適合學習Python?Python
- 為什麼學習HTML開發的很多人都是沒有基礎的?HTML
- 0基礎小白學程式設計,Java和Python哪個更好?程式設計JavaPython
- Python適合不適合零基礎學習呢?Python
- 為什麼說:“你不合適學Python?”醍醐灌頂!Python
- 為什麼說程式設計是有史以來最好的工作程式設計
- 哪些人更適合學習Python?為什麼?Python
- 程式設計師跳槽,到底選擇什麼時間辭職最合適?程式設計師
- 誰說程式設計師沒有520?學學高階程式設計師都是怎麼表白的……程式設計師
- 最適合學Python的幾類人,有你嗎?Python
- 學習計算機程式設計需要什麼基礎?計算機程式設計
- 學習python有什麼好處?哪類人群適合學python?Python
- 為什麼Python適合初學者 學Python大概要多久Python
- 設計師為什麼要學程式設計,開發者為什麼要學設計?程式設計
- 為什麼說 SaCa DataViz 是最適合業務人員的視覺化工具?視覺化
- 0基礎小白滿足什麼條件可以學Python?Python
- 最適合程式設計師的畫圖工具?程式設計師
- 初學Python有什麼開發工具合適?Python入門!Python
- 程式設計沒點為什麼,生活就是十萬個為什麼程式設計
- 孩子們為什麼要學Python程式設計Python程式設計
- [適合小白的Linu基礎入門教程一
- 什麼樣的人不適合當程式設計師?程式設計師
- 為什麼說rollup比webpack更適合打包庫Web
- 小白適合學Python嗎 怎麼加入Python開發行列Python
- 這本最適合夯實基礎的經典 Java 書籍,可能 80% 的 Java 程式設計師沒認真看過!Java程式設計師