解惑:一通百通,爲何還同時出了C語言和.net的教程

同窗提問:
我是個大專的學生,咱們學校不開設操做系統,編譯原理,數據結構這些課,而是教C/C++和.net。
如鵬理念:只精通一門語言,而把基礎知識學紮實
做爲一個大專的學生,我應該放棄C++或者.net其中一種的學習嗎?把大量時間用來學習其中一門語言和數據結構,編譯原理等基礎知識
不知道這樣想對不對,已經大二了,不想作代碼工人,帖子我也看過好多,就感受兩門語言一塊兒學會不會學雜了?
並且如鵬網本身也出了C語言和.net兩門語言的教程,用不用都學完呢?爲何如鵬網沒有基礎知識的教程呢?
楊老師麻煩解答一下迷惑?html

個人回答:編程

一、一通百通,爲何還出了C語言和.net的教程?
如鵬網一直倡導的就是:一通百通,不要在語言間徘徊,學好一門語言便可。
如鵬網說「學好一門語言便可」,因爲在校生中不少專業都以C語言做爲開蒙的語言,因此如鵬網推出了《C語言也能幹大事》這套視頻教程。但並非說要全部學編程的人都學C語言,這也是不少同窗的一直存在的問題,不少同窗甚至問「老師,我如今在學C#,是否是要回頭去學C語言」。如鵬網說的「學好一門語言便可」指的是本身肯定一門語言,而後認真學習下去,不爲別人所動,由於不少同窗目前學的惟一的語言就是C語言,因此就建議這些同窗繼續深刻學習C語言,多練手,多寫程序,鍛鍊程序化的思惟方式。可是還有不少同窗的開蒙語言是C#,因此如鵬網也推出了.Net的課程,讓學習.Net的同窗也有像《C語言也能幹大事》那樣優秀的視頻教程能夠學習。因此說「一通百通,不要在語言間徘徊,學好一門語言便可」和如鵬網推出「C語言和.net的教程」並非衝突的。

二、學校不開設操做系統,編譯原理,數據結構這些課,而是教C/C++和.net。我應該放棄C++或者.net其中一種的學習嗎?把大量時間用來學習其中一門語言和數據結構,編譯原理等基礎知識?
C++、.Net是大家的課程,若是放棄的話就拿不到學分,就沒法畢業,因此你能說放棄嗎?因此仍是要學,要達到學校的考試要求,只要把本身心裏裏不重視的那麼語言不用過多精力學習就能夠。
如今不少計算機專業、軟件工程專業、專科都在課程中去掉了數據結構、編譯原理這些課程。由於這些課程不像編程語言那些看起來學上手就能混飯吃,並且最重要的緣由就是大學裏的老師講很差這些課程,沒有資深、豐富的行業經驗根本無法把數據結構、編譯原理這些看似高深的課程講的明白,綜上考慮,不少學校就去掉這些課程了。
若是同窗們所在的學校還開設了這些課程,請認真好好學習,若是大家的老師講的很差的話,到網上找其餘大學講的好的老師的教程,由於這些課程若是本身研究的話難度會很是大。若是同窗們所在的學校沒有開設了這些課程也不要緊,也不用刻意去學,由於工做之後短時間內基本不用到這些東西,工做之後根據須要再去學習,若是想在技術之路上走下去的話,必定要在工做後抽時間學習那些基礎的東西,會對你的技術的提高有很大的幫助做用。

三、有一篇文章說:最好精通兩門語言,一門面向過程,一門面向對象,C#不就是面嚮對象語言麼?
同窗們對面向對象、面向過程大部分有誤解,面向對象、面向過程只是代碼的一種組織形式,而不是一種語法。好比在C語言中也能夠進行面向對象的編程(參考《C語言也能幹大事第22節:C語言面向對象開發》 http://www.rupeng.com/forum/thread-7373-1-1.html)。既然C語言中也能進行面向對象的編程,爲何你們都是用C#等語言進行面向對象的開發呢?由於C語言中進行面向對象開發很是麻煩,而C#等語言中提供了簡化面向對象開發的新的語法,讓編寫面向對象方式的代碼更簡單,僅此而已。
不要認爲面向對象是代替面向過程的,是淘汰面向過程的。什麼是面向過程?面向過程就是「代碼從上向下執行」,面向過程就是if、for、while,面向過程就是函數、變量……。難道在C#等面向對象的語言中就不是「代碼從上向下執行」,就沒有if、for、while、函數、變量這些東西了嗎?
因此說面向對象只是對普通面向過程的一個優化,將用純面向過程實現起來很是複雜的代碼用面向對象的方式進行組織,從而使得代碼更加容易編寫、容易維護。可是被面向對象組織起來的代碼內部仍是面向過程方式編寫的。
由於具體代碼仍然是面向過程方式編寫的,好比《傳智播客.Net視頻:第1季C#編程基礎 》中講的就是C#中面向過程部分的語法,所以C#是一門編程語言,可以編寫面向過程的代碼,也提供了便於編寫面向對象編寫的語法。數據結構

相關文章
相關標籤/搜索