從事嵌入式開(kāi)發(fā)十幾年,基本上圍繞著這兩種編程語(yǔ)言展開(kāi),都可以直接操作底層的編程語(yǔ)言,用的越熟練越是感覺(jué)工具屬性越強(qiáng)。雖然兩種編程語(yǔ)言分屬于不同的編程思想,用的時(shí)間長(zhǎng)了覺(jué)得差異也不是很大,現(xiàn)在就個(gè)人的從業(yè)經(jīng)歷,講述下兩種編程語(yǔ)言的差異和共同之處。
現(xiàn)在已經(jīng)很多人覺(jué)得c語(yǔ)言過(guò)時(shí)了,因?yàn)閺恼衅傅男枨罂匆驤AVA的明顯居多,Python現(xiàn)在基本上雷聲大雨點(diǎn)小還成不了氣候,現(xiàn)在很多主流的客戶端框架還是C語(yǔ)言和C++的天下,畢竟性能是誰(shuí)也繞不過(guò)去的事情,從就業(yè)的絕對(duì)數(shù)量上兩種的數(shù)量并不低,但是入門的門檻提升了,簡(jiǎn)單學(xué)點(diǎn)很難找到工作,而且一旦找到合適的工作,工資水平并不低,所以很多人覺(jué)得這兩種編程語(yǔ)言過(guò)時(shí)了主要是初學(xué)者喊出來(lái)的,初學(xué)的人總想找個(gè)好學(xué)編程語(yǔ)言,由于入門難度高加上相對(duì)就業(yè)機(jī)會(huì)少,少并不是代表著不重要,但凡有點(diǎn)編程經(jīng)驗(yàn)的人都會(huì)覺(jué)得這兩種編程語(yǔ)言極其重要。
這兩種編程語(yǔ)言有什么區(qū)別,相對(duì)來(lái)講C語(yǔ)言簡(jiǎn)單一點(diǎn),C語(yǔ)言屬于面向過(guò)程的語(yǔ)言,非常符合編程的思想,基本上功能可以直線化陳述,C語(yǔ)言語(yǔ)法細(xì)節(jié)不是很多但組合非常靈活,曾經(jīng)在剛學(xué)C語(yǔ)言的時(shí)候?qū)W了一個(gè)月就膨脹了覺(jué)得什么C語(yǔ)言的代碼都能搞定了,結(jié)果去圖書館借了一本Linux內(nèi)核的書籍去學(xué)習(xí)看了100多頁(yè)就徹底放棄了,理論和實(shí)踐差異太大了,所以不要覺(jué)得C語(yǔ)言好學(xué)但在實(shí)際使用過(guò)程中,不真實(shí)做過(guò)項(xiàng)目永遠(yuǎn)不要輕易下結(jié)論是不是真的掌握了。
C++屬于比較難得編程語(yǔ)言,也是個(gè)人覺(jué)得最難得編程語(yǔ)言,主要是語(yǔ)法細(xì)節(jié)繁多而且還在不停的更新,所以很多人在學(xué)習(xí)之初覺(jué)得能夠編譯通過(guò)就是一件非常幸福的事情,這門編程語(yǔ)言的設(shè)計(jì)理念是盡量在編譯環(huán)節(jié)排除語(yǔ)法細(xì)節(jié)錯(cuò)誤,所以很多人覺(jué)得C語(yǔ)言編譯就會(huì)簡(jiǎn)單許多,帶著警告照樣可以編譯通過(guò),程序也可以繼續(xù)執(zhí)行。這門編程屬于面向?qū)ο罄砟?,什么事情都離不開(kāi)對(duì)象和類,核心思想是多態(tài),繼承,封裝,看著很簡(jiǎn)單真要在實(shí)踐中掌握明白,不經(jīng)過(guò)項(xiàng)目的洗禮基本不可能的事情。
如果非要說(shuō)出這兩種編程語(yǔ)言的差異,初學(xué)者可以考慮從C語(yǔ)言入手這樣入門簡(jiǎn)單些,然后再去切入C++的學(xué)習(xí),稍微有點(diǎn)編程經(jīng)驗(yàn)的程序員都會(huì)淡化編程語(yǔ)言本身,編程的本質(zhì)不是掌握了多少編程語(yǔ)言而是編程思想是不是掌握徹底了,到了這種層面也不會(huì)在乎什么編程語(yǔ)言了,學(xué)習(xí)任何東西都要掌握問(wèn)題的本質(zhì),不要只看表面的現(xiàn)象,只要自己認(rèn)準(zhǔn)的事情全力以赴的做就可以了。
不要在選擇上花費(fèi)太多的時(shí)間,選擇了就全力去做,中間不要隨便切換編程語(yǔ)言,這山看著那山高注定什么也學(xué)不會(huì)。
轉(zhuǎn)載自微信公眾號(hào):程序員互動(dòng)聯(lián)盟
作者:東輝在線