JavaRush /Java Blog /Random-JA /Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?

Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?

Random-JA グループに公開済み
潜在的な Java 開発者の要件は常に変化しており、追いつくのは困難です。研修生になるには Java Core だけを知っていれば十分ですか? Java ジュニアのポジションを獲得するには、Spring と Hibernate をどの程度理解する必要がありますか? データベースを学習し、並べ替えと検索のアルゴリズムを理解することに価値はありますか? JavaRush の学生はこれらの質問をよく気にするので、すでに Java ジュニアとして働いているか、Java 研修生として企業でインターンをしている卒業生に質問することにしました。回答者の 13% は幸運にも最初の挑戦でジュニア ステージを回避して Java ミドル ポジションを獲得できたことに注目してください。 Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 1回答者は、面接に合格するためにどのテクノロジーが必要であったか、また最初の Java の仕事の 1 年目にどのテクノロジーを使用したかについての情報を共有しました。

誰もが Java コアを必要としています

Java コアという用語は非常に幅広い意味を持ちます。この名前は、言語の基本構文と、マルチスレッドなどの複雑なトピックの両方を指します。実際、JavaRush コースは主に Core に特化しています。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 2Java 構文。言語の基本。これらすべてのデータ型、演算子、ループ、分岐。当然のことながら、その仕事に就いた人の 92.4% が構文の知識を「良好または優れている」と評価しました。ただし、回答者の 7.6% は、平均的な構文知識を備えた Java 研修生になることができました。ただし、これは幸運 (または回答者の自慢 :)) として評価されるべきです。もちろん、プログラマーとしての仕事に応募する人は誰でも、言語の構文を知っている必要があります。 オブジェクト指向プログラミング (OOP)。Java ではすべてがオブジェクトで構成されているため、OOP は言語の最も重要なテーマの 1 つと考えることができます。特にこれまで手続き型言語しか勉強したことがない場合、オブジェクト指向のアプローチは最初は馴染みがないように思えるかもしれませんが、オブジェクトに切り替えるのは難しくありません。初心者にとっての最大の困難は、抽象化のレベルとその独立した配布です。初心者のプログラマーは、オブジェクトの階層を正しく作成し、インターフェイスが何を担当するのか、抽象クラスに何を入れることができるのかを理解し、継承を作成できなければなりません。はしごなど。いつものように、この困難は練習によって解決されます。回答者の大多数、つまり最初の仕事に就いた人の 80.3% は、OOP 原則をよく知っており、常にそれを使用していました。Java ジュニアおよびインターンとして働き始めた 1 年目では、回答者の 78.8% が OOP 原則を非常に頻繁に使用し、12.1% が時々使用しました。リスナーの 7.6% はめったに使用しませんでした。これらの人は主に単体テストやさまざまな小さなタスクで忙しかったです。つまり、もちろん、クラスやオブジェクトも使用しましたが (Java ではこれなしでは使えません)、クラス階層を作成することはめったにありませんでした。 コレクションフレームワーク。コレクションは、全体として表示される個々のオブジェクトのコレクションです。Java には、コレクションを表現するための非常にスマートな Collections Framework があります。コレクションは、リスト、通常の接続、セット、ハッシュ テーブルなどの一般的なデータ構造に基づいています。したがって、コレクションを探索するときは、データ構造についてよく理解しておくことをお勧めします。コレクションを研究する際の主な困難は、コレクションがどのように機能するかを理解し、覚えることです。要素にアクセスし、コレクションから要素を抽出し、要素に追加する方法を理解すると、特定の構造をどこに適用するかがわかります。それは練習によってもたらされます。しかし、幸いなことに、膨大な数のコレクションのすべてが実際の仕事で積極的に使用されているわけではありません。回答者の 80.3% は、最初の仕事の内定を受け取る前にコレクションについて十分、または優れた知識を持っていたと回答しており、ジュニアおよび研修生のほぼすべての 96.9% が最初の仕事でコレクションを使用しています。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 3例外処理。例外とは、プログラムの実行中に発生する可能性のある異常な状況です。すべての例外クラスは、java.lang.Exception クラスのサブタイプです。例外処理メカニズムにより、プログラム内のエラーを見つけるプロセスが大幅に簡素化されます。通常、学生は JavaRush などのかなり早い段階で例外を使い始めます。JavaRush では、このトピックは最初の Java 構文クエストで取り上げられます。初めて就職した JavaRush 卒業生のほぼ全員が例外の処理方法を知っており、当然のことながら仕事中に例外を使用していました。 I/O ストリーム Java。Java で書かれた最初のプログラムには、通常、System.out.println(“Hello world”) のようなものが含まれていました。多くの場合、初心者は println メソッドがコンソールに行を出力することは理解していますが、System と out がなぜそこにあるのか、またそれらがどのように機能するのかは知りません。少し後に、Java がストリーム (データの連続ストリーム) を使用して入出力操作を実行することがわかりました。スレッドは理解するのが最も簡単なトピックではなく、初心者の仕事ではあまり頻繁に使用されません。初めて Java ジュニア/研修生の仕事に就いた人のうち、I/O スレッドを頻繁に使用すると答えたのは 22.7% のみで、31.8% は時々使用します。時間、25.8% - めったにありません。つまり、20% 弱の人は Java 開発者としての最初の 1 年間、それらをまったく使用しませんでした。研究中に、18.2% がフローに関して特に困難を経験せず、フローをよく知っており、36.4% が自分の知識は良好であると評価しましたが、10.6% はこのトピックを無視しました。 マルチスレッド (Java マルチスレッド/同時実行)。おそらくこれは、初心者開発者の間で最も大きな誤解を引き起こすトピックです。Java のマルチスレッドは非常によく実装されていますが、理解するのが難しく、単純なプログラム (たとえば、マルチスレッドの「Hello, world」) を作成する場合でも問題が発生する可能性があります。多くの雇用主はこのことを理解しており、経験を積めば習得できると期待して、初心者にマルチスレッドについての深い理解を要求しません。最初のオファーを受ける前にそのトピックについて十分なレベルで知っていたと回答したのはわずか 12% でしたが、回答者のほぼ 32% がそのトピックについてまったく知らなかったと認めました。大多数の 56.2% が、マルチスレッドについて「ある程度理解している」と回答しました。したがって、スレッドを操作する難しさが今は克服できないと思われる場合は、これらの数字を見て安心してください。ただし、面接で競争力を高めたい場合は、このトピックがあなたの長所になる可能性があります。実際のプロジェクトでは、初心者がスレッドを扱うことを許可されることはほとんどありません。したがって、初心者プログラマーの 15.1% は仕事で Java マルチスレッドにまったく遭遇したことがなく、39.4% は遭遇したことがありますが、めったにありません。多くの場合、入社 1 年目にマルチスレッドを使用する必要があったのは回答者の 9.1% だけでした。 ラムダ式。ラムダ式と関数型プログラミングのヒントは Java 8 で登場しましたが、初心者はこの便利なツールをあまり使用しません。ラムダ式はクラスに属さずに作成できる関数で、オブジェクトとして渡したり、オンデマンドで実行したりできます。調査対象となった卒業生のうち、最初の就職内定を受け取る前にラムダ式をよく知っていたのは 22.7% のみで、48.5% がこのトピックに関する自分の知識を「ゼロに近い」と評価しました。同時に、新人プログラマーの 85% 以上が、1 年目にラムダ式を使用したと回答しました。公平を期すために、このトピックを知っている人の割合が低いのは、JavaRush ではラムダ式がこれまでのところ新しいJava Syntax Proクエストと記事でのみ紹介されているためである可能性があることを指摘します。したがって、潜在的な Java ジュニア、さらには研修生にとっても、Core Java の知識は単に必要であると言っても過言ではありません。もちろん、マルチスレッドなどの一部のトピックについては、多少知識が少なくても問題ありませんが、Java 構文、OOP、およびコレクションについては、意識の中にしっかりと根付いておく必要があります。

