python因為其自身屬性而引來一群粉絲,爭相進行研究學習,正在風頭上的時候有人卻說使用python會降低程序員的編程能力,這是真的嗎?其實傳智播客分析了一下,那些都是關(guān)于python的好處。這樣的話我還要去進行python培訓學習嗎?就這個問題本文給大家?guī)硪恍﹨⒖家庖姡?
用一把利劍會降低你的武功嗎?
用玄鐵重劍會降低你的武功嗎?
用木劍會降低你的武功嗎?
同樣的道理,用python會降低你的編程能力嗎?
用c++會降低你的編程能力嗎?
用java會降低你的編程能力嗎?
編程能力和你用什么語言,沒有直接關(guān)系。
親眼見過用excel開發(fā)的游戲和網(wǎng)站原型。
關(guān)鍵在于你運用的足夠精湛!
回答這個問題,首先,我們要清楚什么是編程能力?
算法嗎?數(shù)據(jù)結(jié)構(gòu)嗎?操作系統(tǒng)嗎?是對語法的熟練程度嗎?是源碼的閱讀量、代碼的編寫行數(shù)嗎?搭個網(wǎng)站算是編程能力嗎?都不是。
編程能力是在遇到實際問題后,將問題分解、剖析、解決的能力;說穿了,就是知乎上已經(jīng)說過無數(shù)遍的:解決問題的能力。
把編程能力做個拆分,大概是:
算法能力:對已知問題進行數(shù)據(jù)結(jié)構(gòu)和算法的設(shè)計能力;
語言能力:用特定編程語言實現(xiàn)已知算法的能力。
從中又可以衍生出代碼風格、抽象能力、語言理解、工具使用、工程能力。
但這些能力,無論如何匯總拆分,都是在解決問題。
Python影響到你解決問題了嗎?我們先看一下Python的語言特性。
Python的特點是什么?
簡單————Python是一種代表簡單主義思想的語言。Python的這種偽代碼本質(zhì)是它最大的優(yōu)點之一
易學————就如同你即將看到的一樣,Python極其容易上手
高級語言————當你用Python語言編寫程序的時候,你無需考慮諸如如何管理你的程序使用的內(nèi)存一類的底層細節(jié)。
跨平臺————你可以在多個平臺上進行使用。
面向?qū)ο?mdash;———Python既支持面向過程的編程也支持面向?qū)ο蟮木幊?br />
可擴展性————可以將部分程序用C或C++編寫,然后在Python程序中使用它們
可嵌入性————你可以把Python嵌入你的C/C++程序
豐富的庫————Python標準庫確實很龐大
Python的缺點呢?
強制縮進————Python程序員必備游標卡尺
運行速度————相比某些語言算是黑點之一
Python的特點影響到你能力了嗎?
看完了Python的特點,我想沒有人會覺得這些影響編程能力吧?
是的,Python運行慢,但是Python寫得快,兩相權(quán)衡之下,我認為并不成為無法解決的問題,更不至于影響編程能力。
那我們試著來猜測一下講述這個問題的人背后的故事:
Python語法簡單、現(xiàn)成的輪子多,也不用接觸一些很底層很燒腦的東西,所以就有了使用python讓程序員編程能力下降這一說。
但是問題就在于,就算我壓根不懂C語言,我不明白什么叫指針,我不會自己造輪子,但是我能用Python把問題解決,這就是python的價值和這門編程語言的魅力之處。
你用著所謂“能夠提高編程能力”的語言,花了一天時間寫出來的代碼,我Google到一個現(xiàn)成的庫,不到半小時搞定了。
你告訴我這影響到我的編程能力了嗎?
任何語言的使用都是有場景、有目的的,比如:
我用Python,目的就是最快的搞定某件事;
我用C,就是為了更底層、更優(yōu)化;
我用Java,就是看上了它的庫;
我用PHP...
其實,不同語言的社區(qū)訓練出的程序員的能力側(cè)重點還是不一樣的,但都是能力的體現(xiàn):
1. C 程序員對于內(nèi)存管理,計算機體系的理解能力;
2. C++ 程序員對元編程的理解能力;
3. Java程序員對于OO和設(shè)計模式的理解,對規(guī)模項目掌控的能力, 對虛擬機實現(xiàn)理解的能力;
4. Ruby程序員創(chuàng)造Web應用的能力;
5. Python 程序員在小中型Startup中應對各種問題的能力;
6. Javascript 程序員研究顛覆同行對Web交互認知的技術(shù)的能力。
編程能力主要體現(xiàn)在將復雜問題簡單化,簡單問題模式化的能力, Python有大量的開源庫值得我們?nèi)W習,你會學習很多很靈巧的設(shè)計方法和設(shè)計模式,將它與C結(jié)合緊密,實現(xiàn)優(yōu)雅與效率的緊密結(jié)合,python有著清晰易讀的代碼,而且傳智播客的
python培訓課程非常適合零基礎(chǔ)學python入門。