最近,我发现在博客园和其它地方,有不少争论java和.net哪个好的文章,其实这是种好现象。虽然到了架构层面,技术是通用的,但兼听则明,而且技多不压身,多种挣钱的方式总不会错。

本人最近主攻Java,最近在这方面也出了两本书,但之前也讲过.net课,而且之前和别人创业时,用的也是.net,体会下来,语言只是挣钱的手段,关键是要看怎么用它们挣钱,也就是学习进阶和挣钱的方式。

本文将结合自身和听到看到的经历,不仅将从语言使用的角度来说明这两种语言的异同点,更将从提升能力接活挣外快的方面说明这两种语言的作用,相信大家在看完后会感叹:其实争论没必要,关键要选择适合自己的方式。

1 入门时,语法有差别,所以不能拘泥细节

对于初学者而言,.net和java语法就像天书一样,一方面很难懂,另一方面调试起来也很困难,如果要自己写段能通过编译的代码,非常困难。如果同时学Java和.NET,估计更会一头雾水。

其实磨刀不误砍柴工,对于初学者而言,不论学哪种语言,都应该深入考虑这个问题:高级开发或架构在用这个语言时,一般会用到哪些特性?换句话说,这种语言能怎么帮到我?我是学Java的,就从Java角度来回答这个问题,我相信.NET的回答应该会是同样精彩。

1 Java主要用在架构方面,通过Spring MVC等架构能优化开发时间。

2 通过引入各种组件,比如nginx等,能实现高并发分布式的功能。

3 目前Java主要用在互联网高并发等场景,而且在处理大数据方面有一定的优势。

对于初学者来说,了解到上述知识点并不费劲,但一旦了解后,就可以在入门阶段不走弯路,比如别过多拘泥于加减乘除循环之类的语法,跟不会去学Swing之类的用不到的技术。

虽然在入门阶段,Java和.net语法差别点不少,但如果不拘泥于细节,会发现开发的模式就像搭积木:用不同的API去组装实现各种功能,我们需要关注的是各种函数以及参数有什么作用,该如何使用。

但如果硬要列出两者谁好谁话,这本身就有问题,因为这样一来,会让自己过度深入语法,就好比学英语时过多关注单词,语法本身其实是相通的。

在我之前和现在的公司里,我见过不少从.net转到java的,问他们当时转型用了多久?一般最多不会超过3个月,前提是.net技能都已经精通。

2 做项目时,其实已经模块化,差别的只是API

当初学者开始做第一个商业项目的时候,会发现所接触到的知识点非常有限,比如数据库相关,MVC架构相关(如何在三者之间传数据),外带些数据结构(比如Java集合) 。

而且,项目经理和架构师已经把项目的外型框架搭建好了,连数据库以及前后台交互的方式也无需管了,开发者做的更多的是模仿,仿照别人做的模块中的流程,开发自己的模块。

在这个层面上,Java和.NET虽然开发用的IDE不同,打包部署上线的方式也不同,但在开发过程中,由于框架已经是现成的,所以相差的还是API。

相信大多数的项目经理会说,管理Java和.net项目的方式其实差不多,而两者的差别,大多已经通过框架和模块掩盖掉了。

之前我在外企,项目经理都是一个项目做好就换另外一个项目,我也见了不少项目经理同时管理java和.net的多个项目,也没发现他们因此而混淆。而且,做项目时,编码占的比例也不大,其它还有分析需求,设计架构和流程,和测试等人员联调,估计编码的工作量也就占个3成,要讨论只占这么点比例的开发语言哪个好?没意义且占时间。

3 两者的差别其实体现在项目背景上

之前主要说的是,从技术上来看,两种语言差别不大,而且从架构角度上来看,一些基于分布式高并发的技术,通过两种语言都能实现。

凡是存在的,必是合理的,那么目前沸沸扬扬的Java与.NET之争原因何在呢?

个人观点,体现在项目背景上,面向不同需求和开发成本的项目,或许java/.net确实有些优势。

比如,某项目是套基于桌面的管理系统(成本管理机器管理均不论),是应用在一个公司里,那么.NET是个比较好的选项。

又如,某项目是个并发量比较小的网站,比如社区门户外带简单的动态数据,那么JSP即可。

再如,如果是个高并发的项目,而且本公司的其它项目都是基于Java,那么可能会用到Java里的一些框架。

或者,某人之前做了不少.net项目,有现有的技术积累,再做个私活,用java和.net都可,那么可能就选.net了。

也就是说,两种语言没有优劣之分,只有更适用,再具体来讲,用哪个语言成本更低,开发周期更短。

