我該不該學習C語言
這幾天把c語言過了一遍,基本上算是入門了,常用語法、函式的使用。c語言是比較古老的語言了,很多系統的底層、工業控制軟體都是使用C語言編寫,過一遍之後覺得c語言屹立不倒是有原因。c程式設計師有一句話:使用c語言時間長了,感覺自己能控制整個世界。
01 c語言和其他語言的區別和聯絡
c比較古老,很多現代程式語言設計時基於c的語法。C是面向過程的語言,Java、c#、Python、c++等是面向物件的語言,封裝的比較好,同樣執行速度也不如c快。c沒有複雜的封裝,所以使用起來很多東西需要自己編寫實現,入門容易精通難。c很多操作直接面向記憶體操作,還需要手動釋放記憶體,控制性更強,但也需要更多的經驗才能保證程式的穩定健壯,像現代語言都不需要考慮記憶體釋放。
02 c語言好學不?
好學,如果你學過Java、c#語言就會發現語法都差不多,像c語言中的結構體就和c#的結構很像。有很多人認為指標比較難學,其實不然,能搞懂Java、c#中的值型別和引用型別就能搞懂c語言的指標。c中的函式都是比較基礎的函式,不像面嚮物件語言那樣龐大繁多。掌握了常用的函式後,其他的可以查函式手冊,用法都差不多,soso easy。
03 能幹啥?
編寫嵌入式程式(電子電路控制)、桌面程式、遊戲、寫個服務、寫個dll庫給別人調、寫個作業系統(誰寫出來請務必聯絡我)、寫個別的語言。
04 那我該不該學?
這個由你自己決定!我個人認為不該學,現在很多公司不提倡重複造輪子,要快速開發,明天上線,用c寫程式實在不合時宜。我個人認為該學,下圖便是對這個急功近利時代的嘲諷,只會複製貼上的屬於體力勞作,詳情參考之前的這篇文章 程式設計師都知道,如何不被淘汰
圖片來自網路
為啥有些公司樂意招 985、211 畢業的,培訓出來的就不能創造價值了嗎?並非鄙視培訓出來的同學,但 985、211 的同學確實好使,他們受到過更加基礎系統的訓練,作業系統、網路協議、演算法、資料結構這些思維性的才是核心競爭力,所以學習c造造輪子也並非無用功。
大家思考一個問題,開源社群有很多優秀的開源專案,我們國人的開源專案能佔到多少?