大家好,我是二哥呀,
我看朋友圈,有些地方已經開學了哈,我們這邊推遲到了 9 月 15 號以后,那對于大一新生/準大一新生來說,該如何選擇編程語言就是個頭大的問題,因為誰都怕選擇錯了呀,

主流的大學一般都會在大一上半學期開設 C語言這門課,但 C語言是面向程序的,應用領域比較窄,以后作業后用到 C語言的可能性不大,像 Java 啊、Python 啊、C++啊,是面向物件的,應用領域更廣泛,以后也更容易找到作業,
那到底還要不要學習 C語言了呢?那到底是選擇 Java 呢?還是 Python 呢?還是 C++ 呢?
還有前端的 JavaScript,新興的 Go 語言,天下第一的 PHP?
麻了麻了,
二哥作為一名 18 歲卻擁有 13 年編程經驗的老學長,奔著為人民服務的態度,我就把幾大編程語言拉倒了一個群里,給他們了一個勇于表達自己的機會,
C語言
大家好,我是 C語言,
作為開場演員,我需要大家更多的掌聲,快,
我是由貝爾實驗室的 Dennis Ritchie 在 1969 年~ 1973 年間發明創造的,瞧,就他——你們眼中的 C語言之父,

父親是這樣評價我的:“古怪的、有缺陷的,但同時也是一個巨大的成功,”
的確,我的指標不知道勸退了多少初學者,但如果有幸邁過去這一關,可以說潛力無限,
那為什么我還能獲得如此大的成功呢?
第一,我和 Unix 作業系統關系密切,
大部分 Unix 內核,以及所有支撐工具和函式庫都是用我來撰寫的,20 世紀 70 年代至 80 年代,Unix 風靡于各大高校,許多人開始接觸到我,并且深深地愛上了我,
以至于后來幾乎所有的作業系統都用到了我,比如說 Windows、Linux、macOS 等等,
第二,小而美是我的優點,
我非常的簡潔,幾乎沒有任何冗余,以至于我的庫函式,嗯,都少得可憐,
這有利有弊,有利的是,上手難度幾乎為 0,除了指標難以被新手控制意外,其他的基礎語法都很容易上手,
與此同時,由于庫函式的缺失,導致新手在開發任何一塊小程式的時候都必須得親力親為,
很多編程語言都受到了我的影響,比如說 Java、C++、C#、Python、Go 等等,
《指環王》里有這樣一句話:“one ring to them all”,可以把 ring 換成 language,這個 language 就是我,恐怕沒有人會不同意,
但我也必須得承認,如果大學只學我這一門編程語言,畢業后的就業形勢確實不容樂觀,因為你們當中的大多數人,都不會從事嵌入式開發和硬體驅動開發,
當然了,以后嵌入式會不會也火起來,也不一定,比如說,在眼鏡里植入一個芯片,讓鏡片變得更輕更薄更智能,就只能用我來搞定了,總不能再裝個 JDK 吧,哈哈哈,
最后我想說的是,如果你想成為特別牛逼的程式員,一定要對計算機原理、編譯原理有所了解,那么我更接近底層,顯然是繞不開的,
像 CSAPP 這本經典書,例子就是用我撰寫的,
大家懂我了嗎?
C++
大家好,我是 C++,對,比 C 多了兩個+號,意味著我就是 C語言的增強版本,
20 世紀 80 年代,比雅尼·斯特勞斯特魯普博士在貝爾實驗室作業期間發明并創造了我,瞧,就他——你們眼中的 C++之父,

從誕生之初,我就一直不停地增長,添加了諸多的新特性:
- 虛函式
- 運算子多載
- 多繼承
- 標準模板庫
- 例外處理
- 運行時型別資訊
- 命名空間
我必須得承認,我不適合作為第一門編程語言來入門,除非你極具天賦,否則你可能會因為我“從入門到放棄”的,在學習我之前,必須得搞一波 C 語言,
如果你想以后開發高性能的客戶端或者游戲服務器,建議學我,
Java
大家好,我是 Java,
一開始,我叫 Oak,1990 年,我就由詹姆斯高斯林等人創造發明了,算是雛形吧,瞧,就他——你們眼中的 Java 之父,

