网易首页 > 网易号 > 正文 申请入驻

一个五年.net程序员转Java学习之路

0
分享至

大学毕业后笔者进入一家外企,做企业CRM系统开发,那时候开发效率最高的高级程序语言,毫无疑问是C#。恰逢公司也在扩张,招聘了不少.net程序员,笔者作为应届生,也乐呵呵的加入到.net程序员行列中。

C#.net非常容易上手,之前在大学里,做过winform和webform开发,也曾经在老师那里承接过小项目,赚点外快。于是在工作岗位上驾轻就熟,很容易就上手了企业开发框架,仅一年多,笔者就成为公司的开(jia)发(ban)骨(feng)干(xian)。

C#.net的网评比Java要差,笔者曾经在知乎上看到一个国外华裔程序员的文章,内容主要是国外的悠闲不加班的生活,文末一句:“忘了说 我是做.net的”引发了讨论的高潮。知乎程序员中,写Java、python、go、JavaScript几乎成了政治正确,作为.net程序员的笔者很少在相关讨论中活跃,但对java的印象已经有了改变。那时笔者所在的外企仍在大规模使用C#.net,笔者也就拒绝去接受网上的喧闹的声音,专心写好代码,学习设计模式和前端技术等等。

恰逢互联网行业发展势头正劲,笔者自然顺势而为,加入了一家规模稍大的互联网公司,当然还是写C#。由于之前在外企任劳任怨,什么活都愿意揽过来干,积累到不少很有用的研发知识和经验,于是在跳槽过程中顺风顺水,基本人家问什么,我都能答出来,于是相对轻松地加入了新公司,开启了互联网研发之路。正是亲眼鉴证了互联网研发模式,才让笔者确定了转型Java的决定。

新公司的框架很老旧,那时还在用.net framework2.0,业务代码非常复杂庞大,某个十年业务的项目里的一个方法,居然有一千多行,单是阅读代码,就让笔者心累,更心累的是,这一千行代码的方法名,居然被叫作“外观模式”(facade)……很难想象公司最核心的业务,跑在这么臃肿烦复的代码里。性能和效率都被看重的互联网研发模式,终于开始和C#.net产生了矛盾:.net framework和iis不开源。系统在运行过程中遇到了如下几个问题:

1、接口服务项目的访问效率遇到瓶颈,基本只能上负载均衡加机器。

2、某些大项目要数十台机器去承载日常访问,运维难度加大(后续上了持续集成和平滑发布,运维方便了很多)。

3、较少数情况,系统会出现一些疑难杂症,当产生问题的代码在闭源工具包里,调试人员几乎束手无策。(反编译的代码真难看囧……)

4、不断增加机器,成本增加,这可不只是机器成本,人家不开源,收费也不便宜……

5、可定制化较差。某些极端场景下,我们希望程序能够更大程度的消耗服务器硬件资源,而服务器程序都是别人的,人家为了安全都设定好“最佳阈值”了,很难更进一步压榨服务器资源。

6、缺乏开源社区支撑、大数据相关研发乏力……

7、国内部分互联网公司提供的开放平台工具,居然不提供C#的SDK……(根据http请求自己写SDK)

诸如此类,不胜枚举。

转Java吧。

技术转型的阵痛在所难免。公司内的接口研发和后台管理系统研发是分开由不同人员负责,能够同时开发接口和后台系统的人并不多。笔者技术体系相对完善,在团队中获得不少尊重。也曾亲自带团队做研发,写完接口又带兄弟研究ckeditor源码并做定制化修改,忙的不亦乐乎。然而转Java成了笔者当时的心病:本职工作做得很好,团队不会允许贸然改用Java技术栈这种冒险行为。笔者已经私下学习了许久,却不能直接上项目实际操练,非常可惜。

精诚所至金石为开,笔者终于等来了一个机会:成为公司新项目的主程序员,负责整个项目的后端架构、设计和研发。新项目人员不多,但都是各类技术中的优秀人才,包含ios、Android和H5研发人员,笔者为他们提供接口,并开发后台管理系统提供给产品和运营同事。

独立负责设计和研发,工作量虽大,自由度却大了不少,于是笔者决定用Java来完成整个开发任务。项目leader对笔者的技术功底很是信任,不过仍希望团队用C#.net追求稳健,但看在笔者执着坚持,也就同意了。为了降低技术转型对新项目带来的风险和进度影响,笔者还是做了一定妥协:用Java研发接口服务,后台管理系统仍用C#.net。

