C#和Java,究竟選哪個方向?我只說事實,你自己分析……

来源:https://www.cnblogs.com/freeflying/archive/2022/06/09/16359401.html
-Advertisement-
Play Games

好久沒到園子裡面逛了,回來看了看,.NET有點式微呀?Java/Spring/Linux……比以前多了很多,為什麼?博客園可是.NET的大本營了呀! 好吧,我承認,飛哥也動搖了,去年在ASP.NET的基礎上,開了一期Java Web班。給大家彙報一下心得體會吧: 錄課程前 其實我最開始學(2008年 ...


好久沒到園子裡面逛了,回來看了看,.NET有點式微呀?Java/Spring/Linux……比以前多了很多,為什麼?博客園可是.NET的大本營了呀!

好吧,我承認,飛哥也動搖了,去年在ASP.NET的基礎上,開了一期Java Web班。給大家彙報一下心得體會吧:

錄課程前

其實我最開始學(2008年),學的是Java,但進公司幹活(2009年),一直用的都是.NET。我入行的時候,Java還沒現在火,C#/WinForm/ASP.NET2.0,正是如日中天的時候。

2019年,開始辦培訓班,Java就已經大行其道了。做市場調研的時候,幾乎所有(規模大名氣響)的培訓機構,都開了Java班;只有極個別的培訓班,明面上宣傳又.NET班,但後期就會變著花兒的讓你轉Java。我有點懵:為什麼會這樣?.NET凋零如斯了嗎?

瞭解了一下,這些培訓機構的通用說法就是:Java的崗位多,工資高,.NET不行了……

本著科學和實事求是的精神,我做了一個小小的調研,非常簡單,大家都可以試試:找一個招聘網站,分別用Java和.NET/C#關鍵字進行搜索,對比他們的結果。根據我們長期的觀察,Java崗和.NET崗工資幾乎沒有差別,但崗位數量Java是.NET的3-5倍之多!所以……

我“逆向思維”了一下:找工作難不難,不只是看崗位多少的,還要看求職人數呀!學Java和學.NET的人數比例又是多少呢?我們做的是培訓班,就只考慮野生程式員吧,呵呵,這樣一算,不得了,還有學.NET的野生程式員麽?Javaer和.NETer的比例怕是10:1,是100:1吧!?

所以我下定決心,就講ASP.NET全棧開發,我最拿手的!

然後,2年過去了……

源棧出去的同學,就業那是沒得說,so easy,秒拿offer,印證了我之前的推測,和很多同行的感受:.NET真不好招人。(所以我們源棧的同學就好就業嘛,^_^)

而且我也理解了為什麼其他大型培訓班不講.NET:更新太快了,培訓講師怕是跟不上。呵呵,我上一期的講義,下一期照著講就翻車。

似乎一切都很美好,只有一點:來源棧咨詢的學員,很多直接問我們教不教Java?

當時我一是有點煩了,(.NET更好找工作)解釋得煩了,這麼一個簡單的道理,翻來覆去的說,不想解釋了;二是有點飄了,覺得我們可以擴大規模了,.NET的盤子畢竟只有這麼大,我們規模還小的時候沒關係,以後萬一源棧做大了呢,要未雨綢繆……

在ASP.NET的課程全部錄製完成之後,我想了想,C#和Java不是挺接近的嗎?我花點時間就把它也錄了吧!

錄課程中

我承認,我是罵著錄完Java的。

講C#的時候,每天都感覺在吃糖;講Java的時候,感覺每天都在吃屎。

那時候我真心覺得搞Java的工資高點是應該的,畢竟有句話叫做“錢難賺,屎難吃”嘛。

好煩呀!

從IDE(我腦子抽抽了用的eclipse),到語法特性(我用的Java 8),再到環境配置(Spring/Hibernate),沒一個省心的,滑鼠都被我摔壞了一個。最煩的就是這些問題,全™都是些技術無關邏輯不通的狗屁問題。

在此之前,我一直以為JavaScript是最噁心的;在此之後,我覺得Java也好不到哪裡去:

  • JavaScript噁心在它的語法,但這個至少是可控的,噁心的語法你可以不寫,出了bug你可以斷點調試,總是有反饋有進展的;
  • Java的噁心在它的配置(語法糖沒C#甜我都還可以忍),配置出問題,又沒個提示或者瞎JB亂搞的提示,那才是真的把人都搞瘋了!

我當時就在想喲:我是十年的老碼農,英語還馬馬虎虎過得去(所謂的開源“社區支持”在中文網裡我只能呵呵了),勉勉強強能搞定這些亂七八糟的問題,培訓班剛畢業的學生,咋整?

他們可不是我教什麼,公司就用什麼的:我講課用的eclipse,公司用IDEA呢;我講的Spring,公司用struts呢;我講的Hibernate,公司用的mybatis呢?或者其他更小眾的框架啥的……Java的框架組件這麼亂這麼碎,咋整?

關鍵是時間有限呀,我們源棧標準學制是6個月,其他很多培訓機構5個月,甚至4個月都搞定收工,還要講什麼docker/redis,呵呵,這樣出去的學生,搞個毛線!難怪用人單位恨死培訓班了。

錄課程後

說實話,第一期的Java學員,還是比較爭氣,都學完了學成了。

但找工作,……,那真的是一言難盡啊!

我感覺我都坑了他們一把,心裡還有點過意不去。比如一個重慶的同學,我覺得他學得真的好,mybatis、linux、redis這些都自己學會了,比很多學ASP.NET的同學強多了!所以我想,要個8-12K的薪水不算高吧?因為.NET的同學在重慶7K還是不難的,還沒他學得好。

毛線!

找了一個月,最後5K收場。他說,如果前面幾個6-7K的答應了,感覺有戲,但找了一個月,累了,也被打擊夠了,先有份工作學著吧。

面試卷得一逼。重慶一個普普通通公司初級崗,問JVM調優,問多線程和鎖,問大流量高併發的處理……初級崗啊!能把if...else寫利索,能把功能實現就謝天謝地了好吧?你讓他去JVM調優?你一個醫療行業網站定製的公司,能有多高的併發?!

說白了,就捲唄,反正市面上不缺人。“面試造火箭,工作擰螺絲”嘛。

我們.NET的同學求職,基本上當時/當天發offer;Java,一面二面三面……還放你鴿子。

最有意思的是,這個同學,入職一個月以後,公司鼓勵他們轉C#,轉過去就直接加工資:

剛纔專門問了一下,還是沒轉,繼續扛Java!小伙子,有點東西呀……

 

-------------------------------

 

本來是想理中客的,寫著寫著好像就專門黑Java一樣,(*/ω\*)

這樣不好,還是給Java說點好話:

  1. 如果你要進互聯網公司,.NET肯定不行的,很難,超級難,進去了也不是核心部門,可能是去做ERP
  2. 學Java確實鍛煉人,入門的難度和C#/.NET比,真不是一個級別的。C#如果(理解)能力夠,甚至都可以自學,visual studio一裝,後面就直接啪啪啪了嘛;Java能不能自學,可能要靠天意——配環境的時候人品爆不爆!?多少人就死在安裝Java配環境變數上?(順便吐槽一下Java教程,為啥都要從cmd配環境變數講起?IDE他不香麽?)
  3. Java知名度更高,哪怕是個小白,也能張口就“加瓦”;C#就完蛋了,“你們教的那個C井C叉啥的……”,“嗯嗯,點呢特還是多呢特……”太特麽羞恥了!

其他,其他真說不出來了,畢竟C#也開源跨平臺了,……

或者,學Java可以當捲王?憋笑,真的,中國最捲的程式員就是搞互聯網那一幫人!^_^,捲得昏天黑地。我做.NET做了十年,加班的時候屈指可數,好久好久都一直以為什麼996是段子——確實是養懶了,捲不動了,現在只有辦個培訓班才能維持的了生活這樣子。我當時要是去捲大廠,說不定都財務自由了。

 (嗯,是的,想得挺美!)

一不小心水了這麼多字,要有乾貨!

乾貨下一篇吧,下次一定,O(∩_∩)O哈哈~

真的,我這次錄課程,就專門把Java/JavaScript/C#這幾門語言共同的部分,剔了出來的,就是要看看,所謂的“主流編程語言大同小異”,究竟怎麼個大同怎麼個小異?數據說話:

 (數字代表視頻大小,單位:G)

面對過程(分支迴圈函數)和基本的面向對象語法層面(封裝繼承多態),Java和C#的區別不大,共有:C#:Java = 20.14:4.91:2.51 ≈ 8:2:1

但到了高階類庫(見下圖)部分,Java和C#找共同的部分就難了,共有:C#:Java = 7.47 :16.7 :14.5 ≈ 3:7:6

 

下一次,童靴們有興趣的話,我挨著把Java和C#不一樣的地方,給大家過一遍。以前覺得一個合格的C#程式員,3天就可以轉Java,還是想當然了一些,哈哈……

這裡還是安利一個寫代碼的小姐姐:源棧小九,先,O(∩_∩)O哈哈~

 趕緊的,說不定還能看到飛哥……

點擊鏈接加入群聊【一起幫·源棧·星光計劃】:QQ群:222132940
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • pom版本 <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.7</version> </dependency> 1.自定義合併單元格 在某些業務場景中可能會有合併單 ...
  • 主要內容 1·學習java日誌體系及日誌工具的演進 2·瞭解日誌採集、處理、分析等各階段的常用中間件 3·學會搭建完整的elk日誌平臺 4·學習日誌打點,切麵,日誌文件等輸出手段 5·項目實戰,完成一訪問日誌鏈路的跟蹤 1、Java日誌體系 1.1 體系概述 1.1.1 日誌介面 JCL:Apach ...
  • 前面我們詳細介紹了SSO、OAuth2的定義和實現原理,也舉例說明瞭如何在微服務框架中使用spring-security-oauth2實現單點登錄授權伺服器和單點登錄客戶端。目前很多平臺都提供了單點登錄授權伺服器功能,比如我們經常用到的QQ登錄、微信登錄、新浪微博登錄、支付寶登錄等等。 如果我們自己 ...
  • 一個工作了3年的粉絲,去一個互聯網公司面試,結果被面試官懟了。 面試官說:”這麼簡單的問題你都不知道? 沒法聊了,回去等通知吧“。 這個問題是: ”什麼是可重入鎖,以及它的作用是什麼?“ 對於這個問題,來看看普通人和高手的回答吧 普通人: 嗯。。。。。。。。。。。。。。。。。。 高手: 好的。 可重 ...
  • JDBC概述 JDBC(Java Data Base Connectivity,java資料庫連接)是一種用於執行SQL語句的Java API,可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。是Java訪問資料庫的標準規範。 JDBC提供了一種基準,據此可以構建更高級的工 ...
  • 手把手教你使用 Spring Boot 3 開發上線一個前後端分離的生產級系統(一) - 介紹 手把手教你使用 Spring Boot 3 開發上線一個前後端分離的生產級系統(二) - 資料庫設計 手把手教你使用 Spring Boot 3 開發上線一個前後端分離的生產級系統(三) - 項目初始化 ...
  • 來源:cnblogs.com/lwtyyds/p/15678152.html 常用類概述 內部類 Object類 包裝類 數學類 時間類 字元串 String Builder和StringBuffer DecimalFormat 內部類 「概念」 :在一個類內部再定義一個完整的類。 一般情況下類與類 ...
  • 0. 文章目的 面向有一定基礎的C#初學者,介紹C#中介面的意義、使用以及特點。 1. 閱讀基礎 瞭解C#基本語法(如定義一個類、繼承一個類) 理解OOP中的基本概念(如繼承,多態) 2. 什麼是介面 2.1 現實中的協定與介面 貓貓頭在整理電腦文件,需要一個小工具來分類文件,於是貓貓頭向群里求助: ...
一周排行
    -Advertisement-
    Play Games
  • GoF之工廠模式 @目錄GoF之工廠模式每博一文案1. 簡單說明“23種設計模式”1.2 介紹工廠模式的三種形態1.3 簡單工廠模式(靜態工廠模式)1.3.1 簡單工廠模式的優缺點:1.4 工廠方法模式1.4.1 工廠方法模式的優缺點:1.5 抽象工廠模式1.6 抽象工廠模式的優缺點:2. 總結:3 ...
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...