アルゴリズムとデータ構造

ソートおよび検索アルゴリズムの研究については、常に議論が行われています。一方で、最高のアルゴリズムは長い間作成され、Java を含むすべての一般的なプログラミング言語のライブラリに組み込まれてきました。また、独自のコードを記述する手間をかけずに合法的に使用できます。しかし、プログラマーを訓練する専門家は依然として、すべての初心者開発者に、これらすべてのバブル アルゴリズム、マージ、二分探索などを作成して脳を訓練することを推奨しています。まず、これらのアルゴリズムは、プログラマーのスキル (つまり、知識ではなくスキル) とプログラミングとは原理的に何であるかについての理解度を試す一種のリトマス試験紙です。あなたの脳がすでにこの種の作業に十分に慣れている場合は、アルゴリズムを比較的簡単に作成できるでしょう。それでも、覚えておくべきことは、脳を訓練するために正確にアルゴリズムが必要であるということです...そして面接に合格するためには、アルゴリズムを作成するという要求で応募者を苦しめるのが大好きな腐食性の上級開発者です。しかし、仕事では大多数 (48.5%) が効果的で実証済みの標準ライブラリ アルゴリズムを使用していますが、回答者の 16% はプログラマーとして働き始めた 1 年目にソートをまったく使用しませんでした。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 4卒業生の 69.6% は、最初の仕事のオファーを受け取る前に、並べ替えと検索のアルゴリズムをよく理解しており、自分でアルゴリズムを作成できたと主張しています。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 5Java コレクションについて説明したときに、データ構造のトピックについてはすでに触れました。はい、どこにどのような構造を適用するかを知るために、それらを理解することがより良いです。ライブラリのデータ構造をイメージして独自のデータ構造を作成することは、データ構造をより深く理解するのに役立つ素晴らしい演習です。たとえば、独自のバージョンの ArrayList を作成したり、独自の単一リンク リスト (Java の通常の LinkedList は二重リンク) を提案したりできます。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 6初心者プログラマーは、作業中に主に標準のデータ構造を使用しました。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 7

