私は現在、大学でコンピュータサイエンスを勉強しており、主にJava Standard Editionを教えています。業界では、これはあまり使用されておらず、代わりにJavaEEが使用されています。私の大学がJavaEEではなくJavaSEを教えてくれている場合、これは私を雇用しにくくしますか?
そして、違いは正確には何ですか?別の構文?プログラミングの別の方法または何ですか?
私は現在、大学でコンピュータサイエンスを勉強しており、主にJava Standard Editionを教えています。業界では、これはあまり使用されておらず、代わりにJavaEEが使用されています。私の大学がJavaEEではなくJavaSEを教えてくれている場合、これは私を雇用しにくくしますか?
そして、違いは正確には何ですか?別の構文?プログラミングの別の方法または何ですか?
すべての意図と目的において、Java と Java SE は同じものです。Java SE を学んでいるということは、Java、その構文、機能、および標準ライブラリを学んでいることを意味します。これらのスキルを習得する前に Java EE を習得することはできません。
Java EE は、エンタープライズ レベルの問題に対処するソフトウェアを構築するためのさまざまなインターフェイスと機能を定義する一連の標準です。これらには、トランザクション、分散コンピューティング、メッセージング、Web アプリケーション、リソース管理などが含まれます。これらはすべて、管理された環境で提供されます。これらはすべて Java 言語にコーディングされており、ソフトウェアが実行される環境に応じた特定のルールと特性があります。
Java SE を学ぶことは、車の運転を学ぶことだと考えてください。Java EE は 18 輪車の運転を学ぶようなものです。A 地点から B 地点に移動するためにその方法を知る必要はありません。
Java SE には、標準の Java ライブラリ (すべての基本、コンテナー、ネットワーク、GUI など) が含まれています。これは主に、デスクトップ アプリとブラウザー アプレットを対象としています。
Java EE はサーバー フレームワークを追加します。サーバーで Java について話すとき、これはあなたが言及しているものです。これは巨大なライブラリであり、事前に確立された「ベスト プラクティス」がたくさんあります。JIT がまだ若い頃、Java EE の非常にスケーラブルな設計は、JVM の (当時はかなりの) オーバーヘッドに加えて、サーバーで非常に好評でした。
私は Java EE を真剣に使用したことはありません。でも、Java SEを先に学んでからJava EEを学ぶ方がいいと思います。もっと時間がかかります。しかし、言語とは何か、フレームワークとは何かをよりよく理解できます。
私の大学が私に Java EE ではなく Java SE を教えている場合、これは私の雇用適性を低下させますか?
いいえ、それはあなたの大学がすべきことです: 基礎に焦点を当てます。Javaの場合、それは主に標準版を意味します。
Java EE ( J2EE ではありません。質問の私のコメントを参照してください) は、サーバー側の Java API、仕様、およびライブラリをいくつか追加します。これらの中で最も重要なのは、サーブレットAPI とJSPコンテナの仕様です。しかし、サーバー側であっても、ほとんどが標準 Java に関するものであることを知っておくことが重要だと思います。Enterprise Java Beans (EJB) などのほとんどの Java EE テクノロジを学習する必要なく、サーバーサイド Java 開発を行う可能性は十分にあります。特に、Hibernate を使用して POJO を優先するなど、代替の軽量アプローチが台頭しているためです。永続層用。EJB のような Java EE の多くの部分は、ハイプ サイクルのピークをはるかに過ぎています。Struts、JSF、またはWicketなどの高レベルのフレームワークが普及しているため、「低レベル」のサーブレットと JSP のすべてを完全に理解する必要さえないかもしれません。
1 つのケース スタディ: 私は大学で Java (および OO プログラミング) の基礎を学びましたが、Enterprise Edition についてはごくわずか (そして実用的なもの) しか学びませんでした。現在、私は「Java EE 開発者」として 4 ~ 5 年間、つまりサーバー側の Java を担当しています。EJB や他のほとんどの Java EE テクノロジを実際に使用したことはありません。私は主に純粋な Java (つまり標準版) だけを作成し、いくつかの JSP、サーブレット、フィルターなどに関連するものを投入しました (もちろん、HTML、JS、CSS などの Web 技術も)。多くの (ほとんどがオープンソースの) サードパーティ ライブラリを利用し、必要に応じてすべてをピックアップします。(しかし、私は Java EE の知識をブラッシュアップし、ある時点でSCWCDを取得することを計画しています - Java SE が長い道のりを歩んだとしても、それは私にとって良いことだと思います:)
これが私の見方です。
ご存知のプログラミング言語はJavaと呼ばれています。
他のほとんどのプログラミング言語と同様に、多くの標準ライブラリもバンドルされています。
Java SEは、言語と特定のライブラリの両方を組み合わせたものであり、一般的なアプリケーション開発を可能にします。
Java EEは、Java SEと組み合わせて使用して、エンタープライズ/Webアプリケーションを開発することもできるライブラリの別のセットです。
私の意見では、大学は本当にあなたが仕事で必要となる正確なスキルをあなたに教えるとは限らない、基本と概念に強いことをあなたに教えることを意図しています。したがって、何よりも、エンタープライズアプリケーションの要件(トランザクション、メッセージングキュー/トピックなど)に見られる概念を確実に学習することをお勧めします。ただし、これが本当に懸念事項である場合は、次のことをお勧めします。自習(おそらくコース単位)。また、JavaEEコードで遊ぶことができるインターンシップを探してみてください。
大学の終わりに近づいたとき、私は自分自身に同じ質問をしていました。私は現在JavaEE環境で作業しており、JavaEEライブラリを使用するための学習曲線がありました。私は他の多くの人に同意する必要があり、エンタープライズJava開発を行うことは、私が取り組んだ他のプロジェクトと比べてそれほど楽しいものではないので、大学で楽しみ続けて、あなたが参加しているときのために退屈なことを延期したいと思うかもしれません労働力の。
ウィキペディアから:
Javaプラットフォーム(Enterprise Edition)は、Java Standard Editionプラットフォーム(Java SE)とは異なり、アプリケーションサーバーで実行されるモジュラーコンポーネントに主に基づいて、障害耐性のある分散型多層Javaソフトウェアを展開する機能を提供するライブラリを追加します。 。
構文は同じです。Java SEに関して学んだことはすべて、JavaEEに適用されます。新しいAPIの山を追加するだけで、特定の種類の問題に適した特定のスタイルのアプリケーション設計が必要になります。これらの種類の問題(大規模、フォールトトレラント、分散、スケーラブル、多層...)とそれらを解決する方法は、実際にはJava EEの目的であり、仕様の一部である実際のAPIではありません。
CSの学位は職業の学位ではないことを忘れないでください。これは、特定の業界のニッチに合わせた特定のスキルセットでトレーニングするのではなく、学習と思考の方法を教えることを目的としています。
Java 言語自体は、Java 開発の 1 つの側面です。標準版で作成されたアプリケーションは、特定のニーズを満たします。標準エディションしか知らないのに、エンタープライズ エディションで簡単に「うまくいく」と考えるのは誤りです。ライブラリは言語を作ります。Java EE の特定の側面には (当然の) 批判がありますが、そこにはまだ多くの機能があります。疑わしい部品でさえ、業界では依然として頻繁に使用されています。
Java EEは、Java SE(サーブレットなどのエンタープライズライブラリ)の単なるスーパーセットです。Java SEを学ぶと、ほとんどの場合JavaEEを知っています。
Java SE (または「Core Java」) と Java EE の関係を誤解していると思います。
Core Java は学ぶことが重要であり、ほとんどの学校で教えられています。
プログラミングはホイールを再発明するのではなくホイールを使用することを中心に展開するため、通常、複雑なタスクを実行するためのコードを含むライブラリがあります。
たとえば、一部の学校では、Java で提供される AWT または Swing クラス ライブラリを使用して GUI を構築するように人々に教えていますが、他のオプションもあります。
Java EE は、サーバー上でプログラムを実行するための追加のソフトウェアによってサポートされていますが、クラスと関連サービスのライブラリとして考えることができます。あなたは今でも常に Java を使用しており、Sun がサポートする人気のあるライブラリを使用しているだけです。Java EE の一部ではない Hibernate と Spring も表示されます。
ほとんどの場所では、まず第一に、Java がしっかりしていることを確認したいと考えています。作業を開始すると、Java EE の特定の部分を使用する経験を積むことができます。