一定要好好学习C语言
提到 C 語言,很多人的第一反應是:C 語言,不都過時了?還有必要研究嗎?
當然有必要。用一個詞來形容:C 生萬物。
大量重量級軟件都是C寫的,比如
操作系統:Linux,UNIX,IOS內核,windows內核,Android內核
虛擬機:jvm虛擬機,CPython
后臺服務器:Nginx,libev
中間件緩存:Redis,Memcached
數據庫:MySQL,SQLite
編譯器:GCC,GDB等
云計算laaS:?計算-kvm/qemu,網絡-Linux/DPDK,存儲-Linux/SPDK等
可以看到,整個世界的基礎架構都是在 C 語言之上運行的,C語言是你必須學習的語言。因為這個世界上絕大多數編程語言都是 C-like 的語言,也是在不同的方面來解決 C 語言的各種問題。學習C語言是一個合格的后端程序員的必經之路。
主流操作系統是 C 寫的,絕大多數語言的編譯器也是 C 寫的,數據庫、網絡、硬件驅動、服務器應用等等,都是 C 寫的。說霸氣點兒,這個世界就是在 C 語言之上運行的。而且在這些領域,C 語言是完全的“壟斷”,連競爭者都沒有。
所以,扎心的就來了——“會不會 C 語言是軟件工程師和社畜的分界線” 。畢竟,真正的高手,就得掌握計算機是如何組成的,程序是如何運行的,編譯器是如何把高級語言轉化成 CPU 指令的,網絡設備是如何傳送數據的...等等,而這些,都要跟 C 語言打交道,說白了,C 語言就是內功。
而且眾所周知,現如今幾乎所有的編程語言,都是以 C 語言為基礎拓展的:C++、Java、Go、Python、JS 等等,所以你會發現,學好了 C 語言,別的語言都很容易上手,更不會因為“語言層出不窮”而焦慮。當然,你也可以跳過 C 語言學其他的語言,不過,技術債遲早是要還的。
不夸張地說,想要成為高手,就必須吃透 C 語言。只有如此,你的技術之路才能走得更遠。
所以,與其吐槽說 C 語言“過時”,不如想想,如何更好地擁抱、使用它。畢竟,大部分人學 C 之路都頗為坎坷,會遇到很多困難,比如:
C 語言的的語法很基礎,但學完又感覺什么都不會?
指針是如何靈活使用內存的?
如何編寫高性能代碼?
編譯器在鏈接程序時發生了什么?
....
我的經驗,學好C語言,除了簡單的語法外,更重要的是要搞懂?C 程序從編寫到編譯,再到被運?的整個細節。分享我當初的學習路徑:
掌握基本語法,理解 C 程序的運行細節;
掌握標準庫,性能優化以及工程化內容,搞懂如何寫一個可以用在生產實踐中的 C 程序;
掌握編譯、鏈接、加載以及和操作系統的交互,搞懂 C 程序是如何運?起來的。
當年我啃的時候并不容易,難點在于系統性的資料不好找,市面上所謂“0 元送、免費”的資料,不僅只有基礎語法,更是零散不成體系,學了一堆跟沒學一樣,云里霧里的。
從體系化這個層面,我還是比較推薦老朋友「極客時間」的,他們最近出了個專欄 ——《深入 C 語言和程序運行原理》,早在專欄打磨階段,我就參與了調研,現在上線了,讀了幾篇,還不錯,想跟大家分享一下,先來看專欄總結的學習路線圖,建議收藏👇
這個專欄最大的感觸是 —— 完全按照程序員的學習痛點來設計的:
先聚焦于 C 語言的核心語法,帶大家了解編譯器是如何在機器指令層面實現它們的;其次介紹現代 C 語言標準庫中的一些重要功能,及背后的運作機制;接著詳解適合編寫高性能的 C 代碼,也是工程化相關的重要內容。最后,探討二進制可執行程序是如何在與操作系統的協同工作下被運行。
從這 4 個層面,跟著看下來,你就能深入理解 C 程序的完整生命周期。原價 129 元,用極客時間「隱藏優惠」,到手¥89。
掃碼看目錄、免費試讀👇🏻
早鳥+口令「cyuyan666」
到手僅¥89
新人無需口令,¥59 拿下
C 語言高效學習路徑
專欄作者是「于航」,PayPal 技術專家,也是 QCon 和 GMTC 大會優秀講師和出品人。18 年那會,還深度參與了 Emscripten 編譯器工具鏈項目的研發工作,在推動國內 Wasm 技術的發展和落地實踐方面出了不少力。
最早是在極客時間的「每日一課」里看到他出的視頻,對他提到的 C 語言的學習方式,印象非常深刻,而這次專欄的設計邏輯就是:聚焦 C 語言核心語法實現 → C 項目工程化技巧 → 深入 C 程序運行。
主要分為四個模塊:
前置篇
專欄中涉及到了計算機體系結構、匯編語言等較為底層的基礎知識,為避免讀者的知識盲區,所以會快速帶你了解匯編語言、寄存器等內容,并且回顧一個 C 程序從編寫到運行的完整過程;還會用一個比較復雜的 C 程序,帶大家快速回顧 C 語言的核心語法。
C 核心語法實現篇
梳理 C 語言7大核心語法“背后的故事”,帶你了解編譯器如何在匯編層面實現這些語法。通過這一模塊的學習,你會對 C 程序的運行細節有著更深刻的理解,從而可以更好地掌握并優化程序運行。
C 工程實戰篇
介紹 C 語言在大型工程實戰的必備技巧。包括:
快速掌握 C 標準庫的重要功能,以及這些功能背后的實現原理;
掌握編寫高性能C 代碼、編碼規范、結構化測試與編譯等,這些 C 項目工程化的實用技巧。
C 程序運行原理篇
介紹 C 程序是如何通過編譯,并最終被操作系統運行的。程序的運行涉及到眾多與操作系統的交互細節,你將在這個模塊里詳細了解。
說了這么多,一起來看下目錄吧下面👇🏻
再說一遍優惠:
原價 129 元
早鳥+口令「cyuyan666」
到手僅需¥89
新人無需口令,¥59 拿下
掃碼看免費試讀👇🏻
時至今日,C 語言作為最“古老”的編程語言之一,仍然“老當益壯”、生生不息。這一切靠的不是巧合,而是絕對的實力。
而要發揮 C 語言的最大威力,我們就不應該只簡單了解它的語法,而應該在此基礎上進一步了解代碼如何被編譯,程序如何被運行。只有當完整的“鏈路”建立在腦海中時,你才對程序有了最完全的把控。
點擊「閱讀原文」👇🏻,這次吃透 C 語言。
總結
以上是生活随笔為你收集整理的一定要好好学习C语言的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第四期直播分享预告-高薪offer指南
- 下一篇: 每个人都有自己的人生节奏