主頁 > 後端開發 > (快)開學了,各大編程語言在群里吵翻了天!

(快)開學了,各大編程語言在群里吵翻了天!

2021-09-07 08:12:18 後端開發

大家好,我是二哥呀,

我看朋友圈,有些地方已經開學了哈,我們這邊推遲到了 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 的腳本語言呢,害!

世界上的大多數網站都是我的使用者,主流的瀏覽器(ChromeIEFirefoxSafari)都支持我,

講真,我也沒想到我會發展得這么好,

對于前端程式員來說,我、HTML、CSS 是三巨頭,缺一不可,我們可以說是相得益彰吧,

以前,我僅限于客戶端,也就是瀏覽器這邊,隨著 Node 的橫空出世,我竟然可以跨界到服務器端,著實爽了一把,

可能有人詆毀我,說我爛,屎山很多,但只要有瀏覽器在的那一天,我就會擁有眾多的傭歹,

總結

好了,就到這吧,這幾個家伙 BB 了這么多,是時候安靜一會了,

作為群主,二哥就來簡單總結一下吧,

編程語言沒有優劣之分,只有適不適合,

學習編程,千萬不要貪多,既想學這個,又想學那個,可能到最后,哪一個也不精通,不,精通這個詞可能過了,哪一個都不熟練,

也千萬不要有這種想法,這個簡單點,我學這個,學了一段時間后,發現有點難,覺得另外一個容易,換另外一個,那可真的是糟蹋了自己的大學時光啊,

哪怕只是大一,時間也是寶貴的,

如果你想走開發這條路,考慮到招聘崗位和學習成本,第一門編程語言首選 C 語言(科班)、Java(后端)、JavaScript(前端),

其次,可以選擇 C++、Go、Python、C#,

當然了,對于編程語言的學習來說,我是極度不推薦新手看書學習的,因為書要考慮到嚴謹性,很難兼顧趣味性,

這就導致很多初學者還沒入門就勸退了,

我推薦前期跟著視頻入門,然后不斷 coding 加深理解,最后再看書深入淺出,

完美的節奏,perfect,

有想要不同編程語言的學習路線和學習資料的嗎?可以在評論區里喊出來,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/298108.html

標籤:java

上一篇:Jmeter獲取jtl檔案中所有的請求報文

下一篇:??六萬字《Spring框架從入門到精通》(建議收藏)??

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more