2009-07-20 6 views
34

私は.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開発者になれるのは簡単ですか?それとも、そんな感じですか?.NetとJavaのジョブ

答えて

43

これは簡単ではありません。

Javaのジョブがフレームワークに対してリストされているのは、Javaがフレームワークと設計パターンをたくさん持っているため、物事をより簡単に保守できるようになっているからです。デザインパターンとフレームワークは現在も.NETに多く登場し始めています。そのため、ジョブがJavaジョブのように見えるようになることを期待してください。

両方の世界で同じパターンとプラクティスがありますが、Javaコミュニティでより多くのパターンとプラクティスが確立されています(Javaの雇用主がそれらをあなたに押し付けるでしょう。

ほとんどの場合、Java対.NETは構文です。いずれかを行う(両方を行う!)。しかし、より良いコードを書くのに本当に役立つパターンとフレームワークに注意してください。

+3

+1最も優れた答え: –

+0

私は、SpringMVCの経験がSeamを手伝ってくれません。多分私はパターンを見ないでしょう。 – IAdapter

+0

「ダミーのためのデザインパターン」または「ヘッドファーストデザインパターン」をチェックしてください。どちらもJavaの例を使用して記述されていますが、.NETにも適用できます。 SpringMVCフレームワークは、ASP.NET MVCに匹敵します。 – Fenton

10

あなたが言及している技術(そしてあなたがしていないもの)を並べてみましょう。これは必ずしもそうnitpickersの楽園になります多少不正確になります:)

 
    .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のものは、すべてのJavaのものがすべてファンキーなクールな名前...私のネット仲間と話すことに

+0

-1不正確ですが、確かに控えめです。 –

6

を持つことになり、一方、それはかなり標準が簡単である何かに始めるように思える、「マイクロソフト何とか何とか何とか」になりますこれは、ほとんどの人がMicrosoftのやり方で行うためです。 Javaの選択肢が非常に多いということは、さまざまなレベルでライブラリとツールキットを選択する必要があることを意味します。 Javaのメリットは、公式または一般的な方法があなたに合っていない場合、利用可能なオプションがさらに多くあることです。

実際には、それほど大きな違いはないと思います。どんな単一のJavaショップも、一般的に1つの特定の事柄を解決します。 Struts、Spring、JSFなど3つすべてではありません。 HibernateまたはIbatisまたは純粋なJDBCであり、3つすべてではありません。だから、Javaスタックや.Netを使っていても、ほぼ同じような問題は解決しています。

+2

しかしながら、明らかなサイドノートは、特定のJavaショップが特定のテクノロジーの組み合わせで解決するかもしれない一方で、別のJavaショップが異なるものを選ぶかもしれないということです。あなたがあなたのキャリアの過程で複数の仕事をする可能性があります。したがって、Java開発者は、.NET開発者よりも多くのフレームワークを平均的に習得する必要があります。それが良いか悪いかは別の質問です。 –

+1

合意、パベル。このサイトでは、それがより良いことだと言ってうれしいです。異なるアプローチを学ぶのが好きではない開発者はおそらくスタックオーバーフローにはなりません。 :-) –

+0

これは必ずしも真実ではありませんが、Pythonが持っている方法で開発した大きな理由の1つは、何かを行う標準的な方法を持っているからです。 –

16

はい、Javaでは、JSF、Struts、Struts2、Wicket、SpringMVC、Stripes、Tepestry、FaceletsなどのWebフレームワークがあります。 すべての会社が異なるフレームワークを使用していますので、あなたが仕事を変更した場合、新しいフレームワークを学ぶでしょう。そしてその唯一のWebフレームワークは、永続性はどうですか? JDBC、Hibernate、JDO、iBatis。 Javaのための5つの模擬フレームワークの名前は誰にありますか?誰が5つの異なるアプリケーションサーバーを使用していますか?データベースはどうですか?私はInformixとTeradataを使用しました。私はすべての.NETはSQL Serverを使用していると思う1つのデータベースを覚えやすく。

+0

+1、これに全面的に同意します。以下の私の声明のように、利点はあなたがあなたの次の仕事に期待するものを知っているということです。新技術の学習はそれほど複雑ではなく、M $テクノロジーが統合されているため、より多くの機会にまたがる傾向があります。あなたの声明では –

11

Javaの世界では、多くのコミュニティのテクノロジを使用して開発しています。.NETの世界では、Microsoftのテクノロジのみで作業します。私の意見では、Java開発者はテクノロジの選択の面でより自由ですが、時にはそれによって問題が発生することもあります。 :)

14

Win.Forms、Silverlight、WCF、WPF、WWF ... Web開発以外の.NETではまだ多くの学習方法があります。シニア .NET開発者になることは容易ではありません。少なくともJavaよりはるかに簡単です。しかし、IMHOを使用すると、過去の開発経験がなくても.NETでの起動が容易になります。

+6

+1です。いくつかのJavaの覗き見は.Netを過小評価するのが好きです。 –

30

私はC#の開発者ですが、私には確かに、Javaでは.Netよりも多くの選択肢があります。しかし、.NETの明白な利点は、あなたが土地で同じIDE(Visual Studio)を使用し、(ほとんどの場合)最新の.Netフレームワークを使用することです(従来のアプリケーションの維持を除く)。エンタープライズライブラリ、MVCとフォーム、WPFなどを使用するような異なる雇用者には若干の微妙な違いがあるかもしれません。しかし、経験豊富なC#開発者なら、基本に応じて簡単に適応することができます。

他のプログラミング言語を習得していない一部の開発者は、怠惰で、オブジェクトをドラッグアンドドロップして80%の時間を費やす傾向があります(オブジェクト指向プログラミングは単純にオブジェクトを持つコード)。あなたがC++やC言語に慣れていれば、間違いなく優位に立つでしょうが、それは必須条件ではありません。

最高のプログラミング方法を学ぶことをお勧めします。卵を1つのバスケットに入れてはいけません(神は私たちに男性のことをしましたが)。C#以外の言語にも開かれています。 1つのCベースの言語を学ぶならば、他の主要言語を学ぶことは、VB.Netで始めるのではなく、難しくありません。

いずれにせよ、どちらもお金を払っている仕事であり、あなたがどちらかを選ぶと後悔することはありません。

私の2セント。

9

重要なことは、あなたのキャリアの途中で.NETやJavaの開発者として "ブランド"を得ることができることです。その時点では、あなたが選んでいないものの経験が少ないため、(わかりやすく)切り替えが難しくなります。これまでのところ、私は交互に行ってきましたが、それはそれぞれの新しいライブラリ/フレームワークの経験が間違っている、独自の問題を伴います。

Java対.NETの開発の利点/欠点に関する他の考えはありますか?例えば、どのような種類の企業、文化、賃金など?

私にとっては、Javaが多くのスタートアップで使用されていたのに対し、.NETはより確立された企業になる傾向があるようです(低コストのエントリとオープンソースライブラリが利用可能である)。お支払いは同等ですが、.NETはやや高いようです。 Java開発は、新しいフレームワークをより頻繁にプレイすることができ、特定のパラダイムに制限されていないので、少し楽しいかもしれません。

11

Java自体には、より多くのフィールドが入っています。つまり、Java開発者は市場の他のどの技術よりも多くの機会を得ることができます。彼らは、さまざまなJavaベースのアプリケーション、ソフトウェア、ゲームなどを開発するための魅力的な報酬に雇われています。今後も引き続き増加するでしょう。 JAVAでつないでください。

関連する問題