当我找工作搜索.Net开发人员时,它们大部分都是相同的东西.Net,ASP,SQL Server,CSS,Javascript,AJAX,也许还有C#.而使用Java,您可能必须拥有Java,Sturts,Spring,JSF,EJB,RDMB,Eclipse RCP,CSS,Javascript,AJAX,Rest,以及任意数量的特定Java API.是否更容易成为.Net开发人员,因为技术如此专注?或者只是这样?
这是不同的,而不是更容易.
Java作业是针对框架列出的原因是因为Java有大量的框架和设计模式可以用来使事情更容易维护.现在,设计模式和框架也开始出现在.NET中,所以期望看到工作变得更像Java工作.
两个世界中的模式和实践一样多 - 但它们在Java社区中更为成熟(Java雇主会将它们推向您,您会发现自己正在推动您的.NET雇主).
很大程度上,Java vs .NET是语法.做其中之一(两者都做!).但请注意模式和框架,因为它们真的可以帮助您编写更好的代码.
我是C#开发人员,相信我,Java中的选择比.Net更多.但是,.Net中的明显优势在于,您所使用的任何作业都使用相同的IDE(Visual Studio),并且(在大多数情况下)使用最新的.Net框架(维护旧版应用程序除外).不同的雇主可能会有一些微妙的差异,例如他们使用企业图书馆,MVC与表格,WPF等; 但如果你是一名经验丰富的C#开发人员,你可以根据自己的基本原理轻松适应.
我所在领域的一些开发人员没有学习任何其他编程语言,他们倾向于懒惰,只需拖放对象即可在80%的时间内完成任务(有些人甚至认为面向对象编程只是带对象的代码) .如果你熟悉C++或任何基于C语言,你肯定会占上风,但这不是必需的.
我建议学习最好的编程实践,永远不要把所有的鸡蛋都放在一个篮子里(即使上帝对我们的男人这样做),并且对C#以外的其他语言开放.如果你学习一种基于C语言,那么学习其他主要语言并不会比用VB.Net开始那么难.
无论哪种方式,他们都是薪水丰厚的工作,如果你选择其中任何一个,你不会后悔.
我的2美分.
是的,使用Java,您可以使用Web框架,如JSF,Struts,Struts2,Wicket,SpringMVC,Stripes,Tepestry,Facelets ......仅举几例.每家公司都使用不同的框架,所以如果你换工作,你将学习新的框架.而它唯一的网络框架,持久性呢?JDBC,Hibernate,JDO,iBatis.谁可以为Java命名5个模拟框架?谁使用过5种不同的应用服务器?数据库怎么样?我甚至使用过Informix和Teradata.我认为所有.NET都使用Sql Server,并且更容易学习一个数据库.
请不要忘记以下.NET技术:Win.Forms,Silverlight,WCF,WPF,WWF ......在Web开发之外,.NET中仍有很多学习知识.成为一名高级 .NET开发人员并不容易,至少比Java更容易.但是,恕我直言,如果您没有过去的开发经验,那么在.NET中启动会更容易.
在Java世界中,您使用来自许多社区的技术进行开发,在.NET世界中,您只使用Microsoft的技术.在我看来,Java开发人员在技术选择方面更加自由,但有时它也会给你带来问题.:)
Java本身有更多的领域; 我的意思是,Java开发人员现在拥有的机会比市场上任何其他技术都多.他们正在受到有吸引力的补偿,以开发不同的基于Java的应用程序,软件和游戏等.它将来也会继续增加.坚持使用JAVA :)
让我们排列你提到的技术(有些你不提及).这肯定会有点不精确,所以将是一个挑剔的天堂:)
.NET Java The overall encompassing technology ASP Struts A Web development framework JSF (.NET BCL?) Spring An application development framework EJB SQL Server an RDBMS A database (VS) Eclipse An IDE
CSS,Javascript,AJAX,REST都是两个堆栈共有的技术.
您必须学习的技术概念与您选择的堆栈相同 - 只是名称不同..NET的所有人都将是"微软Blah Blah Blah",而Java的人都将拥有时髦酷炫的名字......
还需要考虑的其他重要事项是,您可以在职业生涯的中途获得"品牌"作为.NET或Java开发人员.在那时,切换变得更加困难,因为(可以理解)你在没有选择的那个中经验较少.到目前为止,我一直在交替,但是它带来了一系列问题,你们在每一方面都有新的库/框架经验.
关于开发Java与.NET的优缺点的其他想法?例如,什么类型的公司,文化,支付等?
对我来说,似乎.NET往往是在更成熟的公司,而Java被很多初创公司使用(考虑到低成本的入门和开源库).薪水是可比的,但.NET似乎有点高.Java开发可能会更有趣,因为您可以更频繁地使用新框架,而不仅限于特定范例.
在与我的.Net朋友交谈时,似乎开始使用非常标准的东西更容易,因为大多数人都以微软的方式做事.Java的大量选择意味着您必须在许多不同级别选择库和工具包.Java的优势在于,当官方或普通方式不适合您时,可以使用更多选项.
在实践中,我认为它没有多大区别.任何一个Java商店通常都会选择一个特定的东西.例如,Struts或Spring或JSF,而不是全部三个.Hibernate或Ibatis或纯JDBC,不是全部三种.所以我认为有相同数量的东西需要学习,因为无论你使用的是Java堆栈还是.Net堆栈,你仍然可以解决大致相似的问题.