“為什么我之前學c語言學得云里霧里,學完python之后再回過頭來看c語言,很多問題都一目了然了?”偶然看到這樣的一個問題,簡單說下自己的看法。
一直認為:編程語言之間很多都是融匯貫通的,學好一門,其他語言都是可以觸類旁通的。
首先,兩種語言的性質不同。
Python 是一種腳本語言,所見即所得,比較符合人的閱讀習慣,就像,讀一般文字。Python用于互聯網和自動化測試的開發。
C 語言是一種高級語言,特點運算塊,數據結構復雜,做大型項目,比如嵌入式,用C較多。
C語言
其實C本身也不難,難的是現在的程序員很少去深入了解計算機硬件本身了,比如CPU的運行機制,寄存器操作,內存讀寫等等這些,這些都是對應底層的硬件操作。
C語言更多的是用在這些地方,還有操作系統核心,編譯器本身等等,最基礎的程序都是C寫的。
c語言是一種面向過程的一種“中級”語言。為什么說只是中級語言,主要是因為它有著匯編語言的影子和固有思維(面向過程),主要的運用環境也是在微處理器。
說白了,c語言關心的是如何讓代碼完美的運行在微處理器上,并且處理時間要快。
所以,學好c語言不僅僅是學會c語言語法知識,還需要扎實的硬件基礎,數據結構等知識。因為,在c語言的世界里,除了比較難用的庫函數,很難找到可以直接用的庫(比如雙向數據鏈,硬件驅動)。
C就是描繪世界的基石,C寫的基本庫和代碼塊被后面的各種語言像磊磚頭一樣搭成各種房子建筑。
我感覺這就想一個人看書,你能看懂書里寫的故事,但是讓你來寫書你就不會了。
python
python 都是只關心這個東西是干什么的,你說你理解了c也是理解了他是干什么的,但是具體怎么干,怎么干的好你就說不出了。
而在Python的世界里,幾乎你能想到的功能,都能找到,而且,Python是解釋性語言,簡單易懂,不需要懂硬件和枯燥乏味且難懂的數據結構等理論,所以上手會很容易,組合各個功能強大的庫函數,完成各個功能的實現。
也許是因為學了Python,對編程邏輯有了很好的理解,融會貫通之后能比較容易看懂c語言的語句,但是,也僅僅只是一部分語句。
正如前面說的,c語言本身語法只是很少的一部分,精華部分在于如何絕妙的和硬件打交道,在有限的資源里,完成各項任務。
就像理解一種模式相對來說還是比較簡單,但是設計一種模式難度是相當大,這兩種語言就是針對了兩個方向,差距還是很大的。
觸類旁通
其實很多事情都是觸類旁通的,雖然不同的編程語言有一些不同,但是編程中很多思想都是一樣的。
python屬于高級編程語言,你學會了以后可以說你的編程思維就已經形成了,這時你再去學c肯定是會有一定幫助的。
就像我們高中時很多知識當時感覺是很難理解的,但是當你上完大學后再回過來看,貌似很多就容易理解了!
編程語言是有很多共通的東西,學會了python,其實也就掌握了編程語言的一些通用的特性,再看c,其實也就在通性上有些具體的修改或者增加自己的特性,看起來也就一目了然了。
舉例
C語言就像是原著版的小說《紅樓夢》,python就像是電視劇版的的《紅樓夢》。
當你看小說原著時,實在太難看懂,里面的人物關系過于復雜,看了半天不知所云,往往在細節地方反復糾纏而難以理清主線,也沒人告訴你誰是主要人物(總共出場900多人),只好眉毛胡子一把抓。
這時候,你去看了電視劇,發現電視劇竟然基本看懂了,至少主線搞清楚了,主要人物的人物關系搞清楚了。
這時候回過頭再去看原著,發現原著突然變得簡單起來。
然后,當你看完原著,又去看電視劇時,發現原來看電視劇很多搞不清楚的地方,竟然也變得清晰起來。
因為原著內容多,很嚴謹。在電視劇里沒有解釋清楚的,原著中都有解釋。
當然也有人說:由python入c難,由c入python易;這些都是自己一些個人看法罷了。
審核編輯:劉清
評論