単体テスト

JUnit ライブラリは、Java での単体テストを担当します。実際、単体テストはトレーニングのほぼ開始時に開始できます。少なくとも、たとえ非常に小さなプロジェクトであっても、最初の独立したプロジェクトに取り組むときは、すでにこのツールに習熟しておくべきです。単体テストの作成は、多少のニュアンスはありますが、それほど難しくありません。JUnit の学習にはそれほど時間はかかりませんが、JUnit を知ることで得られるメリットは非常に大きいです。自分自身や他の人のコードをテストでカバーできるようになります。多くの場合、新人は同僚のために単体テストを作成する任務を負っているため、これは新しい仕事に直接役立つ可能性があります。回答者の 57.5% が、最初に成功した Java 面接の前に JUnit を使用したと回答し、83% 以上が最初の年にすでに単体テストを使用していました。

ユーティリティライブラリ、GUI、便利なコンポーネント

私たちは、JavaRush 卒業生がさまざまなツールにどの程度精通しているかを尋ねました。そのうちのいくつかはコースで取り上げられました。
  • サーブレットは、サーバーの機能を拡張する Java ソフトウェア コンポーネントです。
  • JDBC は、Java アプリケーションとデータベース間の相互運用性を実現する、プラットフォームに依存しない標準です。JDBC は Java パッケージとして実装されます。SQL は Java SE (Standard Edition) に含まれています。
  • log4j は最も有名なメッセージ ログ ライブラリです。Java コードでライブラリ呼び出しを記述し、既に記述されたコードを変更することなく柔軟にカスタマイズできます。
  • ジャクソン/JSON。JSON (JavaScript Object Notation) は、非常に人気のあるオープン標準のファイルおよびデータ交換形式であり、Jackson は Java 用の高性能 JSON プロセッサです。
これらのツールはすべて非常に便利で仕事でよく使用されており、ほとんどの学生は面接の準備時にそれらを無視しませんでした。これは特にジャクソン社に当てはまります。Java プログラマーの職への応募者の 72.7% が JDBC に遭遇しました。このライブラリは回答者の 78% 以上が試しました。ほぼ全員がこれらのテクノロジーを仕事で使用していました。Java 開発者が GUI に遭遇することはあまりありません。JavaFX について質問したところ、仕事でこのテクノロジーに遭遇した回答者はわずか 18% でした。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 8回答者の 3 分の 2 はサーブレットを使用していましたが、調査中にサーブレットを試した回答者はわずかに少数でした。また、一部の新しい Java プログラマーが、Apache Commons (再利用可能な Java コンポーネントのあらゆる側面に焦点を当てたライブラリのセット) や Guava (主に Google エンジニアによって開発された Java 用のオープンソース共通ライブラリのセット) などのプロジェクトに遭遇したことがあることが判明しました。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 9

