為什麼c程式設計仍然值得學習

C不是一種死語言。事實上,IEEE Spectrum雜誌將其列為2017年第二大頂級語言。以下是五個原因。...

2016年,C是GitHub上第9個最活躍的語言,全年有202k個pull請求。與前三種語言相比:JavaScript有1604k的pull請求,Java有763k的pull請求,Python有744個pull請求。Ruby、PHP、C++和CSS也擊敗了C.

c-programming-important-featured

乍一看,C似乎被更新、更新鮮、更令人興奮的語言遺忘了——畢竟,C已經有45年的歷史了——但GitHub並不是軟件行業最準確的寫照。GitHub對開源和潮流有著巨大的偏見。

C不是一種死語言。事實上,IEEE Spectrum雜誌將其列為2017年排名第二的頂級語言,排在Java、C#和JavaScript之前。如果你今年要學C,那就不會浪費你的時間和精力。以下是五個原因。

1加深對計算機的理解

你可能聽說過C是一種“低級語言”,在編程的上下文中,“級別”是對你與計算機本機指令集的接近程度的描述。級別越低,就越接近於編寫機器代碼。級別越高,語言所做的抽象就越多,從而使您遠離編寫機器代碼。

C語言是一種較低級的語言,具有一定的抽象性。您可以編寫與硬件相當接近的代碼並直接操作內存,而在Java這樣的高級語言中,該語言本身通過垃圾收集器處理內存。

007Ys3FFgy1h1oh4zl7kgj30im09bmxv

雖然這是C語言難以學習的部分原因,但這也是為什麼C程序員更傾向於與計算機的工作方式保持一致的原因。為了寫出好的C代碼,你必須像計算機那樣思考:內存管理、輸入/輸出流、字節順序等。

確實存在比C低級別的語言(例如彙編語言),但C的級別和你想要的一樣低。它保留了較低級別語言的大部分功能和控制,但它的抽象程度只夠讓人可讀的代碼,而不會讓你大吃一驚。

2更容易學會其他語言

有些程序員喜歡說“一旦你懂了一種編程語言,你就幾乎瞭解了所有的編程語言。”儘管這是一種鼓舞人心的情緒,但這並不完全正確——除非你學會了C。

問題是,從一種語言到另一種語言的轉換是最流暢的。從C這樣的低級語言到Python這樣的高級語言是相當容易的,因為Python更能握住你的手。但是從Python到C?沒那麼容易。

007Ys3FFgy1h1oh50uusaj30im09bdgt

或者再舉一個例子。C#是當今新手的流行第一語言,尤其是對於那些想進入遊戲開發的人(因為心愛的Unity引擎使用C#)。但是,儘管C語言高度抽象且易於使用,新手還是經常會感到困惑,因為他們不理解抽象的內容。

通過學習C,你基本上是在學習現代編程的基礎。如果你能真正理解C,你就能學會任何其他語言,因為幾乎所有的現代語言都比C高級。

三。更好地欣賞其他語言

C語言的低水平是有代價的:複雜和乏味。

把它想象成做火腿三明治。在更高級的語言中,可以使用makeSandwich(“ham”)方法來生成即食三明治。在C語言中,您必須編寫自己的makeSandwich()函數,該函數收集並準備所有必要的成分,組裝三明治,然後將所有內容放回原處。

007Ys3FFgy1h1oh51d544j30im09bq3a

一方面,能夠控制三明治的方方面面是很好的。您甚至可以編寫一個更快的makeSandwich(),跳過您不關心的某些步驟。但有時你只想有人給你做三明治,而為你做的食物往往比你自己做的好吃。

大多數現代語言都是針對另一種語言的缺點而誕生的:C++響應C++,java響應C++,C響應java。等等,你可以更好地理解為什麼某些語言是按照它們的方式設計的,並且更好地理解高級語言提供的便利性。

4非常規項目及應用

大多數現代編程語言都用於相同的三個方面:業務應用程序、web和移動應用程序以及數據分析。

更高級的語言對這些非常有用,因為不需要深入研究計算機體系結構的細節。相反,快速的開發週期和健壯的手握是王道——這是使用高級語言的兩個主要好處。

007Ys3FFgy1h1oh51wc02j30im09bwfa

但是如果你想開發與硬件直接接口的軟件,你需要一種較低級別的語言——C是最常用的語言。值得注意的應用包括操作系統、編程語言和編譯器、嵌入式系統、遊戲引擎等。

例如,Linux內核是用C和彙編語言編寫的。像Python、PHP、Perl和Ruby這樣的流行語言都是用C實現的,你知道C也是用C編寫的嗎?由於許多嵌入式系統有嚴格的資源限制,C語言通常是首選語言,因為它的開銷非常小。