說起來,也挺有意思的,我當初瞄準的是智能家電這塊,也打算搞嵌入式呢,父親曾把我起名為 C++ ++ —,哈哈哈,直到 1995 年,我才正式改名為 Java,
我的優勢主要有四點:
第一就是學習資料豐富,幾乎遍地都是,這就極大地降低了學習的成本,
就連培訓班,為了品牌的宣傳,都忍痛割愛把視頻教程開源到 B 站上了,直接就能白嫖,可以說是省了一大筆培訓費,哈哈哈哈,
GitHub 上這份星標 200+ 的《Java 程式員進階之路》不錯啊,順帶推薦一把,
https://github.com/itwanger/toBeBetterJavaer

第二就是就業前景樂觀,雖然我現在已經很卷了,但是需求量仍然很大,因為我的生態好,車輪子多,能節省開發成本,不管是大廠,還是小廠,都比較鐘愛,
像阿里、美團,都是我的重度用戶,
如果要說哪門語言在國內找作業最吃香?
如果我喊是我,那絕對沒有第二門編程語言出來瞎逼逼,
像企業級 Web 開發、大資料分析處理、微服務、云計算、移動開發都是我的主戰場,還有影像處理、桌面應用開發、分布式系統開發、嵌入式等等,我也都能自由切入,
第三就是我搞出來了一個 JVM,可以跨平臺,你只需要敲一次代碼,編譯好,就能在所有平臺上運行,
第四就是我把指標這塊給砍掉了,這對新手來說,簡直就是福音,你只管折騰,記憶體什么的我來幫你搞定,當然了,也不能太瞎糊弄,OOM 也是會發生的,一旦發生,找起來問題就也挺頭大的,
綜合實力來看,我應該是編程語言中的大王,
Python
大家好,我是 Python,
由吉多·范羅蘇姆發明創造,第一版發行于 1991 年,瞧,就他——你們眼中的 Python 之父,

我的優勢就在于簡單易上手,
但講真,我的兩大核心應用領域,比如說人工智能、資料分析,對學歷都是有比較高的要求的,
還有爬蟲這塊,如果作為學習,比如說去爬爬網易云音樂下的評論,豆瓣上的高分電影,我覺得還可以,
但爬蟲這塊說實話,有風險,尤其是一些需要付費的內容,或者比較私密的資料,盡量不要去爬,
我比較疑惑的一點是,有些學校,明明牌子不是很響亮,卻特別喜歡拿我來給學生講,
恐怕以后的就業真的是大問題,
如果你是一名編程愛好者,那么推薦你來學我,寫一些自動化的測驗腳本了,我覺得蠻 OK 的,因為學習曲線比較平緩,
如果你想以我為生,那么盡最大可能提高你的學歷,很關鍵,
Go
大家好,我是 Go,也可以叫我 Golang,
對了,我爸是 Google,背靠大樹好乘涼啊,主創人員主要有三個,都是計算機領域的宗師級大牛:Rob Pike、Ken Thompson 和 Robert Griesemer,

像 docker、k8s 都是用我撰寫的,
我敢這么拍著胸脯說,我就是目前發展最迅猛的編程語言了,沒有之一,國內很多大廠都開始張開雙臂擁抱我了,
國內的位元組就是重度用戶,
為什么大廠會青睞我呢?
因為第一,微服務和云原生已經成為一種趨勢,而我作為一款高性能的編譯型語言,非常適合承載落地微服務的實作,又容易生成跨平臺的可執行檔案,相比于其他語言,也更容易在 docker 上部署,
第二,我兼具了 Java 和 C語言的量大優勢,比如說 Java 的垃圾回收,但 Java 需要 JVM 才能運行,我可以像 C語言一樣直接編譯運行,
第三,我是用 Goroutine(協程)實作的并發,避免了背景關系切換的額外耗費,兼顧了多執行緒的優點,簡化了高并發程式的復雜,
但我也有自身的缺陷,比如說,不支持多型,沒有注解,缺少框架等等,
C#
大家好,我是 C#,似乎比 c++ 又多了兩個 ++,
對了,我爸是微軟,由C和C++派生出來的面向物件的編程語言,由安德斯·海爾斯伯格主持開發,2000 年首次發布,我爸的野心也很大,就是為了取代 Java 的,

