App下載

從零開始學(xué)習(xí)C語言丨初識(shí)編程

來源: 三玹 2022-10-24 15:27:04 瀏覽數(shù) (3721)
反饋

 本文發(fā)布于微信公眾號(hào):三玹

你知道現(xiàn)在的編程總共有多少門嗎?

這個(gè)問題整得我橫豎睡不著,打開電腦一查,從字里行間只看到了兩個(gè)字,“很多”!

是的,現(xiàn)在的編程語言可以說是汗牛充棟、不計(jì)其數(shù)。甭說所有,就現(xiàn)在常用的十幾二十種編程語言,就足夠一個(gè)人窮極一生去了解、研究,而且都未必樣樣都學(xué)得精通。

為什么編程語言會(huì)如此之多呢?

在網(wǎng)上有這么一個(gè)梗,恰好說明了這種現(xiàn)狀:很久以前有個(gè)年輕人,來到了編程界。當(dāng)看到這方世界竟然秩序混亂,久久不能統(tǒng)一。不忍看到這個(gè)世界再繼續(xù)混亂下去,于是年輕人許下豪言壯志,誓要做出一套可以一統(tǒng)編程界的語言。


后來,編程界就又多了一門編程語言……

回歸正題,什么是編程?

顧名思義,編程就是編寫程序,也就是程序員將解決問題的步驟用編程語言編寫成代碼程序,然后交給計(jì)算機(jī)去執(zhí)行運(yùn)算,從而達(dá)到計(jì)算機(jī)可以重復(fù)解決問題的目的。

打個(gè)比喻:假如程序是一本菜譜,那么程序員就是寫菜譜的大廚,編寫代碼的過程就是在寫菜譜。而不會(huì)做菜的人就是計(jì)算機(jī),他們收到了大廚寫的菜譜,按照上面條令執(zhí)行,至少能做出像模像樣的菜。


而編程語言就是大廚寫菜譜時(shí)所使用的語言。比如大廚是中國人,那么他寫菜譜時(shí)所用的語言是漢語。如果是俄羅斯人,那他用的是俄語。那么,想讓普通的俄羅斯人也能看懂中國大廚寫的菜譜,首先需要將中國大廚寫的菜譜用俄語翻譯一遍。翻譯的這一過程,在計(jì)算機(jī)中也被稱之為編譯。

目前,主流的、且工作上用得比較多的編程語言有:C、Java、Python、C++、C#、JavaScript、SQL、Ruby、PHP、Go、Swift等等。如此眾多的編程語言,它們之間也是各有不同,按照編譯以及運(yùn)行方式可以分出以下兩大類:

編譯型語言

代表語言:C、C++、C#、Go等。

通常是將代碼一次性全部編譯為二進(jìn)制碼(計(jì)算機(jī)看得懂的語言:10010101),然后再一次執(zhí)行。

編譯型語言的優(yōu)勢就在于執(zhí)行速度要比解釋型語言快得多,而且消耗的內(nèi)存也更少。

缺點(diǎn)在于編譯器遠(yuǎn)比解釋器要難得多,而且在調(diào)試過程中,編譯器往往提供不了太多的幫助,同時(shí)編譯型程序是面向特定平臺(tái),對平臺(tái)有一定的依賴性。

解釋型語言

代表語言:Python、Java、JavaScript等。

有專門的解釋器。首先將代碼翻譯為中間代碼,然后交給解釋器對中間代碼進(jìn)行解釋運(yùn)行,編譯一行,運(yùn)行一行。

解釋型語言最大的優(yōu)勢是具有平臺(tái)獨(dú)立性,不受限于任意平臺(tái),對平臺(tái)的依賴性沒那么高。只需要擁有相應(yīng)的解釋環(huán)境,就可以在任意平臺(tái)使用。

缺點(diǎn)就在于解釋型應(yīng)用會(huì)占用更多的內(nèi)存和CPU資源,同時(shí)解釋型應(yīng)用需要進(jìn)行【解碼-抓取-運(yùn)行】的周期,因而整體速度要比編譯型程序要慢很多。

把這兩個(gè)大類比作是兩個(gè)工廠。

A工廠是編譯型語言,一次性將所有產(chǎn)品都做好了,然后上交給相關(guān)部門進(jìn)行檢查。如果產(chǎn)品質(zhì)量過關(guān),那么A工廠就可以迅速搶占市場。但要是發(fā)現(xiàn)了質(zhì)量不過關(guān)的,就得重新返工,一個(gè)個(gè)去尋找質(zhì)量不過關(guān)的產(chǎn)品。

B工廠是解釋型語言,這個(gè)廠的廠長非常謹(jǐn)慎,每做好一個(gè)產(chǎn)品,就提交一次檢查。雖然這樣的速度會(huì)非常的慢,但勝在保穩(wěn)。如果發(fā)現(xiàn)了錯(cuò)誤,那么及時(shí)將有問題的產(chǎn)品返工重做,不需要費(fèi)時(shí)費(fèi)力地去檢測所有產(chǎn)品的問題。

面對如此眾多的編程語言,該從哪個(gè)開始?相信這是許多初學(xué)者的煩惱和顧慮。

其實(shí)這個(gè)問題很簡單。根據(jù)自己的興趣選擇,興趣就是最好的老師。例如你想做游戲,可以入手C++或者C#;想做Web網(wǎng)站系統(tǒng)的,可以選擇Java;想做機(jī)器學(xué)習(xí)的,可以著手Python。

當(dāng)然,如果你不太清楚自己對什么有興趣,那么我的建議是以下兩點(diǎn):

如果是在校學(xué)生,或者時(shí)間較為充沛,同時(shí)想成為職業(yè)選手的朋友??梢韵葘W(xué)習(xí)C語言入門編程。C語言被稱之為現(xiàn)代編程語言之母,學(xué)習(xí)C語言可以了解一些底層基礎(chǔ),到后面學(xué)其他語言就會(huì)事半功倍。

如果是業(yè)余學(xué)習(xí),或者急于求職的朋友,那么可以根據(jù)興趣或者求職意愿和方向去選擇性學(xué)習(xí)補(bǔ)強(qiáng)。比如要做前端的,重點(diǎn)學(xué)習(xí)JavaScript、TypeScript等;后端系統(tǒng)的,可以學(xué)習(xí)Java、C++;爬蟲、數(shù)據(jù)分析類的,可以學(xué)習(xí)Python。

學(xué)習(xí)最重要的就在于一個(gè)“勤”字,編程學(xué)習(xí)也是一樣的。

勤動(dòng)手,勤思考。如果想要讓自己的編程技術(shù)更快地長進(jìn),勤敲代碼是必不可少的,畢竟熟能生巧。同時(shí)在敲寫代碼的時(shí)候,加入一點(diǎn)點(diǎn)思考,比如為什么這段代碼是這樣敲的?這樣敲的理由是什么?有沒有更好的方法讓這段代碼更簡潔、更好用?在學(xué)習(xí)、練習(xí)的過程中,多問自己幾個(gè)為什么,怎么樣才能做得更好,想得透徹了,那么成長就只是時(shí)間的問題了。


C

0 人點(diǎn)贊