私が .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 開発者になるのは簡単ですか? それともそう見えるだけですか?
9 に答える
簡単ではなく、違います。
Java ジョブがフレームワークに対してリストされている理由は、Java には、保守を容易にするために使用できるフレームワークと設計パターンがたくさんあるためです。設計パターンとフレームワークは現在 .NET にも登場し始めているため、Java ジョブのように見えるようにジョブが変化することが予想されます。
どちらの世界にも同じくらい多くのパターンとプラクティスがありますが、それらは Java コミュニティでより確立されています (Java の雇用主がそれらをあなたに押し付け、あなた自身が .NET の雇用主に押し付けていることに気付くでしょう)。
ほとんどの場合、Java と .NET は構文です。どちらかを行います (両方を行います!)。しかし、より良いコードを書くのに本当に役立つので、パターンとフレームワークに注意してください。
私は C# 開発者です。Java には .Net よりも多くの選択肢があります。ただし、.Net の明らかな利点は、どの仕事でも同じ IDE (Visual Studio) を使用し、(ほとんどの場合) 最新の .Net フレームワークを使用することです (レガシー アプリの保守を除く)。Enterprise Libraries、MVC と Forms、WPF などを使用しているなど、雇用主によって若干の違いがある場合があります。しかし、経験豊富な C# 開発者であれば、基礎に応じて簡単に適応できます。
私の分野で他のプログラミング言語をまったく学ばなかった一部の開発者は怠け者で、80% の確率でオブジェクトをドラッグ アンド ドロップするだけでタスクを実行する傾向があります (一部の開発者は、オブジェクト指向プログラミングはオブジェクトを使用した単純なコードであるとさえ信じています)。 . C++ またはその他の C ベースの言語に精通している場合は、間違いなく優位に立つことができますが、必須ではありません。
プログラミングのベスト プラクティスを学び、すべての卵を 1 つのバスケットに入れないようにし (神が私たち男性にそうさせたとしても)、C# 以外の言語にもオープンになることをお勧めします。C ベースの言語を 1 つ習得すれば、VB.Net から始めるよりも、他の主要な言語を習得するのは難しくありません。
いずれにせよ、どちらも高給の仕事で、どちらを選んでも後悔はしません。
私の2セント。
はい、Java には、JSF、Struts、Struts2、Wicket、SpringMVC、Stripes、Tepestry、Facelets などの Web フレームワークがあります。どの会社も違うフレームワークを使っているので、転職すれば新しいフレームワークを学ぶことになります。そして、その唯一の Web フレームワークである永続性についてはどうでしょうか? JDBC、休止状態、JDO、iBatis。Java 用の 5 つのモッキング フレームワークを誰が挙げることができますか? 5 つの異なるアプリケーション サーバーを使用したのは誰ですか? データベースはどうですか?Informix と Teradata も使用しました。すべての .NET は Sql Server を使用しており、1 つのデータベースをよく学習する方が簡単だと思います。
次の .NET テクノロジを忘れないでください: Win.Forms、Silverlight、WCF、WPF、WWF... Web 開発以外の .NET については、まだ多くの学習があります。シニア.NET 開発者になるのは簡単ではありません。少なくとも Java ほど簡単ではありません。ただし、過去の開発経験がない場合は、.NET で開始する方が簡単です。
Java 自体には、より多くのフィールドが入ってきます。つまり、Java 開発者は現在、市場の他のどのテクノロジーよりも多くのチャンスを手にしています。彼らは、さまざまな Java ベースのアプリケーション、ソフトウェア、ゲームなどを開発するために魅力的な報酬で雇用されています。将来的にも増加し続けるでしょう。JAVAに固執するだけです:)
Java の世界では、多くのコミュニティのテクノロジを使用して開発しますが、.NET の世界では、Microsoft のテクノロジのみに取り組みます。私の意見では、Java 開発者はテクノロジの選択に関して自由ですが、それによって問題が生じることもあります。:)
あなたが言及しているテクノロジーを並べてみましょう(およびあなたが言及していないテクノロジーもあります)。これは必然的に多少不正確になるので、ニッチピッカーの楽園になります:)
.NET Java 全体を網羅する技術 ASP Struts Web 開発フレームワーク JSF (.NET BCL?) Spring アプリケーション開発フレームワーク EJB SQL Server RDBMS A データベース (VS) Eclipse IDE
CSS、Javascript、AJAX、REST はすべて、両方のスタックに共通のテクノロジーです。
学ばなければならないテクノロジーの概念は、どのスタックを選択しても同じです。名前が異なるだけです。.NET のものはすべて「Microsoft Blah Blah Blah」になりますが、Java のものはすべてファンキーでクールな名前になります...
考慮すべき他の重要なことは、キャリアの途中で.NETまたはJava開発者として「ブランド化」できることです。その時点で、(当然のことながら)選択しなかったものの経験が少ないため、切り替えるのがより困難になります。これまで私は交代してきましたが、それはあなたがそれぞれの側で新しいライブラリ/フレームワークの経験にギャップがあるというそれ自身の一連の問題を伴います。
Javaと.NETの開発の長所/短所について他に何か考えはありますか?たとえば、どのような種類の企業、文化、賃金などですか?
私にとって、.NETはより確立された企業にある傾向があるようですが、Javaは多くのスタートアップによって使用されています(低コストのエントリとオープンソースライブラリが利用可能であることを考えると)。賃金は同等ですが、.NETは少し高いようです。新しいフレームワークをより頻繁に試すことができ、特定のパラダイムに制限されていないことを考えると、Java開発はもう少し楽しいかもしれません。
私の .Net 仲間と話していると、ほとんどの人が Microsoft のやり方で物事を行うため、かなり標準的なものから始める方が簡単なようです。Java の多数の選択肢は、多くの異なるレベルでライブラリーとツールキットを選択する必要があることを意味します。Java の利点は、公式または一般的な方法が自分に合わない場合に、より多くのオプションを利用できることです。
実用上、大差ないと思います。単一の Java ショップは、通常、1 つの特定のものに落ち着きます。たとえば、Struts、Spring、または JSF など、3 つすべてではありません。Hibernate、Ibatis、または純粋な JDBC の 3 つすべてではありません。つまり、Java スタックを使用しているか .Net スタックを使用しているかに関係なく、ほぼ同じ問題を解決しているという点で、学ぶべきことはほぼ同じだと思います。