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成,要谈论只占这么点比例的开拓措辞哪个好?没意义且占韶光。
欢迎事情一到五年的Java工程师朋友们加入Java程序员开拓: 854393687
群内供应免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的韶光来学习提升自己,不要再用\"大众没有韶光“来掩饰笼罩自己思想上的
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工程师朋友们加入Java程序员开拓: 854393687
群内供应免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)合理利用自己每一分每一秒的韶光来学习提升自己,不要再用\公众没有韶光“来掩饰笼罩自己思想上的