4 到了架构级别,更多得考虑底层实现,很少顾及语法点

本人勉强到了架构师级别(但自认为如果用高级开发的标准,本人应该属于优秀),在我眼里,两种语言真没差别,我相信大多数的架构师或高级开发应该有相同的观点。

因为在这个级别,需要考虑的不仅仅是如何用语法实现功能点,而且如何性能调优和解决高并发问题。我列些最近我们组架构师解决的问题。

1 直接访问数据库太慢了,需要用MyCAT进行分库。

2 网络通讯,用http协议,有三次握手,且http报文头有些长,需要用tcp协议。

3 业务上,两套表需要相互同步数据,这就得用到mq集群。

以上为例,在这个程度,基本已经很少考虑两种语言的差别,或者可以这样说,我之说以在框架层面选用java,是因为该项目主要是基于Java的,而不是某些功能只有java实现,反之亦然。

5 最近我见到值钱的技能,语法只占了很少比例,所以两者都能挣钱

最近比较流行收费课程,我最近在学玩 转Spring全家桶(https://time.geekbang.org/course/intro/156) 这门课程,也了解了不少基于.NET的课程,最近也打算自己搞个收费课程。

在这个过程中,我发现如果在课程中,只讲差异性的语法,估计不会有市场,因为这些课程都是基于项目管理或者是框架的。我浏览了一些基于Java和.net的框架教程,发现分布式框架的要点都基本相似。

从这个角度来看,在选型java和.net的时候,千万不能事先有成见,比如认为哪种语言不好,或者哪种语言绝对不适合某种场景,因为这样就相当于给自己画地为牢,约束了自己的发展前景。

6 不拘一格去挣钱

学编程语言是为了挣钱,这里给出些一般的挣钱方式。

1 首先当然还是做好本职工作,具体来说,就是认真地把编程语言结合业务背景,然后再深挖性能优化和架构级别的技能,让自己尽快达到高级开发或架构师的水准。

2 如果感觉还有余力,就去找些外快,比如做项目写书做讲课老师或者开视频教程,不知道渠道怎么办?网站搜外带群发邮件,如果身边有人已经做得很好了,就赶紧请教。

我在博客园里就见到不少讲挣钱的文章,而且博客园里的图书编辑和负责出视频教材的人也不少,所以博客园内部的资源就不少。

就拿外包项目来说吧,基于java和.net的都有,而且各层次各成本的都有,所以说,与其争论,还不如多找找挣钱渠道,或者干脆多看点资料让自己快进步。

7 总结和求推荐

本来这篇文章应该是年后第一周(也就是上周)发表的,但事情太多,推迟了一周,但自感觉没因此降低写文章的标准。

在上文里,更多地是从技术和架构来表述两种语言的差别,而最近我看了不少身边的人自己创业,他们挣钱的方式,也是和语言无关的。

比如到各种兼职外包网站接活,比如出视频教程,又如出去培训讲课,或者接项目自己来做,这些挣钱的方式里,更多考虑的是成本和周期,各种项目的甲方,也不会因为开发语言是java而多给钱。

所以,争论语言的差别,乃至争论语言的好坏,真的没必要,有时间争论,还不如出去挣点外快,如果不知道渠道,就到网上找,如果感觉缺少挣外快的能力,就赶紧学。

最后,祝各位用java的.net的python的(还有各种其它语言的)伙伴们技术日益进步,多多发财。

如果大家感觉本文不差,请点击下方的按钮推荐本文,大家的推荐是对本人最大的激励。

与其争论java和.net的差别,还不如多想点用编程技术挣钱的方式相关推荐

  1. [转载] 用 C++ 和 Java 写算法,差别大吗?

    参考链接: C++和Java中的继承比较 作者:王晓华,GitChat 优秀作者 为什么会有这篇文章? 无论是七.八年前开始写的 "算法博客",还是三年前出版的图书<算法的乐 ...

  2. 豆瓣9分以上,这7本Java经典名著,你还缺哪本?

    Java作为企业级应用开发的首选,深受互联网大厂的青睐.对于求职找工作的朋友来说,Java可能仍然是后端工程师的优选,虽然Python热度不断上升,但是Java作为老牌语言,在企业中的地位依旧稳固,它 ...

  3. Java前景如何?现在还能学Java吗?

    Java是目前世界上最流行的计算机编程语言,是一种可以编写跨平台应用软件的面向对象的程序设计语言.随着互联网的快速发展,对于程序员的需求量很大.那么Java前景如何?新手还能学Java吗?本文小千给大 ...

  4. java try catch 异常后还会继续执行吗

    java try catch 异常后还会继续执行吗? catch 中如果你没有再抛出异常 , 那么catch之后的代码是可以继续执行的 , 但是try中 , 报错的那一行代码之后 一直到try结束为止 ...

  5. idea重写接口没有@override_细说 Java Overload 与 Override 差别

    Java 编程五年多,我自以为已经熟谙 Overload 和 Override 背后的工作机制.当开始思考和记录下面这些案例时,才意识到我对它们的了解并不像自己想象的那样.为了让内容更有趣,下面会把它 ...

  6. java书籍_腾讯大牛每天都要花一小时读的这11本java电子书籍,你还不看?

    最近有小伙伴私信想要一些电子书 今天小编为大家整理出来了这11本java必学书籍大家快学起来吧! 第一本代码整洁之道Clean Code 内容提要 软件质量,不但依赖于架构及项目管理,而且与代码质量紧 ...

  7. JAVA偏向锁的什么时候释放_​java偏向锁,你还没上车,它就要被去掉了

    java偏向锁,你还没上车,它就要被去掉了 StringBuilder真的比StringBuffer要快吗 我之前写过一个贴子,说StringBuffer就是一个伪线程安全类,一石激起千层浪,好多同学 ...

  8. 武汉Java程序员工资是否还会增长?工资为什么那么高?

    武汉Java开就业薪资多少?一直是很多学习的人关心的问题,毕竟,大家花费时间和精力学习Java都是希望能收获一份满意的高薪工作.那么,学习武汉Java开发后薪资一般有多少呢?下面,给大家分析一下. 武 ...

  9. mysql的week函数与JAVA计算周的差别问题

    转载:mysql的week函数与JAVA计算周的差别问题_cwfreebird的博客-CSDN博客 今天遇到此问题,记录下解决办法.转载. 原获取周方法: public static String g ...

最新文章

  1. 使用FileUpload控件上传图片并自动生成缩略图、自动生成带文字和图片的水印图
  2. 安装java打开.jar文件
  3. 4位快速加法器设计_芯片的诞生,奇妙之旅,从RTL代码到真实芯片是怎么设计制造的...
  4. C++_pthread read-write lock_读写锁_visual studio 2015下配置
  5. 进一步释放技术红利,阿里云推出全新内存增强型实例re6,性能提升30%
  6. Java黑皮书课后题第3章:**3.27(几何:点是否在三角形内)假设一个平面上有一个直角三角形。编写程序,提示用户输入一个点的x坐标和y坐标,然后判断这个点是否在该三角形内
  7. adb shell读取返回值_shell学习笔记03(函数amp;shell工具amp;面试题)
  8. 使用BeetleX访问redis服务
  9. 2020邮箱账号密码大全_通知 | 复旦大学2020年春季学期研究生选课FAQ
  10. 一次开发、多端分发,阿里巴巴发布AliOS车载小程序
  11. 【STM32】HAL库 STM32CubeMX教程十四---SPI
  12. 【Flink】Disconnect from JobManager responsible for
  13. Android异常总结---ActivityManager: Warning: Activity not started,its current task has been brought to th
  14. 社工库源码mysql_体验盒子:社工库源码大全(持续更新)
  15. 扁豆凝集素LCA/LcH填料/小扁豆凝集素-琼脂糖凝胶/双花扁豆凝集素DBA/黑皮扁豆凝集素
  16. 使用Fragment和ListView、RecyclerV实现动物信息显示
  17. latex大括号 多行公式_如何快速入门 LaTeX,在 XMind 2020 中轻松输入方程。
  18. 华为鸿蒙OS5摄概念机,华为P50Pro概念图:首发鸿蒙OS,后置5摄能让iPhone12甘拜下风吗...
  19. Linux下socket编程之UDP简单实现
  20. http://wenzhang.ztcztc.com/Detail.aspx?id=70537498-7FD3-8992-552B-27716F9315F8

热门文章

  1. 基于云开发的商城小程序
  2. 计算机中文字转换为表格怎么弄,word中如何把文字转换为表格,文字转换表格的方法...
  3. Qrobot健康小卫士
  4. 29. Linux网络抓包——nmap,tcpdump
  5. 东华大学计算机复试难度,东华大学计算机复试回忆
  6. 英特尔服务器新消息,英特尔10nm Ice Lake-SP服务器处理器或将延迟到2021年第一季度...
  7. 如何用Leno看+脑图高效创新
  8. ajax伪造请求头设置失败,以及浏览器插件解决方案(待完善)
  9. excel明细生成多个word文档,比邮件合并好用100倍。
  10. Sublime Text3自动保存的功能(失去焦点自动保存)