首頁>Club>
常常聽別人說要精通c語言,為什麼呢?
8
回覆列表
  • 1 # Goren

    我是學軟體工程大一的新生,這個問題我也問過我的c語言老師,為什麼我們不學python,java,而要學c?老師這樣給我說的,她說現在其實所有高階語言都是從c的基礎上發展而來,它算高階語言中比較低階的了,比如你用java寫一條語句可以實現的功能,可能你用c要寫100行程式碼,但是你如果把c學懂了,java這些你可以一週就把它學懂,這些是一通百通的,可以這樣說,c語言是其他高階語言的藍本,除此之外,c語言能讓你接觸到底層的硬體到底是怎樣工作的,對於你深刻理解程式設計十分有好處,因為做程式設計要麼走遊戲,app開發,要麼走驅動,這兩條路c都能打好基礎,最後說一句,程式設計其實不管用啥軟體來學不重要,就像畫家學畫畫在意用的是什麼筆嗎,這些語言就是你手中的筆,程式設計思想才站舉足輕重的地位

  • 2 # qinzhang1

    我是通訊專業畢業的,在給微軟和IBM編過c和c++。在亞馬遜編java。現在又開始編底層c。

    c語言本身很容易掌握,c++比較難一些。學會c對學會c++說實話幫助不大。C++市面上有各種傳說,有些東西和技巧是因為老版本不成熟造成的,已經被新版本解決了。

    另外,在看看人們如何使用c++,大部分人和我一樣,把c++當作c with object。也有一些人把它當作java用,也就是用stl。只有很少人編寫庫。但不幸的是很多feature是給寫庫的人準備的。如果你不信,可以看google code style guide。大量的feature沒有涉及。

    會到c,c沒有通用的容器庫。很多通訊專業的老師會一些c,但不會寫資料結構。估計也不會教。對我來說如果你會用c寫linkedlisr,hashmap,和tree就算精通了。

  • 3 # 哈哈呵呵嘻嘻衣衣

    精通?對於任何一門學科都不要用精通或者不精通來形容!在我看來,說到達到精通這個程度的這世上沒幾個人。有一次我出去面試,對方公司的人問我是否精通C語言?然後我很尷尬,不知道怎麼去回答這個問題。因為在我看來這個問題本身就是錯的,本身就不該這麼問!如果別人問我這個問題,我只能回答,雖然我生在中國長在中國,母語就是漢語…也算是學了二三十年的漢語了,但是我只能說我對漢語比較熟悉,談不上精通。

  • 4 # Don1450_588

    語言本身只是一種工具,都很簡單,甚至可以自學的,特定語言有特定應用環境。

    在學校裡要把資料結構理論學好(list, stack, etc.),如果做embeded software還要搞清楚interrupt, polling等基本概念。

    以後工作中,大量的精力是花在作業系統的各種庫函式和呼叫,以軟體設計,而不是語言本身。

  • 5 # 程式般人生

    不會C語言的程式設計師大把,為什麼要精通C語言呢?精通什麼語言關鍵是看從事的工作。世界上大部份的程式設計師是做上層應用開發的,他們的核心能力是解決業務邏輯問題,而這樣的能力是其他專業範疇的,這時候開發語言僅僅就一工具,好用,善用就可以了

  • 6 # Chysu

    程式設計主要是演算法、資料結構,以及各種語言的特性。學習程式設計必須依託於一個程式語言,現在常用的就是C。早一些就是Basic,PASCAL等。關於演算法、資料結構的課程都基於這些語言,所以所謂精通C,指依託C將上進全部弄明白。現階段C重要,但並非所有。好比學作曲,你必須精通一門樂器,並依託它進行相關的學習和實踐,目前這個樂器就是鋼琴(現在的C語言),但鋼琴不是音樂全部。

  • 7 # gejuwang

    如果搞硬體程式設計就得用C語言。國內市面上硬體通訊程式設計首選三種:C語言、VB、DELPHI,基中C語言支援最好。還有很多硬體專用語言,基本上都是這些基礎上開發的OS。太專業晶片的程式設計軟體就是專用應用系統了。

  • 8 # 嫣芸芸

    我說一下我的看法,任何一個語言,特別是越高階的語音,都沒有誰敢說自己精通的,只能說非常熟練,如果非要說精通,我相信只有彙編的人才敢稍微說自己精通,因為彙編主要物件是機器的幾個單元,來來去去其實只是演算法的高低而已,並沒有高階語言的各種庫涉及的那麼廣闊,所以我個人感覺彙編能使用到一定程度,真的可以用精通來形容,這個觀點不喜勿噴,討論一下而已。至於c語言,別看年代夠遠,世間萬物的電子裝置99%都是c做的程式,以前如此,現在也是如此,將來我不敢說,至少我們這輩子c還是會佔有非常大的佔比率,這裡我說的是關於嵌入式開發的方向。所有的高階幾乎無一例外的是面向桌面軟體或者手機軟體,這些其實很少需要開發者去了解硬體是怎麼工作,但也有開發更底層的東西,為了兼顧軟體和硬體,學習c是最合適也是最恰當的,因為在語法上是主流高階語言的始祖,在硬體上又是彙編的繼承者(這句話有些籠統,大概能這麼說)。總結下來,不要看c古老,只要學會,即使不太熟練,在你接下來轉型其他語言的時候,將會得心應手,很快就能適應新語言。用一句比較大眾的白話最結束語,如果你看得懂中文,就一定能大概看得懂日文。

  • 9 # 加菲不是隻貓

    c語言更加接近底層的語言,更加註重細節的實現,更加接近計算機底層的機理,高度抽象的邏輯模型語言,符合人類理解的計算機二進位制表達方式。幾乎所有程式程式碼邏輯,思維方式幾乎是一樣的。精通c語言能夠對計算理解更深,只要想做,能夠實現任何東西,相當於精通了計算機原理,資料結構和演算法,是最核心的東西了。

    c語言聚集了所有語言都有的通用實現方式,能夠實現面向過程,面向物件等程式設計方式,而且語法簡介,不必像彙編,二進位制程式碼考慮相容性問題,跨平臺性好,封裝統一,這都是編譯器廠商的事情。不論是上層應用還是底層實現,都可以用c來解決,屬於萬通的語言。當時很多細節也太複雜,要對計算有深的理解,你才能很好的掌握。就跟當初的彙編一樣,偏應用層,已經很少用這兩種語言開發了,大多數用更佳抽象,簡單的語言來解決,因為只負責業務邏輯的實現,不太考慮硬體和效能問題。

    就出現了c++,java,c#,js,vb之類的語言,面向更佳特定的偏業務處理領域。其實c++是c語言的面向物件實現方式,包括類,多型,繼承之類的,可以去看一下c++核心思想這本書,很好的詮釋了c++為什麼是c的面向物件。編譯器還是把c++當作c來處理的,只是c++更加符合現實世界的抽象描述,所以適合開發大型專案,團隊開發,一切都可以以元件方式開發。更佳符合現代大型團隊協作的方式,但c++語言比較複雜,有太多的特性支援,比如說模版,雖然簡化了很多事情,但很多高階特性根本摸不透,龐大又複雜。能用好c++的人,需要花很多時間來學習和摸索,需要幾年的時間,現代c++1x,讓很多東西簡化了,也是一件好事情,至少細節實現起來簡單了。

    為了創造更高階,更簡單的語言,然後就出現瞭解釋型,java,C#,vb,lua,js等等,透過直譯器將位元組碼翻譯成平臺對應的機器碼,具有跨平臺性,相容性,移植性,更高維度的抽象能力。這種語言只符合偏業務處理,缺乏對底層控制能力,學習週期短,開發速度快,成本低,這類語言很受企業歡迎,也造就了龐大的網際網路市場,培訓出更多的人才,雖然降低了門檻,但也是一件好事。如今計算機的效能已經不再是瓶頸,所以這類語言非常火,就拿java來說,應用層幾乎可以全包。伺服器,移動計算領域,網際網路,學習成本低,有現成的框架,試錯成本低,而且人才多,開發成本低,開發效率高,企業都是需要成本來控制的。但是java有個缺點,發展的太龐大,屬於什麼都想做,但什麼都做不精。有點不三不四,並沒有像專業領域發展。慢慢會被專業領域的語言所代替。還有人才方面,大多數java程式設計師水平都認知比較膚淺,缺乏學識,對計算機整個系統的認識還停留在表面。

    比如說安卓系統和ios系統,安卓需要弄到8核8g,ios還是止步不前雙核1g,那是有原因的,一個是java程式一個是oc程式,都帶垃圾回收機制。效能上表現就不一樣,程式設計水平又差很多檔次的。就好比一個是專科,一個是本科,能一樣嘛?所以大多數安卓的程式又卡又慢,就算java虛擬機器 在怎麼牛逼,在怎麼最佳化,真沒啥用!主要還是看寫的程式碼。

    這就很好的說明為什麼要精通c了。當你精通後你會對計算機的本質有一個更深瞭解,不只是停留在寫寫程式碼上面了,會思考問題的根本原因,應該透過更佳合理的方式解決問題,而是思維能力上的轉變,這才是核心要素!。程式碼是個人都會寫,真的不難。為什麼大多數培訓班說只要3個月就能培訓程式設計師,因為大多數人只停留在業務邏輯的處理上,真沒啥技術含量。

    當然語言只不過是工具而已,用什麼工具解決什麼問題,不要太困惑!核心要素:資料結構,演算法,思維能力,這三點很關鍵。任何領域都這樣!

  • 10 # 我低端就改我名

    因為你的老師真的不會別的。就是C,估計也只會70年代那版的。而且絕對搞不清楚ANSI C和gnu C的區別,更別說交叉編譯了(能用跟搞清楚是兩個概念)。

    C好比劍法中的獨孤九劍,簡單,難學,涵蓋天下武學總綱。只要精通C,其他家的劍法,看眼就會,而且比原本專學這劍法的用的還好,因為他學的是形式,你用的是本質。本質上說,所有高階語言都是C的函式包裝或者語法糖而已。當然,學習C並不能快速運用到開發當中,因為它本身沒有特別成熟的針對app的IDE和庫。因為太靈活,你根本不知道如何出招。不像java或PHP,一週就能做個東西出來。但不要灰心,從跑馬燈開始,到Linux驅動,再到第三方語言擴充套件庫…熬個十年八年,也就能出頭了。所以,C不是能裝逼耍帥賺大錢的語言,但能讓真正喜歡程式設計的人感受到快樂。

  • 11 # 怡心一毅A

    先從每年的使用語言排行榜來說,c語言都名列前茅;再從實際使用來說,即使你不是從事c語言開發,我也強烈建議,要想寫得一手優質程式,精通c語言是必要條件之一。

    c++是從c語言發展而來,java又從c++發展而來,精通c語言再上手其他語言如虎添翼,也就是可以說,c語言是一些常見語言的母語言。

    再說說c語言要學那些呢?不要以為你在大學學的幾個if,for迴圈等你就可以程式設計了,如果你那樣認為,那麼你基本沒入程式設計之門,皮毛都不算。學通c語言,一定要深入理解指標,記憶體四區,資料結構,檔案儲存,資料庫等幾個重要塊,然後實際做一些小專案,看看別人寫的程式。

    從我工作幾年看,基礎打深進步才快!

  • 12 # 臨冬之城

    就你在學校學的簡單的一本書,只是基本的入門,基本的入門!計算機語言二級c並沒有卵用,這種是給非計算機專業的同學考的或者需要考計算機四級的必經之路而已。想要精通不是說說就可以的,要精通普通人是需要參加相應的培訓學校繼續學習的。

  • 13 # 木魚児

    C語言是基於底層語言和應用語言的中間的語言,既有應用語言的語法,又擺脫彙編的繁瑣的步驟,作為程式設計必學的語言,如果一開始就學高階語言PHP JAVA,他們根本和真正程式毫無關係,只是一些IDE語言。

  • 14 # 楓林飄揚

    C語言是面向過程的語言,還有的就是面嚮物件語言,如Java、.net等等,C語言就好比電路學當中的分立原件,而面嚮物件語言就像是積體電路(模組化),不要求你瞭解積體電路內部也可以設計電路,只要知道各個端子就可以,面嚮物件語言的變數、方法就像是積體電路的端子,要知道怎麼和下一個模組連線。因此,從事程式設計行業,學習C語言不是絕對的。

  • 15 # 阿文的天空

    C語言是系統級語言。是一切程式設計和系統底層的語言。可以讓人掌握一切。另外效能可以做到極致。不過合格的c程式設計師很難。核心是C需要大量基礎性知識。包括計算機架構 通訊原理 檔案系統等

  • 16 # 飛一言

    每個人每天都會用到電腦和手機,電腦手機工作就離不開程式,這是一種誘惑,很多人就想學程式設計。因此,程式設計人員多過實際需要。如果不信,你在論壇上發個廣告試試,任何程式設計工作都有人接。因為,程式設計人員過剩,他們經常沒活做,待遇又低,他們又是學習型人才,他們就把找不到活待遇低歸結為不精通,因此就不斷學習,懂HTML的,又進修CSS,還不夠又進修指令碼語言,又學習VC,最後,還是不“精通”。而事實是人才過剩,而不是你不精通。也許某個崗位工資給的比較高,比如銀行管理伺服器,令人羨慕,事實上,那個崗位其實並不需要程式設計。極少數人的高待遇及普遍的人才過剩,使得“要精通c語言”很流行,其實是毒藥。

    https://m.365yg.com/i6498929170750374413/?tt_from=weixin&utm_campaign=client_share&from=singlemessage&app=news_article&utm_source=weixin&iid=19319407082&utm_medium=toutiao_android&wxshare_count=1

  • 17 # 斜月三星洞0

    哎呦,精通c語言,我先想到的是,真的精通的話,月薪5萬以上吧,不能太少,年薪起碼200萬吧? 你以為 隨隨便便就能精通了嗎?我絕對不敢在簡歷中寫“精通”這個詞,什麼是精通?玩c語言5年以內不管多牛估計都不敢叫精通,精通c語言的人可以編個java,精通c語言的人起碼懂大多數底層硬體,精通c語言的人起碼能拿c編一大堆驅動程式,精通c的人,最起碼懂作業系統原理,起碼能編個簡單核心,精通c語言的人,起碼是做某語言的核心編寫或者某語言的奠基人,不好意思,不敢想象寫精通的人得多牛,反正年薪少於200萬我覺得我不幹

  • 中秋節和大豐收的關聯?
  • 32歲學python晚不晚?求大神給指點一下?