电竞比分网-中国电竞赛事及体育赛事平台

分享

為什么還有985大學(xué)在大一上C語言課??

 斷劍圖書館 2021-12-14

書圈推薦搜索

今天在知乎上看到這樣一個問題:為什么現(xiàn)在部分985高校還是給大一上C語言課:

圖片

這個題主是某985CS專業(yè)學(xué)生,發(fā)現(xiàn)學(xué)校居然給大一教C語言程序設(shè)計,而不是現(xiàn)在最流行的JAVA或者Python,不由得產(chǎn)生了疑問。

評論區(qū)非常精彩,不少答主認為:C語言真的沒什么卵用了,學(xué)??赡苁墙虒W(xué)方法太落后了,才會繼續(xù)教C語言。

不得不承認不少大學(xué)計算機專業(yè)的教學(xué)方法的確有點落后,但大一學(xué)C語言還真沒什么問題。

編程指北之前在朋友圈發(fā)了個問卷,調(diào)查國內(nèi)大學(xué)第一門語言到底有多少是用的 C 語言。

圖片

結(jié)果也是很符合預(yù)期,使用 C 語言做第一門編程語言課的大學(xué)達到了 90% 以上。

圖片

更是在知乎看見一個問題:

問為什么還有985高校給大一上 C 語言課,如下:

圖片

的確啊,C 語言學(xué)完還是只能在黑窗口算算水仙花數(shù)、做做圖書管理系統(tǒng),哪有 Python 那么豐富的庫。

但是 C 語言可能是唯一最適合用來學(xué)習(xí)一系列計算機基礎(chǔ)課的工具和媒介。

比如操作系統(tǒng),實驗幾乎都是用的純 C 寫的 lab;

又比如匯編,學(xué)習(xí)的時候可以和 C 語言對應(yīng)起來,了解if、for、while、數(shù)組訪問等對應(yīng)匯編是怎么樣的;

并且 C 語言本身抽象層次非常低,語法也很簡單,沒什么語法糖,很貼近操作系統(tǒng)。

圖片

點擊圖片,查看最新C語言教學(xué)大綱

用一個詞來形容:C 生萬物。

聽起來有點浮夸,但也沒說錯。

現(xiàn)今這個世界上,幾乎所有重要的軟件都跟 C 有關(guān)系
 
主流操作系統(tǒng)是 C 寫的,絕大多數(shù)語言的編譯器也是 C 寫的,數(shù)據(jù)庫、網(wǎng)絡(luò)、硬件驅(qū)動、服務(wù)器應(yīng)用等等,都是 C 寫的。說霸氣點兒,這個世界就是在 C 語言之上運行的。而且在這些領(lǐng)域,C 語言是完全的“壟斷”,連競爭者都沒有。
 
所以,扎心的就來了——“會不會 C 語言是軟件工程師和社畜的分界線” 。畢竟,真正的高手,就得掌握計算機是如何組成的,程序是如何運行的,編譯器是如何把高級語言轉(zhuǎn)化成 CPU 指令的,網(wǎng)絡(luò)設(shè)備是如何傳送數(shù)據(jù)的...等等,而這些,都要跟 C 語言打交道,說白了,C 語言就是內(nèi)功。

而且眾所周知,現(xiàn)如今幾乎所有的編程語言,都是以 C 語言為基礎(chǔ)拓展的:C++、Java、Go、Python、JS 等等,所以你會發(fā)現(xiàn),學(xué)好了 C 語言,別的語言都很容易上手,更不會因為“語言層出不窮”而焦慮。當然,你也可以跳過 C 語言學(xué)其他的語言,不過,技術(shù)債遲早是要還的。

 

不夸張地說,想要成為高手,就必須吃透 C 語言。只有如此,你的技術(shù)之路才能走得更遠。

 

所以,與其吐槽說 C 語言“過時”,不如想想,如何更好地擁抱、使用它。畢竟,大部分人學(xué) C 之路都頗為坎坷,會遇到很多困難,比如:

 
  • C 語言的的語法很基礎(chǔ),但學(xué)完又感覺什么都不會?
  • 指針是如何靈活使用內(nèi)存的?
  • 如何編寫高性能代碼?
  • 編譯器在鏈接程序時發(fā)生了什么?
  • ....
 
我的經(jīng)驗,學(xué)好C語言,除了簡單的語法外,更重要的是要搞懂 C 程序從編寫到編譯,再到被運?的整個細節(jié)。分享我當初的學(xué)習(xí)路徑:
 
  • 掌握基本語法,理解 C 程序的運行細節(jié);

  • 掌握標準庫,性能優(yōu)化以及工程化內(nèi)容,搞懂如何寫一個可以用在生產(chǎn)實踐中的 C 程序;

  • 掌握編譯、鏈接、加載以及和操作系統(tǒng)的交互細節(jié),搞懂 C 程序是如何運?起來的。
 
下面想跟大家分享一下,學(xué)習(xí)路線圖,建議收藏??

圖片

 

 
時至今日,C 語言作為最“古老”的編程語言之一,仍然“老當益壯”、生生不息。這一切靠的不是巧合,而是絕對的實力。
 
而要發(fā)揮 C 語言的最大威力,我們就不應(yīng)該只簡單了解它的語法,而應(yīng)該在此基礎(chǔ)上進一步了解代碼如何被編譯,程序如何被運行。只有當完整的“鏈路”建立在腦海中時,你才對程序有了最完全的把控。


本文綜合整理自:編程指北、findyi

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多