怎么評價我自己呢?
前后端的事都可以辦,但是,主要是針對 Windows,跨平臺性差,
當然了,最大的問題還是封閉性吧,再加上多次推倒重來的反復摩擦,鐵粉都離我而去了,傷心,
國內的職位還有一定數量,但大多集中在工具定制開發、游戲開發(unity 3d)等方面,
PHP
大家好,我是 PHP,
1995 年由拉斯姆斯·勒多夫開發,瞧,就他**——**你們眼中的 PHP 之父,

對,“我曾是世界上最好的編程語言”,
曾幾何時,我有多火,你們這些年輕一代的同學都想象不到,2000 年到 2010 年,可以說是我最輝煌的十年,幾乎每一家中小型公司的后臺都是用我開發的,
你們知道嗎?曾經,我才是 BAT 最主流的編程語言,現如今,他們都在冷落我,,,,,,
從神壇上跌落的我,有多傷心難過,你們恐怕也是難以想象,
但不管怎么說,不管是開發傳統網站還是前后端分離的網站,還是開發小程式和App的后端介面,我絕對是開發速度最快的語言,沒有之一,
當然了,這也可能是我被人詬病的地方,入門簡單意味著門檻低,很多開發者在使用我的時候就不那么注重代碼規范,只管代碼跑起來完事,
害,總之,我,,,,,,哭了,,,,,,
JavaScript
大家好,我是 JavaScript,作為壓軸的表演嘉賓,你們能想象到,我的分量有多重,
布蘭登·艾克在1995年5月僅花了十天時間就把我的原型設計出來了,woc,真的牛逼壞了!瞧,就他——你們眼中的 JavaScript 之父,

一開始,我叫 Mocha,后來網景公司為了讓我蹭點 Java 的“熱度”,就把我臨時改名為了 JavaScript,
以至于后來的很多初學者還以為我是 Java 的腳本語言呢,害!
世界上的大多數網站都是我的使用者,主流的瀏覽器(Chrome、IE、Firefox、Safari)都支持我,
講真,我也沒想到我會發展得這么好,
對于前端程式員來說,我、HTML、CSS 是三巨頭,缺一不可,我們可以說是相得益彰吧,
以前,我僅限于客戶端,也就是瀏覽器這邊,隨著 Node 的橫空出世,我竟然可以跨界到服務器端,著實爽了一把,
可能有人詆毀我,說我爛,屎山很多,但只要有瀏覽器在的那一天,我就會擁有眾多的傭歹,
總結
好了,就到這吧,這幾個家伙 BB 了這么多,是時候安靜一會了,
作為群主,二哥就來簡單總結一下吧,
編程語言沒有優劣之分,只有適不適合,
學習編程,千萬不要貪多,既想學這個,又想學那個,可能到最后,哪一個也不精通,不,精通這個詞可能過了,哪一個都不熟練,
也千萬不要有這種想法,這個簡單點,我學這個,學了一段時間后,發現有點難,覺得另外一個容易,換另外一個,那可真的是糟蹋了自己的大學時光啊,
哪怕只是大一,時間也是寶貴的,
如果你想走開發這條路,考慮到招聘崗位和學習成本,第一門編程語言首選 C 語言(科班)、Java(后端)、JavaScript(前端),
其次,可以選擇 C++、Go、Python、C#,
當然了,對于編程語言的學習來說,我是極度不推薦新手看書學習的,因為書要考慮到嚴謹性,很難兼顧趣味性,
這就導致很多初學者還沒入門就勸退了,
我推薦前期跟著視頻入門,然后不斷 coding 加深理解,最后再看書深入淺出,
完美的節奏,perfect,
有想要不同編程語言的學習路線和學習資料的嗎?可以在評論區里喊出來,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/298108.html
標籤:java