接口研发期间笔者着实吃了不少苦头,项目框架搭建问题层出不穷,spring的运用不纯熟,导致经常在框架层面报错。新项目的座位与公司Java开发团队座位不在同一楼层,笔者几乎每天都要爬几次楼梯去Java研发团队取经。好几次遇到问题解决不了,都想放弃然后用回C#.net。项目leader多次看到此情景曾多次施压,笔者跟项目经理坦(zhuang)言(bi):“如果Java搞不定,我会在两天内用C#.net把活干完,不拖项目进度。”靠着这份坚持和韧劲,还有多次对Java研发团队的叨扰,项目框架终于搭建完成,笔者也借着多次的取经,弄清楚框架的原理,完成了对spring的实践。拥有依赖倒置、控制反转的编程思想和设计模式的运用经验,理解Java框架的设计思路是很简单的,在框架搭建结束后,业务代码的输出几乎是行云流水,在项目完成之际,笔者都忘记自己曾是个.net程序员。项目最终顺利上线,并且仅用两台机器就抗住了较高的并发,笔者对Java有了更多的信任和喜爱。

有.net的编程基础,学习Java会相对容易,但必须逃离几个陷进:

1、对基础知识务必要重视:C#是一门非常出色的语言,它提供的语法糖让复杂的业务表达起来也十分优雅,搭配伶俐的lambda表达式和linq,数据结构的基本原理在大部分场景下都被弱化,而数据结构和算法正是编程的精髓。

2、对原理的渴望和求知欲:用C#编程,无法查看大部分程序集内的方法,只能自己上论坛找或反编译,求知欲可能会逐渐弱化。而写Java后,经常会自己ctrl+鼠标进入方法查看源码。这一点Java真是非常性感。

3、懒人思维不可取:C#.net对于链表数组等数据结构的排序和查询都做了高度封装,几个表达式就能得到想要的结果,而Java的表达式则没这么伶俐。在Java世界里,自己弄明白原理,自己写是更高效、更对得起自己的方案。

使用Java完成商用项目的开发,只是技术转型的开始,只能算踏进门,算不得转型成功。笔者仍花了很多时间学习Java的数据结构;学习Apache的公共工具包,偶尔点进去看看实现源码;继续学习设计模式及其应用。在一些评估用C#研发更容易的项目,笔者仍然坚持用Java去完成。为了能有更多Java项目练手,笔者申请进入了搜索引擎研发部门,通过了Java团队架构师的技术面试,加入了渴望已久的团队,最终能专职写Java做搜索引擎服务。当然,离开了当初的部门,也就抛弃了在老团队中的地位和荣誉,但笔者觉得很值。

在多年开发经历中,笔者确实感悟 语言是互通的,万变不离其宗。学习新语言只要下决心并付出努力,基本都能办到。然而后续的挑战则是更大规模的项目的设计思路,设计模式的运用,架构设计策略,代码堆叠方案,甚至是不同功能模块的技术选型。这些都需要仰仗厚重的经验、扎实的功底和日积月累的技术实力。

未来大数据和机器学习的热潮已经如火如荼的展开,手握Java这一门利器,运用storm、elasticsearch、Hadoop、lucene等绝技的Java程序员,必然能更好的适应潮流。

最后,开发这么多年我也总结了一套学习Java的资料,如果你在技术上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系方式,有时间记得帮我点下转发让跟多的人看到哦。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
贾乃亮疑似步入第二段婚姻 许诺生儿赠予大平层 甜馨处境引人深思

贾乃亮疑似步入第二段婚姻 许诺生儿赠予大平层 甜馨处境引人深思

天天热点见闻
2026-07-01 08:44:27
7月开始运势彻底抬头的3大生肖,财运闪亮登场,贵人来到身旁!

7月开始运势彻底抬头的3大生肖,财运闪亮登场,贵人来到身旁!

毅谈生肖
2026-07-01 10:30:46
勒布朗离开湖人了,然后?

勒布朗离开湖人了,然后?

张佳玮写字的地方
2026-07-01 04:46:52
真死亡之组!F组4队全出局:荷兰被点杀日本遭绝杀 瑞典3球惨败

真死亡之组!F组4队全出局:荷兰被点杀日本遭绝杀 瑞典3球惨败

念洲
2026-07-01 07:39:20
两性关系:不管你信不信,女性过了45岁后,基本都有这7个现状

两性关系:不管你信不信,女性过了45岁后,基本都有这7个现状

荔子言
2026-06-11 13:28:05
男篮世预赛出线局势!7队已提前晋级:中国队未锁定印度出局

