在Java大环境下.NET程序员如何夺得一线生机

本文涉及的产品
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 在Java大环境下.NET程序员如何夺得一线生机先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜:  笔者从业十余年,一直是在.NET圈子摸爬滚打,曾经也有几次机会可以转Java,但或许是懒惰,或许出于对微软的信任,也或许是相信市场供求关系的调整,总之,没有换过语言,一直追寻微软脚步,实践各种新技术并扩充知识面。

在Java大环境下.NET程序员如何夺得一线生机
先来看一组数据,从某招聘网站直接检索3-4w的岗位,会看到Java与.NET社会需求量的巨大差异,这里就不再对比高薪的岗位了,.NET的高薪岗位更是少的可怜:

  笔者从业十余年,一直是在.NET圈子摸爬滚打,曾经也有几次机会可以转Java,但或许是懒惰,或许出于对微软的信任,也或许是相信市场供求关系的调整,总之,没有换过语言,一直追寻微软脚步,实践各种新技术并扩充知识面。身边也有不少.NET技术人员换成了Java,有些发展的着实不错,有些也不尽人意。回头望去,可能真的应了那句话“选择比努力更重要”。
  现实中我们得正视自动的短板,笔者说说自己在.NET技术落地上遇到的一些困难,我想大家或许都多多少少遇到过,应该有些共鸣:
1 普遍对.NET技术的不信任
  两个架构师出了两套方案,.NET的和Java的,很难得到公平的对待。即便Java的方案粗糙,但公司更信任Java一些,毕竟大环境如此,人也好招。而且很多领导也不太懂技术,看不出不同方案间悬殊的差距。Spring全家桶也着实给力,一套下了,基本通吃。虽然.NET Core如今发展的也不错,但还是有人气没市场吧,一些招.NET Core的公司,可能面试题都不知道怎么出,自己公司也不用,就是面试上聊聊。
2 在大数据处理上的短板
  .NET其实很早就能做大数据项目了,有本地的也有云端的,本地的太生僻,没人知道,也很少有.NET开发去学习,云端的更是用不起,笔者身边倒是有一位做.NET大数据的同僚,他的话很中肯,“你跟人家讲.NET做大数据,人家心里就是‘呵呵’”。
3 流计算的空缺
  .NET的流计算刚刚开源,这时候资料太少,基本不会用。
4 Azure着实消费不起
  讲真,笔者用过2年多的Azure真的很好用,但是就是真真儿的贵呀,中小企业更喜欢包年的产品。
5 不好招人
  虽然行情不好,很多人找不到工作,但是企业就是招不到合适的人。现在,.NET方面的硬手,以当年的老人为主。因为近些年,社区、书籍、培训机构、学校对.NET都比较冷淡。.NET新技术的书籍很少,大多都比较浅显。新人获取知识的途径受限,对.NET技术的理解并不理想。如果不知道如何检索微软放出的资源,就很难与时俱进。微软的很多资料是没有中文版本的,很多人还是难以接受英文文档。总之,硬手不好招,上半年招到个会AOP的,感觉跟中奖了一样。
  然后,正题来了,能看到这里说明,大家也都是.NET同僚。面对冷清的市场环境,我们该如何应对呢,我说下自己的想法:
1 如果你还年轻而且又有野心和精力,还是换Java或者别的语言吧
  .NET的性价比比较低。你需要掌握微软的产品和技术,还需要学习非微软平台的产品和技术,要了解微软的Azure,最主要的你英文要好,因为英文是.NET继续走下去最大的砍儿。总之,就是学的多,学的杂,学的累,然后挣钱少,不好找工作,不少工作需要英文。
2 如果不想换语言了,那么应该做以下这些准备
学习英语 学习英语是我们首要的任务,.NET主流的大公司除了万达以外,我了解的都是外企在用,英语交流将会成为最大的障碍。
学会检索微软的资源 微软提供的3类资源比较有营养:第一,微软项目最佳实践,就是微软的代码,比如:ABP、eShop;第二,微软提供的电子书,比如《Cloud Design Patterns》;第三,MSDN上一的一些不错的博文。
多多实践开源技术 比如Docker,K8s等
Azure Azure微软一直在推,有条件的话还是学习学习,没条件的看下文档了解下,有些外企在用,比如斯伦贝谢、微软,你比别人了解的多,就能脱颖而出。
  总之,在Java大环境下.NET程序员如何夺得一线生机的方法就是——学英语+学习微软官方代码/文档+开源技术。

  如果,你没有动力,想要放弃,我觉得有三点,我们要比Java有优势一些:
  第一,VS的最好用的IDE。
  第二,外企不太在意程序员年龄,国外65岁的程序员都有,所以进入外企可以降低下中年危机的风险。
  第三,有些东西Java不擅长,比如与微软产品的集成如AD、SharePoint、Exchange,还有Window客户端应用开发方面。
  然后,七夕节了,你想想你不努力,你老婆发消息怎么回复。

  祝大家,七夕节快乐,工作虽忙,也别忘陪伴家人哦。