フレームワーク

以前は、Java Junior が Spring や Hibernate を知っているとは誰も期待していませんでした。しかし時代は変わり、今日では研修生にもそれが期待されることがあります。これらのテクノロジーを独学で学ぶのは簡単ではありません。たとえすべてが明確に見えたとしても、生徒は多くの場合、何が何であるかをすぐに忘れてしまいます。Spring で独自に作成されたアプリケーションであっても、万能薬ではない場合があります。積極的な仕事だけが役に立ちます。ただし、面接が成功する前に、回答者の 3 分の 1 は Spring について十分なレベルで精通しており、45.5% は Spring について平均的な理解をしていました。Spring Boot の状況はやや悪く (36.4% がまったく知らなかった)、調査対象となった JavaRush 卒業生のほぼ 44% が Hibernate について十分な知識があると回答しました。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 10同時に、作業中、メインの Java フレームワークは、新人プログラマーのほぼ 88%、Spring Boot - 83%、Hibernate - 81% によって使用されていました。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 十一

ビルド自動化ツールとアプリケーションサーバー

インタビューを受けた JavaRush 卒業生のほとんどは、プロジェクト ビルダーと協力してみたことがあります。最も多くの場合、それは Maven でした (40.9% が実際にそれを試し、さらに 30.3% が時々使用し、12.1% が勉強中に常に使用しました)。Maven を使用している場合、72.7% (頻繁に)、7.6% (時々)、3% (まれに) に遭遇しました。Gradle に関しては、状況はやや悪化しています。このコレクターを使って練習したことがあるのは 22.7% だけで、ほとんどはこのテクノロジーを試したばかりです。回答者のほぼ半数が仕事で Gradle を使用していました。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 12Ant は長い間その地位を失ってきましたが、これは卒業生の間での人気に反映されています。Ant をいじったことのある回答者はわずか 3% でした。そして、質問に答えた人の 12% は彼と一緒に働く必要がありました。アプリケーション サーバーの中では Tomcat がリーダーであり、回答者の 77% 以上が学習中にそれを理解し、11% が GlassFish を試し、12% が JBoss を試しました。すでに稼働しているユーザーの間でのサーバーの人気も同様のようです。Tomcat の使用経験がなかったのは、その仕事に就いた人の 31.8% のみでした。また、JavaRush の卒業生は、プログラマーとして働き始めて 1 年目に、WebSphere、Jetty、Netty、Wildfly、Weblogic などのサーバーを試しました。Java ジュニアになるには何を知っておく必要がありますか?また、そのために何をすべきでしょうか?  - 13

ほかに何か?

回答者の大多数は、最初の仕事に就く前であっても、次のように答えています。
  • HTML、CSS、JavaScript を理解していました。
  • データベースを操作し、SQL を知っていました。
  • ほぼ全員が Git と GitHub を使用していました。
  • 純粋な XML を使って作業してみました。
これらのテクノロジーはすべて、今後の研究に役立ちました。Java プログラマー、またはそれ以外の人は、デフォルトで上記のすべてに精通していることが期待されます。それは深い知識ではなく知り合いです。したがって、時々 Java から離れて、これらのテクノロジを勉強して視野を広げることをお勧めします。また、質問に答えた人の中には、面接では、デザイン パターン、アーキテクチャ パターン、およびプログラミングのマナー (これらすべて KISS、DRY、SOLID) について、少なくとも理論的な知識を持っていることが期待されていると指摘した人もいます。しかし、面接ではほとんどの場合、定義だけで十分でした。面接を行った人は、そのようなことを真に理解するには継続的な練習が必要であることをよく知っていました。それらはあなたの仕事に役に立ちましたか?もちろん役に立ちました。

結論

学ばなければならないテクノロジーの多さについて、あまり怖がらせていないことを願っています。これらすべてを完全に知る必要はありませんし、さらに、すべてを理解することは非常に興味深いものです。あなたがプログラマーになろうと決めたのは、何も理由がなかったわけではありませんよね?したがって、Java の学習を続けてモチベーションを維持してください。幸運を!PS すでに仕事を見つけていて、自分の経験について話したい場合は、コメントを歓迎します。
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION