- 採用
Javaは難しいか|未経験がつまずく5か所と研修で越える順番
Java は、未経験の人が最初の数週間で「難しい」と感じやすい言語です。ただ、つまずく場所はだいたい決まっていて、順番に越えれば誰でも通る道です。 採用する側として、他業種から入った人を Java の研修で育ててきた経験から言うと、つまずきやすいのは次の5か所です。①クラスとインスタンス(「new」が分からない)、②static(クラスで1つのものと、一つ一つのもの)、③参照型と equals(== で比べると false になる文字列)、④例外(ファイルを読むだけでコンパイルが通らない)、⑤コレクション(繰り返しの途中でリストから消すと止まる)。どれも、書き方の「決まり」を知らないことが原因で、頭の良し悪しの話ではありません。この記事では、5か所をすべて OpenJDK 21 で動かし、出たエラーをそのまま載せて、どう直すかと、研修の12段階のどこで学ぶかを対応させました。厚生労働省の職業情報提供サイト(jobtag)は、プログラマーについて「配属後、半年から1年間程度、先輩プログラマーやSEなどの指導を受けながら」と書いています。研修で基礎を越えたあとも、一人で抱え込む前提の仕事ではありません。
確認日:2026年10月11日(一部は10月6日・7日)。Java のコードとエラーは、確認日に OpenJDK 21 で実際に動かした結果です(コンパイルのエラーは日本語の設定で表示)。職業の記述は厚生労働省 jobtag、求人件数は doda の検索結果、企業の採用状況はレバテック「IT人材白書2026」を、確認日に開いて引用しています。「つまずきやすい5か所」は、他業種からの転職者を Java の研修で育てている経験をもとにした整理です。
この記事の結論
Java は未経験には難しいか
最初の数週間は難しく感じやすい。ただ、つまずく場所は決まっていて、順番に越えれば誰でも通る道
本文
どこでつまずくか
①クラスとインスタンス、②static、③参照型と equals、④例外、⑤コレクション。5か所とも本文で動かしてエラーを載せた
本文の5つのコード
なぜつまずくか
書き方の決まりを知らないことが原因。エラー文を読めば、どの決まりに当たったかが分かる
本文
研修のどこで学ぶか
インスタンスと static は Lv.03、参照型は Lv.04、例外は Lv.05、コレクションは Lv.07(RJC の研修の例)
本文の対応表
なぜ Java から学ぶのか
業務システムで広く使われ、型が厳しいぶん、間違いをコンパイルの段階で教えてくれる
本文
いつ応募するか
今からでも。Java を学んでからでなくても応募できる
本文
数字で見る「未経験と Java」
| 項目 | 数値・記述 | 出典 |
|---|---|---|
| Java のエラー(日本語の設定) | 「staticでないメソッド hello()をstaticコンテキストから参照することはできません」「例外IOExceptionは報告されません。スローするには、捕捉または宣言する必要があります」。実行時:「ConcurrentModificationException」 | OpenJDK 21 で実行(2026年10月11日) |
| jobtag プログラマー | 「入職にあたって、特に学歴や資格は必要とされない」「配属後、半年から1年間程度、先輩プログラマーやSEなどの指導を受けながら、部分的なプログラムを担当」 | 厚生労働省 jobtag |
| doda | IT・通信業界×職種未経験歓迎5,762件。「Java」を含む求人399件 | doda(確認日時点) |
| 未経験者の採用状況 | 採用中28.4%、検討中45.0% | レバテック「IT人材白書2026」(2026年10月6日確認) |
読み方は3つです。
- つまずく場所は決まっている。 5か所とも、エラー文が「どの決まりに当たったか」を教えてくれます。分からないのは自分だけではなく、誰もが通る場所です。
- 研修のあとも一人ではない。 jobtag の記述どおり、配属後も半年から1年は先輩の指導を受けながら進むのが一般的です。
- 未経験歓迎の Java の求人はある。 IT・通信業界の未経験歓迎の求人のうち、「Java」を含むものは399件でした。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Javaは難しいか|未経験がつまずく5か所と研修で越える順番」
つまずき①:クラスとインスタンス(「new」が分からない)
public class J1 {
String name = "山田";
void hello() { System.out.println("こんにちは、" + name); }
public static void main(String[] args) {
hello(); // インスタンスを作らずに呼んだ
}
}
J1.java:5: エラー: staticでないメソッド hello()をstaticコンテキストから参照することはできません
hello();
^
エラー1個
// J2.java:インスタンスを作ってから呼ぶ
J2 a = new J2();
a.hello(); // → こんにちは、山田
クラスは「設計図」、インスタンスは設計図から作った「実物」です。 hello() は実物ごとの動きなので、new で実物を作ってから呼びます。エラー文の「staticでない」「staticコンテキスト」は、この区別を指しています。研修では Lv.03「オブジェクト指向の基礎」で学びます。
つまずき②:static(クラスで1つのものと、一つ一つのもの)
public class J3 {
static int count = 0; // クラスで1つだけ
int id; // インスタンスごと
J3() { count++; id = count; }
public static void main(String[] args) {
J3 a = new J3(); J3 b = new J3();
System.out.println("a.id=" + a.id + " b.id=" + b.id + " count=" + J3.count);
}
}
a.id=1 b.id=2 count=2
static の count はクラスで1つだけで、インスタンスを2つ作ると2になりました。 id はインスタンスごとに別の値(1と2)です。「全員で共有する数」と「一人一人の番号」の違いと考えると分かりやすくなります。①と同じ Lv.03 で、①とセットで学びます。
つまずき③:参照型と equals(== で比べると false)
String a = "java";
String b = new String("java");
System.out.println("a == b : " + (a == b));
System.out.println("a.equals(b) : " + a.equals(b));
int[] x = {1, 2, 3};
int[] y = x; // 同じ配列を指す
y[0] = 99;
System.out.println("x[0] = " + x[0]);
a == b : false
a.equals(b) : true
x[0] = 99
同じ「java」という文字列でも、== で比べると false、equals で比べると true でした。 == は「同じ実物か」、equals は「中身が同じか」を比べます。配列も、y = x とすると同じ実物を指すので、y を変えると x も変わりました。研修では Lv.04「パッケージ・API・参照型」で学びます。
つまずき④:例外(ファイルを読むだけでコンパイルが通らない)
String s = Files.readString(Path.of("data.txt")); // ファイルを読む
J5.java:4: エラー: 例外IOExceptionは報告されません。スローするには、捕捉または宣言する必要があります
String s = Files.readString(Path.of("data.txt"));
^
エラー1個
ファイルが無いかもしれないので、Java は「無かったときどうするか」を書くまでコンパイルを通しませんでした。 try-catch で捕まえるか、throws で呼び出し元に任せるかを書きます。最初は面倒に感じますが、本番で止まる前に教えてくれる仕組みです。研修では Lv.05「例外処理・Bean・enum」で学びます。
つまずき⑤:コレクション(繰り返しの途中で消すと止まる)
List<String> names = new ArrayList<>(List.of("山田", "佐藤", "鈴木"));
for (String n : names) {
if (n.equals("山田")) names.remove(n); // 繰り返しの途中で消す
}
Exception in thread "main" java.util.ConcurrentModificationException
at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1095)
at java.base/java.util.ArrayList$Itr.next(ArrayList.java:1049)
at J6.main(J6.java:5)
names.removeIf(n -> n.equals("佐藤")); // 消すときはこう書く
System.out.println(names); // → [山田, 鈴木]
繰り返しの途中でリストから消すと、ConcurrentModificationException で止まりました。 消すときは removeIf を使います。なお、確認環境では「佐藤」(3つのうち2つ目)を同じ書き方で消すと、エラーにならずに終わりました。繰り返しの中で名前を表示させると「山田」「佐藤」の2つだけで、3つ目の「鈴木」は確かめられないまま繰り返しが終わっていました。エラーにならない場合のほうが気づきにくいので、決まった書き方を覚えておきます。研修では Lv.07「コレクション・ラムダ式・ストリームAPI+JUnit5」で学びます。
5か所と、研修の12段階の対応
| つまずき | 何の決まりか | RJC の研修で学ぶ段階 |
|---|---|---|
| ① インスタンス | 設計図(クラス)と実物(インスタンス) | Lv.03 オブジェクト指向の基礎 |
| ② static | クラスで1つのものと、一つ一つのもの | Lv.03 オブジェクト指向の基礎 |
| ③ 参照型と equals | 「同じ実物か」と「中身が同じか」 | Lv.04 パッケージ・API・参照型 |
| ④ 例外 | 失敗したときどうするかを書く | Lv.05 例外処理・Bean・enum |
| ⑤ コレクション | 繰り返しの途中で書き換えない | Lv.07 コレクション・ラムダ式・ストリームAPI+JUnit5 |
Lv.01〜02
Java の第一歩と開発環境、基本文法とデバッグ。エラーを読んで直す練習
Lv.03〜07
オブジェクト指向、参照型、例外、コレクション。5か所はここで越える
Lv.08〜11
データベースと SQL、Web の基礎、Spring Boot、JavaScript・React・Next.js
Lv.12
設計・実装・単体テストのサイクルを手で回し、そのあと AI と一緒に回す
なぜ最初の言語が Java なのか
業務システムで広く使われている
会社の業務で使うシステムで長く使われてきた言語で、未経験歓迎の求人にも Java を含むものがある
間違いを早く教えてくれる
型が厳しいぶん、多くの間違いを動かす前(コンパイル)に教えてくれる。④の例外もその一つ
ほかの言語にも移りやすい
クラス・型・例外の考え方は、ほかの多くの言語でも使う
関連記事「未経験の入口にJavaが選ばれる理由」でも、求人件数や言語の順位から理由を整理しています。
Java が「分かってきた」と感じる目安
研修の Lv.07 までに、この5つができるようになるのが目安です。応募の時点でできていなくても応募できます。
よくある質問
Java は未経験には難しいですか
最初の数週間は難しく感じやすい言語です。ただ、つまずく場所はインスタンス・static・参照型と equals・例外・コレクションの5か所にだいたい決まっていて、順番に越えれば誰でも通る道です。
Java で挫折する人は、どこで止まりますか
多いのはオブジェクト指向(クラスとインスタンス、static)のところです。エラー文の「staticでないメソッド〜をstaticコンテキストから参照することはできません」が、まさにその場所です。研修では、止まったときに聞ける人がいるかどうかで、越えられるかが大きく変わります。
独学とどう違いますか
独学でも学べますが、止まったときに聞ける人がいるかが一番の違いです。研修では、段階ごとに確かめながら進み、分からないところを講師や担当者に聞けます。
Java を勉強してから応募したほうがいいですか
その必要性は低いです。応募は今からでもできます。研修で育てる会社なら、Java は入社後に基礎から学べます。
Java のエラーは英語ですか
コンパイルのエラーは日本語の設定なら日本語で表示されました(この記事のエラーは日本語の設定で表示)。実行時の例外(ConcurrentModificationException など)は英語のままです。関連記事「英語ができなくてもエンジニアになれるか」で詳しく見せています。
数学ができないと Java は難しいですか
業務システムの Java で使う計算は、四則演算や割り算の余りが中心で、数学の必要性は低いです。関連記事「プログラミングに数学は必要か」も参考になります。
Java のあとは何を学びますか
RJC の研修の例では、データベースと SQL、Web の基礎、Spring Boot、JavaScript・React・Next.js と進み、最後に設計・実装・テストを手で回してから AI と一緒に回します。
AIがコードを書く時代に Java を学ぶ意味はありますか
あります。AIが書いたコードが正しいかを確かめるには、この記事の5か所のような決まりを知っている必要があります。研修の最後(Lv.12)で、手で回したサイクルを AI と一緒に回すのはそのためです。
配属後も一人で書くのですか
一人で抱え込む前提ではありません。jobtag はプログラマーについて「配属後、半年から1年間程度、先輩プログラマーやSEなどの指導を受けながら、部分的なプログラムを担当」と書いています。
RJC の場合:Java を12段階で、担当者が伴走しながら
最後に、この記事を書いている RJC(株式会社RJC)の場合を、公開中の採用情報と入社時研修の内容から書いておきます。RJC は、顧客やSIerの開発チームに入って開発する SES事業を主に、自社で引き受けて開発する SI事業も行う会社で、未経験採用は他業種からの転職者が中心です。これまでに500名以上の未経験者を育ててきました。
- 応募の条件
- 学歴不問、業界未経験者大歓迎。元フリーター・他業種からの転職者も活躍中。資格・作品は条件にしていない
- 入社時研修
- 4か月・12段階。Java の基礎から、オブジェクト指向、データベースと SQL、Web の基礎、Spring Boot、JavaScript・React・Next.js と進み、最終段階で設計・実装・単体テストのサイクルを AI と一緒に回す(AI駆動開発)
- 研修の形
- 採用した担当者が研修の修了まで伴走する
- 研修のあと
- 10年育成プログラム(技術研修・設計研修・昇進研修)。600本以上の動画講座、書籍購入費用の会社負担
- 役割の道
- SE→リーダー→プロジェクトマネージャー、またはテックリード→アーキテクト
- 給与
- 未経験・1年目は年収308万〜322万円。昇給年1回、賞与年2回
- 働き方
- 年間休日127日、完全週休2日(土日)、9:00〜18:00。11期連続黒字
- 応募
- エントリーフォームの希望職種「プログラマ(未経験者)」から。向いているかを先に確かめたい方は「インターン・研修体験を希望の方」から
RJC の入社時研修は、Java の第一歩(Lv.01)から始まり、この記事の5か所を Lv.03〜07 で順番に越えます。止まったときは、採用した担当者が修了まで一緒に伴走します。Java を学んでからでなくても、今から応募できます。
参考・出典
- 厚生労働省 職業情報提供サイト(jobtag)「システムエンジニア(受託開発)」 https://shigoto.mhlw.go.jp/User/Occupation/Detail/312 、「プログラマー」 https://shigoto.mhlw.go.jp/User/Occupation/Detail/313 (2026-10-11 確認)
- レバテック「IT人材白書2026」 https://levtech.jp/files/doc/levtech_research_2026.pdf (2026-10-06 確認)
- doda 求人検索 業種IT・通信×職種未経験歓迎 https://doda.jp/DodaFront/View/JobSearchList/j_ind__01L/-op__70/-preBtn__3/ 、同×キーワード「Java」 https://doda.jp/DodaFront/View/JobSearchList/j_k__/Java/-ind__01L/-op__70/-preBtn__3/ (2026-10-11 確認、表示件数)
- 株式会社RJC「採用情報」 https://www.r-jc.jp/recruitment/ (2026-10-11 確認)
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「Javaは難しいか|未経験がつまずく5か所と研修で越える順番」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。