作者:MeteorSeed

原文地址https://www.cnblogs.com/MeteorSeed/p/11313541.html

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
5月前
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
528 33
|
5月前
|
Java 程序员 应用服务中间件
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-2)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
97 0
|
5月前
|
存储 缓存 Java
【高薪程序员必看】万字长文拆解Java并发编程!(5):深入理解JMM:Java内存模型的三大特性与volatile底层原理
JMM,Java Memory Model,Java内存模型,定义了主内存,工作内存,确保Java在不同平台上的正确运行主内存Main Memory:所有线程共享的内存区域,所有的变量都存储在主存中工作内存Working Memory:每个线程拥有自己的工作内存,用于保存变量的副本.线程执行过程中先将主内存中的变量读到工作内存中,对变量进行操作之后再将变量写入主内存,jvm概念说明主内存所有线程共享的内存区域,存储原始变量(堆内存中的对象实例和静态变量)工作内存。
162 0
|
5月前
|
设计模式 缓存 安全
【高薪程序员必看】万字长文拆解Java并发编程!(8):设计模式-享元模式设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的经典对象复用设计模式-享元模式,废话不多说让我们直接开始。
109 0
|
5月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
82 0
|
5月前
|
机器学习/深度学习 消息中间件 存储
【高薪程序员必看】万字长文拆解Java并发编程!(9-2):并发工具-线程池
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的强力并发工具-线程池,废话不多说让我们直接开始。
192 0
|
4月前
|
Java 应用服务中间件 Linux
在Java 12环境中配置和部署Apache Tomcat的步骤。
这段部署Tomcat的冒险旅程充满技术挑战,但同时也像游戏一样充满乐趣。它需要你提前准备,仔细执行,并随时准备解决意外情况。成功后,你就可以在这匹强壮的网络野马上,带着你的Java应用,冲向Web开发的璀璨星空。
136 56
|
3月前
|
传感器 机器学习/深度学习 算法
Java 大视界 -- Java 大数据在智能农业温室环境调控与作物生长模型构建中的应用(189)
本文探讨了Java大数据在智能农业温室环境调控与作物生长模型构建中的关键应用。通过高效采集、传输与处理温室环境数据,结合机器学习算法,实现温度、湿度、光照等参数的智能调控,提升作物产量与品质。同时,融合多源数据构建精准作物生长模型,助力农业智能化、精细化发展,推动农业现代化进程。
|
5月前
|
数据采集 自然语言处理 Java
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
本文以反面教材形式,剖析了在使用 Playwright 爬取懂车帝车友圈问答数据时常见的配置错误(如未设置代理、Cookie 和 User-Agent),并提供了 Python、Java 和 .NET 三种语言的修复代码示例。通过错误示例 → 问题剖析 → 修复过程 → 总结教训的完整流程,帮助读者掌握如何正确配置爬虫代理及其它必要参数,避免 IP 封禁和反爬检测,实现高效数据采集与分析。
253 3
Playwright 多语言一体化——Python/Java/.NET 全栈采集实战
|
5月前
|
存储 监控 算法
Java程序员必学:JVM架构完全解读
Java 虚拟机(JVM)是 Java 编程的核心,深入理解其架构对开发者意义重大。本文详细解读 JVM 架构,涵盖类加载器子系统、运行时数据区等核心组件,剖析类加载机制,包括加载阶段、双亲委派模型等内容。阐述内存管理原理,介绍垃圾回收算法与常见回收器,并结合案例讲解调优策略。还分享 JVM 性能瓶颈识别与调优方法,分析 Java 语言特性对性能的影响,给出数据结构选择、I/O 操作及并发同步处理的优化技巧,同时探讨 JVM 安全模型与错误处理机制,助力开发者提升编程能力与程序性能。
Java程序员必学:JVM架构完全解读