5改善你的工作機會

有兩種方法可以保證軟件行業的工作:

  1. 專攻高需求職位。
  2. 專攻低供給崗位。

高需求職位涉及可在多個領域使用的流行語言:JavaScript、Python和Java就是最好的例子。低供應位置往往涉及古老的語言,遺留系統,而不是作為浮華的項目。C很流行,但C程序員正在減少。

由於大多數代碼訓練營和在線培訓課程都會將新手程序員推向高要求的語言,因此您可以通過學習C來脫穎而出。這會打開許多高級語言無法提供的工作機會。

c入門

C語言不容易學,特別是如果它是你的第一門編程語言的話。這就是為什麼我們建議在開始之前閱讀這三篇文章的原因:學習代碼之前要問自己的問題,如何在沒有壓力的情況下學習編程,以及掌握一門新編程語言的技巧。

但是如果你對學習C很認真,一定要從C編程語言第二版(通常稱為“K&R”)開始。它基本上是C編程聖經。它已經很舊了,但是它的所有內容現在仍然適用於C。一旦您看完了,您就可以閱讀C89、C99和C11語言版本中發生的更改。

如果你買不起那本書,那就從C本書開始。它不再印刷,但仍然可以在網上以HTML的形式在其整個。

你怎麼認為?C是過時的和無用的還是新的程序員在探索更現代的語言之前仍然應該學習它?在下面與我們分享你的想法!

  • 發表於 2021-03-13 03:02
  • 閱讀 ( 56 )
  • 分類:程式設計

你可能感興趣的文章

swift程式語言值得學習的7個原因

...了解更多資訊,請參閱我們關於高階語言與低階語言以及為什麼某些程式語言比其他語言更快的文章。 ...

  • 發佈於 2021-03-12 01:39
  • 閲讀 ( 58 )

你從未聽說過的最奇怪的程式設計原理

...於不稱職的境地。把這個原則應用到軟體中,你就會明白為什麼越差的軟體往往越好。 ...

  • 發佈於 2021-03-12 02:06
  • 閲讀 ( 59 )

尋找最好的程式語言?從這裡開始!

...瀏覽器端部分。但是Python是一種令人驚歎的語言,這就是為什麼它仍然是JavaScript的強大替代品。進一步瞭解Python for web開發。 PHP:你已經不太瞭解PHP了,因為它不像一些較新的web語言那麼流行,但它仍然被廣泛使...

  • 發佈於 2021-03-12 12:24
  • 閲讀 ( 64 )

為什麼有些程式語言比其他語言快?

現在有很多程式語言,每種語言都有自己的特點。由於不同的設計選擇和用例,有些比另一些更快或更慢。當然,這種速度(或缺乏速度)通常是有代價的。簡單地說,正是這些差異導致了這些效能變化。 ...

  • 發佈於 2021-03-13 15:07
  • 閲讀 ( 42 )

如何選擇正確的web程式語言

...用程式時,有哪些選項可供選擇?在任何特定的場景中,為什麼要選擇某些語言而不是其他語言?本文將提供一個問題清單,程式設計師應該問,以選擇使用哪種語言。 ...

  • 發佈於 2021-03-16 01:36
  • 閲讀 ( 64 )

建立web介面:從何處開始

... 你為什麼需要它 ...

  • 發佈於 2021-03-16 05:47
  • 閲讀 ( 65 )

初學者最容易學習的6種程式語言

...專門的社群。需要更多的動力嗎?JoelLee詳細說明了Python為什麼非常有用。 ...

  • 發佈於 2021-03-16 10:37
  • 閲讀 ( 64 )

9個最好的程式碼遊戲,以建立你的程式設計技能

... 這就是為什麼你應該留出時間來玩這些編碼遊戲和挑戰。它們不僅是一種有趣的休息方式,而且透過實踐和體驗,您可以更快地學習並保留更多資訊。 ...

  • 發佈於 2021-03-17 21:19
  • 閲讀 ( 41 )

免費線上計算機程式設計課程的11個最佳網站

...,電腦科學和計算機程式設計部分正在迎頭趕上,這就是為什麼它在這個名單上如此之低。目前你只能學習JavaScript,再加上演算法和密碼學的基礎知識,但肯定值得關注。 ...

  • 發佈於 2021-03-18 00:47
  • 閲讀 ( 59 )

6個編碼應用程式,使程式設計更容易

...式設計界的新手還是經驗豐富的老手,熟能生巧。這就是為什麼我們編制了一個編碼應用程式列表來幫助你在任何地方編碼,從而保持遊戲的領先地位。 ...

  • 發佈於 2021-03-18 23:25
  • 閲讀 ( 62 )