[st-kaiwa1]・Javaの学習がしたいけど、どこからはじめよう
・試験に合格できるレベルまで上げられる?
・どんな本を使えばいいの?[/st-kaiwa1]
こんな悩みを解決します。
結論、Javaに触れるしかありません。
仕事や趣味でJavaを利用している人の場合は、その経験がそのまま試験勉強のために役立ちますが、独学の人はJavaの経験値が圧倒的に不足しています。
試験で合格するレベルまで学習するのは大変ですが、試験を抜きにしてもJavaを学習することにはメリットがあります。そんなメリットを理解して学習意欲を上げていきましょう。
そこで今回は「午後問題でJavaを選択する人のための勉強方法」と「オススメの書籍3冊」について解説します。
本記事を参考にすると、Javaの学習方法とそのメリットに加え、合格までの学習の道筋も見えてきます。
プログラミング初心者でも目指すべき目標や、行き着くべき先に何があるか見えるようになっていますので、是非最後までご覧ください。
[st-kaiwa5]今回は長めの記事となっているため、ブックマークなどでゆっくりと読むのがオススメです![/st-kaiwa5]
この記事の概要
- Java言語習得のメリットとは
- 午後問題でJavaを選択するための学習法は?
- 徹底的に基礎力をつけるためのオススメの3冊
- 合格までの学習フロー
Java言語習得のメリットとは
まずはJavaというプログラミング言語を学ぶメリットを紹介します。
単に試験のためにJavaを学習するよりも、メリットを知って試験勉強が終わったあとでも利用する、という長期の目標を立てることができます。
また、Javaという言語はC言語と同じくらい、大学のカリキュラムでも利用されるメジャーな言語でもあります。
[st-midasibox title=”学習するメリット” fontawesome=”” bordercolor=”” color=”” bgcolor=”” borderwidth=”” borderradius=”” titleweight=”bold” myclass=””]
・ITエンジニア業界で、Javaを利用した案件はいまだ多い
・C言語よりも取り組みやすく、基礎学習として利用しやすい
・オブジェクト指向についての理解を深めることができる
[/st-midasibox]
学習するメリットを順番に紹介していきます。
ITエンジニア業界で、Javaを利用した案件はいまだ多い
ITエンジニア業界では、Javaの案件はたくさんあります。
例えばレバテックフリーランスなどで、JavaとC#で検索をかけると以下のような結果になります。
[st-minihukidashi fontawesome=”” fontsize=”” fontweight=”” bgcolor=”#4FC3F7″ color=”#fff” margin=”0 0 20px 0″ radius=”” position=”” myclass=”” add_boxstyle=””]・レバテックフリーランスで、Java案件を検索した結果[/st-minihukidashi]
該当案件数 | 2026件数 |
平均単価 | 71万円 |
最高単価 | 145万円 |
最低単価 | 32万円 |
[st-minihukidashi fontawesome=”” fontsize=”” fontweight=”” bgcolor=”#4FC3F7″ color=”#fff” margin=”0 0 20px 0″ radius=”” position=”” myclass=”” add_boxstyle=””]・レバテックフリーランスで、C#案件を検索した結果[/st-minihukidashi]
該当案件数 | 567件数 |
平均単価 | 69万円 |
最高単価 | 115万円 |
最低単価 | 40万円 |
2020年07月24日にレバテックフリーランス公式で検索した結果 より
実際に単価や案件を見てみたい方はこちらからどうぞ
C言語は公式にはないため、C#とJavaを検索して比較したところ最高単価が30万円も高くなり、案件数もおよそ4倍という結果になりました。
案件の豊富さや、平均単価を見てもJavaが業界に必要とされているということがわかります。
C言語よりも取り組みやすく、基礎学習として利用しやすい
C言語は歴史の古い言語です。
そのため宣言を行う位置や、メモリーを開放する必要など、時代の流れを受けた様々なしがらみが残っています。
特にC言語にはポインターという厄介な学習要素があり、ポインター専門の教本が発売されるほど難解な単元として有名です。
もちろん、高等なプログラムを作るにつれ必要になる技術ですが、基礎学習としてはコストが高くプログラミング言語の学習自体をやめてしまいたくなる一因でもあります。
Javaにはメモリー管理はないのか?などといった疑問が枠と思いますが、Javaはそれらを自動で行う機能などがあるため、意図して気にすることはありません。
上記のようなことからJavaは基礎学習する際のコストが低いと言えます。
オブジェクト指向についての理解を深めることができる
Javaといえばオブジェクト指向が有名です。
実際はその他の言語にもオブジェクト指向というものは存在しており、C++という言語でもオブジェクト指向はあります。
しかしJavaが台頭してきたころに、オブジェクト指向開発に必要な要素の多くが満たされ始めました。
それによってJavaとオブジェクト指向は普及し、オブジェクト指向というとJavaという印象がつきました。
そのため、Javaの教本の中にはオブジェクト指向のわかりやすい説明が組み合わさった単元が多く掲載されています。
言語への理解を深めつつ、大規模開発に必要なオブジェクト指向を学ぶことができる。
一石二鳥の言語がJavaということです。
午後問題でJavaを選択するための学習法は?
どんな学習でもそうですが、特に言語といったものは経験値が大事。
ソースコードを書く、言語としての構成を知る、書籍を見て学習するなど、Javaを選択するためにはプログラミング言語に触れることが理解度を上げることに大きく影響します。
質のよい経験を積むことが、質のよい学習を産み出し、効果的な学習を促します。
特に、産みの苦しみを知ることがプログラムにおいては重要です。
まずは学習の前に、試験で必要とされているJavaの範囲を知らないといけません。学生時代に試験範囲が出されていたと思います。
社会のテストでも試験の範囲は提示されているので確認しましょう。
試験で利用されるJava言語の全容を知る
Java言語の全容を知る、といいましたが要するに試験範囲です。
IPAの公式サイトには基本情報技術者試験に関するシラバスが閲覧できるページが存在しています。シラバスとは試験の要綱やその範囲、ジャンルが記載された書類です。
早速、Javaについて以下に抜粋しましたので確認してみましょう。
Java のプログラムの作成方法の基本を修得し,適用する。
演算処理,制御処理などを行うプログラムの作成方法を修得し,適用する。
クラスの宣言方法,クラスをインスタンス化して利用する方法を修得し,適用する。
継承,インタフェースを利用し,効率良くプログラミングを行う方法を修得し,適用 する。
例外処理,並列処理などの作成方法を修得し,適用する。
基本情報技術者試験(レベル2)」シラバス(Ver.7.1) ※ 2020年5月8日掲載 より
シラバスはIPAの公式サイトにありますので、一見してみるのがオススメです。
>>> IPA 独立行政法人 情報処理推進機構 シラバスのページ
一覧で眺めてみるとこれだけ?と思いますが、これだけの範囲で書籍1冊分以上の内容になります。ここに書かれていることは、プログラムに共通する基礎的なことから、Java特有の機能まで様々です。
それらの学習に経験値を足したものが、基本情報技術者試験のプログラム の選択問題を正答するための肝となります。
とはいえ、基本情報のようなお堅い試験のプログラムですから、基礎力をつけて問題に時間をかければしっかりと読み解くことができますので、安心してくださいね。
ProgateでまずはJava言語の基礎を学ぶ
まず、学習を始めるにあたって基本的なことを学ばなくてはいけません。
なぜなら、IF文であるとか、宣言であるとか、クラスなどの用語や、その使い方です。プログラムというのはひとつひとつのパーツが固まって、1つのツールになるものです。
車のおもちゃの歯車は合えばタイヤは回転しますが、歯車がずれていればタイヤは動かないのです。
そして歯車がどんな形で、どうやったら噛み合うのか、歯車の種類を知る必要があります。
もちろん学習には書籍を利用するのもとても重要です。
書籍については後ほど紹介したいと思います。
まず先にオススメしたいのが【プログラミング学習サービス:Progate】です。
Progateはオンラインでプログラミング学習を行うことができる学習サービスです。無料アカウントと有料アカウントがありますが、基礎的な単元については無料で学習が可能です。
このサービスのよい点は、まずわかりやすいスライドで説明が行われることです。その後、サービス上で実践し、回答に対して正解・不正解がでるため、インプットからアウトプットまでがスムーズです。
そのほかにも以下のような利点があります。
[st-midasibox title=”Progateを使う利点” fontawesome=”” bordercolor=”” color=”” bgcolor=”” borderwidth=”” borderradius=”” titleweight=”bold” myclass=””]
・スマートフォンでも学習が可能
・わからない箇所を戻って復習できる
・Javaを動かす環境を自分で作らなくていい
[/st-midasibox]
特に、初学者が学習を行う際に動かす環境を作るというのは骨が折れます。せめてプログラミングの基礎の勉強に慣れてきた頃に始めるのがベターです。
そういった意味で、Progateはいつでも・どこでも学習を行うことができ、基礎を学ぶことにとても適していると言えます。
高度な学習を行うため、UdemyやTECHACADEMYを利用する
さて、書籍やProgateを利用して学習を行ったら次は高度な学習が必要です。
ここで言う高度な学習とは、身に付けた基礎的な内容から応用的な内容に移るということです。
もちろんProgateで有料会員になった場合はそのまま応用のレベルをこなしていくのも大事なことです。
しかしながら穴埋め的な学習方法のProgateは、アウトプットの量や経験値を積むという部分に対して心配が残ります。
アプリの記事でも少し述べましたが、記憶の定着にはアウトプットが必要です。
アプリの記事はこちらからどうぞ。
>>> 基本情報の午前問学習で効果的に使える2つのアプリ【無料あり】
実践的な学習を行うためにはソースコードを記述する、参考書に書かれている内容を実践するという過程が必要です。
また、プログラムを書くことで発生するエラーを修正することで、高い学習効果が得られます。そのために、UdemyやTECHACADEMYなどの学習サービスを利用することが大切です。
Progateとの違いは様々な言語という枠から外れた、開発者向けのコースが存在していることです。
料理を学ぶ中で、包丁の使い方や鍋の使い方を説明しているのがプロゲートだとしたら、UdemyやTECHACADEMYは肉じゃがやカレーなどの料理のひと通りを教えてくれているといえます。
経験値を高めることで、ソースコードの読み方や開発の流れを知り完成品を作る頃には言語を扱うことができる状態になっている、ということになります。
Javaの学習は、その後のキャリアアップなどにも役立つため、損をすることがないのも良いことのひとつと考えられます。
できるだけ無料で、高度な学習を行うには?
ここまでの内容で悩んでしまうことは、有料のコンテンツが多いということです。
できるだけ無料で高度な学習を行う方法は、やはりプログラムを書くことです。
まずは無料枠でプログラミングの基礎を学んだら、残りは書籍で学習を行うことでJava言語の応用までの学習を行います。ここまでは書籍を利用して学習してしまえばある程度の基礎力が身につきます。
書籍の内容には自分で環境を用意する方法も解説していますので、開発環境の問題もできるだけ小さくなります。まずは書籍の内容を真似するだけで、Javaの学習効果が見込まれます。
あくまでも大事なことは、インプットしたことをアウトプットするということです。
その後取り組むべきことは、目的を決めてプログラムを作成する、ということです。先にも述べたとおり、高度な学習とは基礎から応用へ内容が移ることです。
つまり、【より実践的な物をつくること】これが無料の学習で最適な方法です。とはいえ初学者がいきなり思いついて作る、というのも難しいのでウェブで以下のように調べることが大事。
[st-midasibox title=”ウェブで問題を調べる” fontawesome=”” bordercolor=”” color=”” bgcolor=”” borderwidth=”” borderradius=”” titleweight=”bold” myclass=””]
・Javaで簡単なゲームを作る
・Javaの実践的演習問題
・Javaで作成する Qiita
[/st-midasibox]
最終的には自分で考えて作ることができれば、自然と力がついていると言えるでしょう。
まずは着手することがJavaを理解するための近道ですが、ここまでの内容から書籍から学習したいという人もいると思います。ついては、オススメの3冊を紹介したいと思います。
徹底的に基礎力をつけるためのオススメの3冊
基礎力をつけるには、わかりやすくて実践しやすいが大事。
何度もいいますが、インプットしたらアウトプットすること。そのときのインプットの質が良いもののほうが、アウトプットする時も同じくらい質が良くなります。
というのも大抵の人はプログラミングは「難しい」という認知バイアスがかかっています。
[st-kaiwa4]自分が成果を出せないのは、この単元が難しいと言われているからだ。
ほら、やっぱりこの問題も間違えた、やっぱりこの単元は難しいんだな。[/st-kaiwa4]
[st-midasibox title=”認知バイアスについて” fontawesome=”” bordercolor=”” color=”” bgcolor=”” borderwidth=”” borderradius=”” titleweight=”bold” myclass=””]
認知に関するバイアス(先入観)のこと
単元が難しいという先入観から、自分の努力が不足しているという認知の歪みに気づいていない。そのため非合理的な判断をしてしまうこと。認知バイアスがかかっている状態、といいます。
[/st-midasibox]
努力が不足していれば難しいのは当たり前です。
[st-kaiwa4]まだ3問しか解いてないし、できなくて当たり前か!もっと問題に取り組もう![/st-kaiwa4]
できなくても自分を認めて、客観的・合理的に判断して学習できるようにしましょう。
今回は基礎力をつけるために重要な3冊の本を紹介します。また、この本を通してプログラムってこんな簡単なんだ、と思えるようになることが大事です。
[st-midasibox title=”オススメの3冊” fontawesome=”” bordercolor=”” color=”” bgcolor=”” borderwidth=”” borderradius=”” titleweight=”bold” myclass=””]
・スッキリわかるJava入門 第3版 スッキリわかるシリーズ
・スッキリわかるJava入門 実践編 第2版 スッキリわかるシリーズ
・Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで
[/st-midasibox]
順に紹介していきます。
スッキリわかるJava入門 第3版 スッキリわかるシリーズ
スッキリわかるシリーズとして有名な本です。
プログラムの入門書は、文字とソースコードが書かれており構文の説明が延々と続いているのが一般的です。
この本は主人公と、その上司、仲間、とキャラクターが登場し、「システムを作る」というストーリーの元、構文や言語についての話が進んでいきます。
もちろんその中で演習問題もあるので、独学でも進めますし難易度もそこそこです。
とくにオブジェクト指向に対しての補助が手あつい、という印象を受けました。学習フローについても丁寧に書かれており、Javaの初学者もオブジェクト指向に悩んでいる人にとっても最適な本です。
🌿 購入した人の声
[st-kaiwa2]
「プログラミング初めてやります」って人にも、「とりあえずJavaから始めます」って人にも、マジでこれをオススメします。初心者を飽きさせない工夫が凄い。
プログラミング出来る人が見たら、「なんでそれ飛ばすの?」って思いそうだけど、「それを先やったら飽きるから」みたいな思考して書いたんだろうなって印象。
独学でやるなら、マジでこれ買った方がいいです。
特に、「これを作る」と決まっていて、「作る手段」としてJavaを勉強する“わけではなく”、「とりあえずプログラミングを身に付けたいな」とか、「仕事にしたい」とか考えてる人におすすめ。
「プログラミングってどんなだろう」って人でも全然大丈夫。
本当に最高。
[/st-kaiwa2]
[st-kaiwa3]
普通は最初にネットで調べて勉強しようとされる方も居ると思いますが
まずどれから手を付けていいのかも解らない+専門用語の連発で挫けると思います。
私もそうです・・
ですがこちらの本は専門用語の解説は勿論
1から漫画等を織り交ぜてわかりやすく書かれています。
[/st-kaiwa3]
詳しい口コミを見たい場合は下記からご覧ください。
スッキリわかるJava入門 実践編 第2版 スッキリわかるシリーズ
スッキリわかるシリーズの実践編です。
先に紹介した入門書で基本的なJavaの学習、構文の学習をした後に実践編を行うことでプログラム開発について学習することができます。
試験で出題される内容からは一部外れ、実践的な内容が多くなりますが巻末の方の単元に並列処理がありますので、この単元については学習を行っていく必要があります。
書籍の目的はひと通りの開発を通して、構文の扱いに、たけることでプログラミングの経験値を高めることです。有料のコンテンツを使わずに独学でやっていきたいという人にとっても、強い味方です。
🌿 購入した人の声
[st-kaiwa2]
別のテキストを使ったJavaの研修を受けました。
パソコンは電源→インターネット→終了ぐらいしか使ったことない人間にはそのテキストは合わず。
研修の最初からこちらを使いたかった、と悔やみます。
是非、未経験でIT業界!な方はこちらをまず購入してみてください!
[/st-kaiwa2]
[st-kaiwa3]
スッキリわかるJava入門の実践編、ということで、ちょっとだけ高度な内容になります。といっても、あいかわらずのイラストとゆるーい掛け合いで一つ一つ丁寧に解説してくれるので、初心者でも安心です。たとえば、回りくどいJavaのしきたりに顔をしかめる場面があるかもしれませんが、そんなときはたいてい、あなたに先回りして登場人物が顔をしかめています(笑)
このシリーズの著者さんは、初心者の気持ちが本当によくわかる方なんでしょうね。前作のレビューでも書きましたが、こんな良書でスタートできるなんて、Javaの入門者が心底うらやましいです。
[/st-kaiwa3]
詳しい口コミを見たい場合は下記からご覧ください。
Java本格入門 ~モダンスタイルによる基礎からオブジェクト指向・実用ライブラリまで
入門書を終えたところで、その先に進まなくてはいけません。
そんな時に役立つ本がこの書籍です。本格入門、とあるとおり初学者がいきなり手をだすと難解な書き方や理解に苦しむ内容になっています。
口コミにもありますが、特に例外などの処理やマルチスレッド、並列処理などの学習に適しています。またプログラムにおける構造のテンプレート:デザインパターンを理解することができます。
また、入門書よりもレベルが高く設定されているため、自分の実力が上がっていることを客観的に理解することができるため、学習意欲をさらに高めるという意味でもオススメの1冊です。
🌿 購入した人の声
[st-kaiwa2]
本格「入門」とありますが、ホントの初心者には難しい内容です。もっとやさしい入門書をこなした後で、より「本格」的に学ぶのに丁度よいです。
裏テーマが「35歳からのJava再入門」らしいのですが、確かにJava1.4から6くらいはよく知っているが7~8あたりは自信がないと言うおじさんエンジニアにこそ読んで欲しい内容でした。Java6くらいの文法やAPIを知っていれば、そんなに不自由することもないのですが、本書に記載されているJava8の文法やAPIを知ることで、より便利に短いコードが書けるようになるでしょう。
[/st-kaiwa2]
[st-kaiwa3]
Javaの例外(Exception/RuntimeException)の区分と使い分けは、いつも人に教えるときに苦労しています。しかし、これからはこの本を渡しておけばその苦労をする必要はなさそうです。
Javaを少しは書けるようになってきたが、例外とかマルチスレッドとかよくわからない という人にオススメだと思います。StreamAPIなどの説明もしっかり記述されています。
[/st-kaiwa3]
詳しい口コミを見たい場合は下記からご覧ください。
合格までの学習フロー
ここまで学習方法、オススメの書籍を紹介しました。
基本情報の試験に合格するための学習フローについて一例を紹介したいと思います。
[st-midasibox title=”学習フロー” fontawesome=”” bordercolor=”” color=”” bgcolor=”” borderwidth=”” borderradius=”” titleweight=”bold” myclass=””]
・ProgateでざっくりとJavaの書き方を知る
・スッキリわかるシリーズを読破し、各設問をこなす
・実践的なプログラム作成に着手する
・過去問に取り組み、各年度のプログラムが読めることを確認する
[/st-midasibox]
順番に解説します。
ProgateでざっくりとJavaの書き方を知る
基本構文をマスターする、ということです。
プログラミング言語の全てに共通する基本的な構文、IF文、WHILE文、宣言方法、などのプログラミングの基礎となる構文を知っておくことがまず最初に行うべきことです。
使い方のマスターまではいかなくても、何がどんな機能を有していて、どういうことができるのかの実例を知っているところまで理解していれば次の項目で設問をこなすことができます。
またProgateは進捗度や、進めていくごとにレベルが上がるなどゲーム感覚で学習を進めることができます。ここで基本構文をマスターしてしまうことが最初に行うべきことです。
スッキリわかるシリーズを読破し、各設問をこなす
基本の構文がわかったら、プログラムとしての使い方を理解するということです。
スッキリわかるシリーズを読みながら各設問をこなすことで、1から記述する「手に覚えさせる」作業をこなすことができます。
特にクラスの使い方や、継承・インターフェースの違いを理解し、オブジェクト指向を学習することに重点的な重みを起くことが大事です。
プログラムを書くことの基礎力をつけ、パーツを自由に使うことの練習を行います。
スッキリわかるシリーズにも学習のフローがありますので、それにそって学習することで効率よく学習できます。
実践的なプログラム作成に着手する
プログラムの書き方がわかったら、自分で考えるか与えられた課題に着手しましょう。
実践することが、プログラミングの中で最も効果的な学習です。特に課題がない中で学習を行うと、簡単なことの繰り返しになりますので、与えられた課題をこなすのがオススメです。
その際、先に記述したシラバスにある範囲を網羅するように学習を行いましょう。タスクリストを作り、自分が学習している内容に漏れがないようにすることが大事です。
実践的なプログラミングなので失敗することがたくさんありますが、自分のプログラムなのでとにかく自由に記述することです。
これをするとどうなるのか?という知的好奇心を満たすことで網羅的な学習が行えます。
過去問に取り組み、各年度のプログラムが読めることを確認する
最後は過去問題集に取り組みましょう。
ここまで学習が進んでいれば時間をかけて読むことで、プログラムが読めるはずです。またスッキリわかるシリーズが理解できていれば、間違えた箇所についても簡単に復習できます。
とはいえ、Javaだけだとやっぱり不安だな、という人については、午後問題を選択する時の記事で、選択肢を増やすことの重要さを述べました。
Javaだけしかできない、という状況は避けておくのが無難です。
午後問題の選択についての記事はこちらへどうぞ。
>>> 午後のプログラミング問題でどれを選択するか?【オススメは〇〇〇】
さて、話は過去問題に戻りますが、過去問題集は数年分ありますので、全ての年次について演習を行うことが重要です。
思わぬ理解不足は過去問題集の中に潜んでいます。
特に他人が書いたプログラムを読むというのは、自分だったらこんなふうにクラス分けするのにという感覚やなぜここで継承するの?という常識の不意をついてくるからです。
その経験値の不足は、過去問題集を解くことで解消していきましょう。
また認知バイアスを意識して以下のようなポイントに注意すれば、学習する時に難しいと感じても立ち向かっていけます。
[st-midasibox title=”認知バイアスを客観視する” fontawesome=”fa-check-circle faa-ring animated” bordercolor=”#FFC107″ color=”” bgcolor=”#FFFDE7″ borderwidth=”” borderradius=”5″ titleweight=”bold” myclass=””]
・わからないところがあっても復習すれば大丈夫
・過去問題を解くタイミングを少し早くして、学習度を実感して伸び代を感じる
・できなくても当然だと割り切って、Java言語の知識を深める
[/st-midasibox]
ここまで学習することができれば、本番の試験でも自信を持ってJavaに取り組むことがでしょう。プログラミングに対して恐れすぎず、1つずつ積み上げていってください。
Javaの学習で自分の価値を高めよう
きっかけは基本情報の試験突破のためですが、Javaの学習は今後の社会生活でも役立ちます。
エンジニアとして生きていく上でも、Javaに触れる機会があれば自分の市場価値を高めることにつながりますし、学生ならば就職活動で自信を持って発言できます。
理由はどんなものでも構いません。自分が学習しているJavaが将来的に役に立つことを意識して、学習を進めていくことで苦手なことにも積極的に取り組むことができるでしょう。
短期目標として今回の目的である基本情報技術者試験の突破を目指してくださいね。
他のStudyの記事は下記にまとめていますので、ご活用ください。
[st-mybutton url=”https://sugiyama-monolog.com/category/study/” title=”Studyの記事一覧へ” rel=”” fontawesome=”” target=”” color=”#fff” bgcolor=”#FFD54F” bgcolor_top=”#ffdb69″ bordercolor=”#FFEB3B” borderwidth=”1″ borderradius=”5″ fontsize=”” fontweight=”bold” width=”” fontawesome_after=”fa-angle-right” shadow=”#FFB300″ ref=”on” beacon=””]
コメント