淺聊我和一些編程語言的緣分

初識 DEV C++

首先小衚衕學自己並不是科班出身,不是計算機或者互聯網相關專業的的學生,我本科期間是車輛工程專業,偏機械一點。
本科期間對編程語言的唯一認識就是C,其實也不算是,準確的是DEV C++,但大家都懂得,本科的通識課是可以忽略不計的。
image.png
再之後就到了研究生學校這邊,考研的時候就想着能跳出老專業的限制,去見識一些新的東西,因為四年的大學生活,讓我明白如果畢業之後,還是找一份畫三維圖的工作的話,我可能會瘋掉~
陰差陽錯就來了我現在導師這邊,說是做的嵌入式,但實際上更多是電子相關的東西,或者說單片機。
image.png

又遇 Java+Mysql數據庫

還記得去年暑假,導師給我安排的第一個任務居然是做一個安卓的APP。
image.png

我是一臉的問號啊?是我拿錯劇本了嗎?

但導師安排的第一個任務,也不能不做,於是我開始了我的Java學習生涯~

同時還搭配着android studio這個軟件的學習,前後一個月,趕鴨子上架做了一個手機APP出來。

image.png

這個軟件實現的功能並不複雜。無非就是:數據的輸入,處理,輸出,再加上一個存儲歷史數據的功能。

image.png
image.png

最後勉勉強強的過了,再往後做到了MYSQL數據庫管理系統部分,所以說我的第三門語言是數據庫操作語言~

給大家放一個我當時做的筆記:這個鏈接也可以看//www.mubucm.com/doc/3b4CT1Qx8k_

image.png
但這部分的功能並沒有完全的實現,因為開學研一的課程還是挺多的,之後這件事就不了了之了,後來我反應過來,可能這件事就是導師拿來考察我學習能力的,還好當時我沒擺爛,認認真真的去做了。

可見有些事情你可以不喜歡,但當你不得不去做的時候,一定要態度端正,盡自己最大努力。

陷於 C

我第一次看到一段C代碼時,並沒有覺得它是有多麼的特殊,在當時的我看來,無非就是固定的代碼結構,重設其中的一些變量,封裝各種功能的函數,提供相應的接口,按照邏輯進行調用。

image.png

原諒我的這種認識,因為當時的我還在51學習板上跑我的C程序,撐死一兩百行代碼。

改變我對C代碼認識的,其實源自於我惡補計算機相關課程的時候。

那段時間就覺得計算機好神奇,奇怪這玩意是怎麼跑起來的?

《計算機:一部歷史》、《深入理解計算機系統》、《計算機是怎樣跑起來的》、《程序是怎樣跑起來的》、《操作系統之哲學原理》、《網絡是怎樣連接的》…………(需要這方面電子書的朋友也可以給我留言)

image.png

看了很多書和課程,但現在回想起來好像又什麼都沒記住,因為計算機的歷史真的是太精彩了,湧現出的一個又一個天才,創造出一個又一個的改變和正在改變這個世界的技術……

哎呦,跑題了,咱們回到C上。

就像有一句話說的那樣:

你可以不寫C語言的程序,但是你不可能不用C語言寫的程序.

我們可以需要深挖一下有哪些軟件以 C 語言為主

  • 操作系統內核。例如 Linux 等
  • 微控制器
  • 視頻編解碼器
  • 底層共享庫,例如 OpenSSL 等
  • Unix 命令行工具,例如 ls、cat 和 git 等

現在幾乎所有基礎設施,操作系統都有C語言的痕迹,我們很難離開它。

如果說未來有一天產生一種新的語言終將代替C,我想這種語言最起碼要有以下幾個特點:

  • 能夠重用現有的 C 庫;
  • 建立在已有的知識和慣例之上;
  • 沒有垃圾回收,或者採用手動內存管理;
  • 控制可執行文件的大小;
  • 系統層面的友好。你需要能夠操縱位和位元組。你需要良好的二進制運算符和指針;
  • 逐步替換 C 代碼。能夠良好地兼容 C 的可執行文件。

當然這些也都是個人觀點,純屬沒事瞎想,未來的事誰說的清楚。

對於現在我來講,C語言仍然是一門很高深的語言,距離掌握它還有很長一段路要走。

工具語言

雖然我平時學習生活中都以C語言為主,但一旦涉及到某些領域的功能,還是會去接觸新的語言。

比如,C++做QT開發

image.png

比如,HTML5和CSS寫一些簡單的網頁

image.png

再比如,用Python爬取一些數據,並進行數據處理

image.png

等等……………………

最後

歸根結底,編程語言只是一種工具,一種我們和計算機進行交流的工具。

編程語言之間沒有高低貴賤,更沒有歧視鏈,有的只是不同的應用環境適合不同的語言,一切都是時代造就的趨勢。

參考文獻:
//www.techug.com/post/can-c-be-replaced/
//t.csdn.cn/SLK0T
//t.csdn.cn/CpCFM