計算機專業不學c語言是怎樣的存在?
C++ 幾乎是 C 的超集,學 C++ 時如果能注意哪些部分是與 C 兼容的,就同時學會了 C。以我所知,有些大學編程入門課教的 C++,也只是用 cin / cout 替代 scanf/printf 的 C 而已。如果 C/C++ 都不教,自己又不學,那麼會通過不了一些公司的面試筆試。
我們學 C++ 和 Python。一動一靜,一強一弱,一攻一受,相得益彰。
本科的時候我們專業編程語言教授順序是這樣的:
JavaCVBC++(槽點不在這裡)然後Java課我好好上了,因為剛大一不懂嘛,後來發現雖然我本科之前也只寫過100小時Java(還特么主要是幫學長做畢設),但依舊比老師搞的清楚…
於是C就不好好學了唄!畢竟500小時以上呢!吹牛還能說在5種硬體平台上做過開發……
結果傻逼了。考出來就剛及格線。誰特么知道考試考那麼多未定義行為在特定實現上的行為啊…當然當年不懂這個,就覺得我復現不出來標準答案,於是和老師吵,結果老師只好和我說你用TurboC復現一下然後把結果背下來…
所以回到問題,本科學計算機不學C?
特指中國大多數高校的話,好好好!如果要湊666,再加上贊贊贊然後套一個循環。我們學校CS學院是
Haskell(函數式編程)-&>Java(面向對象)-&>HTML,CSS(網頁設計)-&>Python(科研程序開發)-&>
彙編(計算機組成與程序執行原理)-&>Ada(分散式系統與並發) 中間還夾雜了Matlab(高數)和PostgreSQL(關係資料庫)反而是隔壁工程院的崽子們學C語言學得叫苦連天(滑稽)-----分割線-----上面只列舉了答主目前上過的內容,經評論里的朋友提醒看了看後面操作系統原理的內容,還是會用C來上的講道理,我們學校以前是學 C++ 的,我是後來在工作中才學會了 C(雖然我不是計算機專業)
當然,據說學校現在改教 Python 了。不好意思,現在很多學校都不教C了,直接C++或java
我們學 Scala
學或者不學,最後操作系統課你都得用C寫,所有高級語言為你屏蔽的細節,操作系統你都得考慮,出來混,遲早要還_(:з)∠)_
沒C與C++感覺很不專業。C語言是計算機基礎語言,可以通過學習了解計算機底層的原理,內存管理、棧與堆概念、進程運行機制等等。況且C是萬能編程語言,沒有應用盲區。通過學C語言將計算機原理學紮實了的同學,以後不管學什麼語言都能悟透其本質。你知道它的原理是什麼,大概是怎麼實現的。你會自覺地避開語言的陷阱。在出現不可思議的問題時,你敢深入到語言底層去排查問題。如果直接上Java, Python不學C/C++那麼就太面嚮應用了,太浮躁了,與外面培訓機構沒太大區別。我校的流程是:C, C++, 彙編, 操作系統, Linux, 編譯原理, 數字電路,逐漸深入底層。至於Python, Java,上面的基礎紮實了,這些翻翻書就可以幹活了。
我建議一開始就學c,這樣你就有更多的選擇方向,計算機上層軟體日新月異,底層的機制這麼多年依舊沒啥大變化,c就是這中流砥柱。你可以繼續往底層走,也可以邁步向高處走。
如果像某些人把Haskell,lisp,Python,lua等等搬上來這些作為入門,我只想說,抱歉,請你們找出一本用Haskell寫的計算機系統的書籍,請你找出一本用lisp介紹tcp/ip的書籍。請你找出一本用Python或者lua介紹編譯原理的書籍。沒有就請你閉嘴,別誤人子弟。若想證明你是對的,請穿越回去吧,把丹尼斯扼殺搖籃里吧,說不定真能改變如今的c家族的計算機世界。
--------------------------------------------c語言無處不在,無處不去。你真以為人工智慧是Python的天下?建議多去了解,少說話。見人見智,c語言該不該作為首選,我就說這麼多。我入門過很多語言,現回頭看,仍覺得c語言是我見過最優美最簡潔的一款語言。忠言逆耳利於行,良藥苦口利於病。自行選擇就是。可能你學的專業雖然有計算機三個字,其實是個就業培訓吧。
不請自來!
沒學過C語言。
那是非計算機專業的機械、自動化、電子+通訊等歪門邪道練的功法。
20年前,計算機系的基礎功法如下:
計算機導論 -&> 高級語言Pascal -&> Pascal版的數據結構
彙編語言 + 面向對象C++,
必修編譯原理,操作系統等,選修圖形學,人工智慧。
課程設計指定用Visual Basic。
由儉入奢易,由奢入儉難。
計算機專業不約C語言那你們數據結構,演算法分析,操作系統,計算機組成原理怎麼學呀
我覺得計算機專業本科只開四門基礎課就夠了:數據結構與演算法、編譯原理、操作系統和計算機網路,語言這東西就應該是自學的。計算機專業開C語言課,簡直就像物理系開「LeCroy示波器的使用方法」。
很多985學校都是學C,不學C怎麼清晰把握內存變化過程,理解程序執行原理?另外建議高校開Linux系統編程課,通過這個實踐掌握操作系統,理解操作系統原理,我知道清北,上交有,別的學校就不知道了。
我們學 Python 和 Rust,C/C++ 不是自學嗎?
C是高級語言中最接近底層硬體的語言,如果不研究硬體,僅在通用計算機(cpu +硬碟+RAM+鍵盤+顯示屏+操作系統)上研究演算法,的確不需要研究C。
個人非常喜歡C ,因為他極其精簡,指針有時候比對象調用方便的太多!如果初學一門面向過程的語言入門,會讓學生在初次接觸面向對象的概念時,有個比較難的適應期,老師講得爛你就根本只能靠自學。
如果入門學習一門富含高級特性的語言,會讓學生再去學c語言的時候,會覺得這門語言真是一無所有,簡陋之至,還學個P。所以索性就不教吧。個人覺得CS的還是學下C的好,SE的倒是可以做放棄的嘗試,不過後面分流的嵌入式方向還是要C,所以C還是有開課的必要。不喜歡黑框框編程沒關係嘛,玩單片機嘛。
推薦閱讀:
※程序員怎麼學習英語?
※編程是靠記憶嗎?
※0基礎學編程應該學哪種語言更迅速,看哪些書?
※C語言會被解釋成彙編語言,為什麼C會比彙編慢呢?
※如何學習開源代碼?有什麼好的書籍可以引導初學者學習?