您现在的位置是:Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款 > 

03 linux 如何查看 youtube 評論(想做副業,學編程,學哪種語言比較好?(零基礎))

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款2024-05-25 02:04:43【】0人已围观

简介用的人很多,招聘容易,但是不適合做復雜的項目。現在用得越來越少了,迅雷以前有不少運營活動頁面是PHP做的。CC的語法足夠簡單,應該是最接近機器語言的高級語言,適合編寫操作系統底層,驅動程序,硬件相關的

用的人很多,招聘容易,但是不適合做復雜的項目。現在用得越來越少了,迅雷以前有不少運營活動頁面是PHP做的。

C

C的語法足夠簡單,應該是最接近機器語言的高級語言,適合編寫操作系統底層,驅動程序,硬件相關的程序以及看重性能的程序。由于過于簡單,構建大型程序的復雜度非常高,建議想往研發方向走的同學都學習一下C語言。

可以對計算機一些底層原理了解,比如指令執行過程,內存管理,異常,多線程,編譯過程等又更深層次的了解。掌握C語言再學習其他語言會變得很輕松,學習破解也有幫助,畢竟匯編基本都可以反編譯出C代碼。

C++

C++是一個糟糕的語言,這不是我說的,這是Linux之父說的。我自己用C++四五年時間,越到后面就感覺這句話越有道理。

首先C++的強大是毋庸置疑的,但是作為一個跟C一樣偏底層的語言,如果不理解寫的代碼背后到底發生了什么事,如果出了錯,你是永遠不可能知道錯在哪里的。

一個沒有垃圾回收的語言,不用智能指針很容易導致內存泄漏,錯誤的用了智能指針不但內存泄漏之后不好解決,還容易導致提前釋放等問題。

C++支持強制類型轉換,如果轉換前后的內存結構不一樣,很有可能導致各種隱性問題。還有Java之類非原生語言的異常處理都是語言自定義的異常,而C和C++中的異常很多都是操作系統層的異常。

Windows下一個簡單的try catch,你覺得可以抓到try中所有的異常,但是由于異常處理函數的指針保存在棧上,這時一個棧溢出可能直接導致異常處理函數指針被覆蓋,異常會出現在你意想不到的地方。微軟有大神曾說過,想你的代碼后續可維護就刪掉代碼中所有的try catch。

又由于語言非常底層,當程序出現底層崩潰的時候,想解決掉這個崩潰往往要讀一些匯編,這時候如果使用了大量的模板,比如stl和boost,那生成的匯編幾乎完全不可讀。看過stl代碼的人應該都知道這玩意兒寫的有多晦澀,就導致了你想用一個C++庫,如果不了解這個庫的實現原理,那大概率會出錯。

C++的復雜度又讓你很難真的理解那個庫的原理,結論就是C++強大,但是必須用的人也強大。C++直到現在還在瘋狂的增加特性,我用了四五年我自己都不敢說自己會玩C++,能用其他語言就優先考慮其他的,把C++作為最后的選項,不建議新手學,除非你的目標領域必須使用。

Rust

Rust是為了解決C和C++的各種問題而出現的語言,性能接近C++,通過所有權限,不用垃圾回收就解決了生命周期管理。有包括管理,又有極其嚴格的編譯器檢查,能編譯通過的代碼就不會有大問題,編譯器直接把水平不夠的新手擋在了門外,通過解決出問題的人是方式,從根本上解決了C++的問題。

我第一次用rust寫個小程序就跟編譯器較了一天的勁。它的缺點就是學習難度太大,語言太小眾,庫太少,很多輪子都要自己造。但是隨著微軟之類的大廠使用,相信之后發展會比較好,新項目如果需要C或者C++可以優先考慮rust。

Java

我現在主要也是一個Java程序員,對于Java這個語言我并沒有什么很特別的感覺,配套設施完善,什么都能干,體驗非常贊,就是內存占用有點難看。想搞安卓考法的必修,阿里有大量的服務器項目使用Java。

唯一想吐槽的是gradle這個構建系統,版本問題搞得很頭疼。

JavaScript

js是前端的必修課,沒得選,然而node讓js也萬能了。用node做過后端項目后,感覺動態類型語言還是不太適合,由此帶來的低級錯誤很多,雖然可以用typescript解決,但是最終還要編譯成js,無法直接調試。由于沒有原生的多線程支持,利用cpu也只能通過開多個進程的方式。小項目的后端做著玩還可以,大點的還是考慮Java或者是go吧。

Lua

Lua是極其輕量的語言,語言特性接近js,runtime非常小。作為一個腳本語言,性能出色,內存占用低,很適合各種嵌入式設備或者插件系統。

Go

這玩意兒一定是谷歌為了解決自己后端項目中遇到的問題而開發的語言,各種特性直戳痛處。語法簡單,規范嚴格,這就讓不管什么水平的開發寫出來的代碼差距都不會太大。

靜態類型,沒有默認參數,沒有異常處理,可以降低犯低級錯誤的概率。編譯成原生代碼,可內嵌C代碼,原生支持協程和多線程,可以保證性能,支持跨平臺編譯,輸出單文件方便部署,這些優點帶來的問題是Go的指向性太強,只適合做高并發api類的后端服務。

想用Go開發其他任何領域都會覺得特別別扭,類似C的語法過于簡單,又沒有泛型,導致很多功能都顯得很啰嗦。但由于Go解決了部署問題,跨平臺問題,降低了研發人員的水平要求,降低了犯錯誤的概率。

關于這些語言的性能沒有絕對的排序,但根據我做項目帶團隊和面試的經驗,絕大多數的程序員的水平都還碰不到語言的性能瓶頸。一般來說對語言的理解以及多線程,算法,網絡,數據庫,緩存。硬件甚至業務的理解都比語言的性功能影響更大。

再次強調,語言只是工具,只有適不適合,沒有好與不好。基礎強大,用哪個都不怕,基礎太差,用什么都尷尬。

只是會語法并不是掌握了這門語言,要知道程序背后發生了什么。比如C++的對象模型,Java的虛擬機,垃圾回收,Go的協程,js的promise,rust怎么編譯通過等等。

基礎是一門語言的核心,不管學習哪一門語言都要重點學好基礎。

很赞哦!(312)

Instagram刷粉絲, Ins買粉絲自助下單平台, Ins買贊網站可微信支付寶付款的名片

职业:程序员,设计师

现居:江西抚州金溪县

工作室:小组

Email:[email protected]