男篮世预赛出线局势!7队已提前晋级:中国队未锁定印度出局

篮球快餐车
2026-07-01 02:02:55
历史第一人!哈兰德一己之力改写挪威28年世界杯空白,缔造传奇

历史第一人!哈兰德一己之力改写挪威28年世界杯空白,缔造传奇

夜白侃球
2026-07-01 11:29:58
今日重要赛事!7月1日,CCTV5,CCTV5+节目表

今日重要赛事!7月1日,CCTV5,CCTV5+节目表

薇说体育
2026-07-01 09:55:31
你涨我也要涨!谁让你针对我!日本签证费涨5倍专割中国客?

你涨我也要涨!谁让你针对我!日本签证费涨5倍专割中国客?

旧铁皮往南开
2026-06-29 21:00:34
不是梅西!他才是世界杯第1人,1项纪录无人能及,C罗排不上号

不是梅西!他才是世界杯第1人,1项纪录无人能及,C罗排不上号

章民解说体育
2026-07-01 09:58:34
巴西队捡到宝了!皇马球迷都懂的伯纳乌底牌,才是世界杯争冠密码

巴西队捡到宝了!皇马球迷都懂的伯纳乌底牌,才是世界杯争冠密码

澜归序
2026-07-01 06:28:22
这次换杜特尔特那边偷着乐,捅了马蜂窝的马科斯,只能低头找中国

这次换杜特尔特那边偷着乐,捅了马蜂窝的马科斯,只能低头找中国

不甜的李子
2026-07-01 13:20:32
吴建豪娶日本人再婚24小时现荒唐,朱孝天预言成真

吴建豪娶日本人再婚24小时现荒唐,朱孝天预言成真

晓踏就是我
2026-06-30 20:17:07
南部战区公布驱离菲律宾飞机过程,空军飞行员对讲记录公布:在自家院子转, 紧张个啥?!

南部战区公布驱离菲律宾飞机过程,空军飞行员对讲记录公布:在自家院子转, 紧张个啥?!

每日经济新闻
2026-07-01 08:29:36
放弃中国籍加入日本!4次率队击败中国队,退役后却又想回国捞钱

放弃中国籍加入日本!4次率队击败中国队,退役后却又想回国捞钱

跳跳历史
2026-06-19 14:53:52
06年护士郭爽被领导潜规则,拉高中男友复仇,临刑前为何喜极而泣

06年护士郭爽被领导潜规则,拉高中男友复仇,临刑前为何喜极而泣

从零到一研究所
2026-06-30 16:04:21
中国或将迎来前所未有的死亡高峰?专家:都是这些关键因素导致的

中国或将迎来前所未有的死亡高峰?专家:都是这些关键因素导致的

青梅侃史啊
2026-07-01 12:05:14
詹姆斯离队:湖人塞翁失马,5200万薪资空间开启重建

詹姆斯离队:湖人塞翁失马,5200万薪资空间开启重建

赛场名场面
2026-07-01 01:29:25
中央决定:程福波任国务院国资委党委书记

中央决定:程福波任国务院国资委党委书记

新京报
2026-06-30 19:18:26
天天锻炼不等于长寿,专家忠告:年过60,只适合三种运动方式

天天锻炼不等于长寿,专家忠告:年过60,只适合三种运动方式

坠入二次元的海洋
2026-06-29 12:54:46
2026-07-01 13:59:00
软帝大熊
软帝大熊
互联网IT在线教育
98文章数 29关注度
往期回顾 全部

科技要闻

Claude Fable 5恢复上线方案公布

头条要闻

墨西哥2-0战胜厄瓜多尔 世界杯第二张捂嘴红牌出现

头条要闻

墨西哥2-0战胜厄瓜多尔 世界杯第二张捂嘴红牌出现

体育要闻

卖球衣救子的门将,把德国扑出了世界杯

娱乐要闻

罗晋大孤山素颜照,秃顶白发引热议

财经要闻

新氧贷款:宣传年化15%,实际顶格24%

汽车要闻

交付持续攀升再破纪录 零跑6月全球交付93376台

态度原创

旅游
艺术
本地
公开课
军事航空

旅游要闻

微言   “网红树”碰头被砍?文旅安全生态不该做取舍

艺术要闻

这5件2026届毕业油画作品,被中国美术学院美术馆收藏

本地新闻

贵州小城的新目标:举办“村超”世界杯!

公开课

李玫瑾:为什么性格比能力更重要?

军事要闻

以色列防长:穆杰塔巴已被列入死亡名单

无障碍浏览 进入关怀版