CodeCamp(コードキャンプ)のJavaマスターコースレビュー・感想|8日目

こんにちは。コードキャンプ株式会社が運営するプログラミングスクール「CodeCamp(コードキャンプ)」でプログラミングを学習している高橋です。

高橋吾郎
プログラミング初心者の高橋吾郎です!

現在は全く別の業界で働いていますが、今後はシステムエンジニアとしてのキャリアに進もうと思っています。その準備として、JavaマスターOLコースでJava開発の基礎を学んでいきます!

私が受けているコースは「Javaマスターコース」。Javaは、数あるプログラミング言語の中でも、日本国内において、特に求人案件数が多い言語です。CodeCamp(コードキャンプ)の「Javaマスターコース」では、Javaエンジニアには必須の「オブジェクト指向」から、「JSP/サーブレット」「データベース連携」まで、Javaを用いてWebアプリケーションを開発するために必要な知識を基礎から実践まで学びます。

受講回数は2ヶ月(20回)、4ヶ月(40回)、6ヶ月(60回)の3つから選べます(今回は2ヶ月間受講します)。

それでは、2018年11月14日に受講した、Codecamp(コードキャンプ)「Javaマスターコース」第8回目の学習内容をレビューします

Javaマスターコース8日目|CodeCamp(コードキャンプ)

本日の講師:勝田郁郎先生

普段はSOHOにてWEB系、ソーシャルゲーム関連の開発を行っております。
実務に基づいた使えるスキルを丁寧に解りやすくお伝えいたします。

現在学んでいる箇所では無い箇所の質問も、是非して下さい。
どんな質問を何度して頂いても構いません。
理解し、使いこなせるようになるまで、お手伝いさせて頂きます。
いっしょに頑張りましょう。

引用:CodeCamp(コードキャンプ)

第8回目のレッスンで学んだことは以下の内容です。

CodeCamp(コードキャンプ)Javaマスターコース第8回目のレッスン内容

  1. Java応用編第12章

前回までで、JavaマスターOLコースの基礎編まで終わらせることができました。レッスンも一段落したところで、今後の進め方について相談することにしました。

1.Java応用編第12章

高橋吾郎
本日はよろしくお願いします。

私はできればあと1カ月程度でコースを完了したいと思っています。今後どのような進め方にするのがおすすめでしょうか。

勝田郁郎先生
基礎編のjavaっていうのは、javaのプリミティブな部分で、言語仕様だとかを理解してオブジェクト指向のプログラムを組むというところなので、習得が必須な部分だったんですね。

それに対して、応用編っていうのは具体的な技術の使い方、みたいな話なので必要なところをかいつまんでやるのでも十分です。

応用編の目次

高橋吾郎
いま取り組まなくても、学習を進める中で必要になったら見ればいい、という形ですね。
勝田郁郎先生
そうです。例えば応用編で扱うものにはファイルの操作というものがあります。

ファイルへの書き込みとか呼び出しをしなければこれをしなくてもいいわけですね。

例えば、サーブレットではデータを永続化したいとなると、データベースに保存することになります。

教材『ファイル操作の概念』より抜粋

高橋吾郎
今まではデータの管理はメモリ上のみでやっていましたね。
勝田郁郎先生
そうですね。

それに対して、掲示板とかツイッターのようなものを作ろうとしたときに、メモリ上のみで扱っていると、パソコンを落としたときにデータが消えてしまいます。これでは困りますね。そういったときに一番簡単に思いつくのがこのファイルです。日付やコメントを名前つけて保存しておけばよいですね。

ただECサイトなんかではそれでもつくることは可能なんですけど、ツイッターのようなものを作ろうと思うとデータが何億件かあったりして、その中で自分のフォロワーのツイートだとか「欲しいものを抽出する」必要がありますね。そういう作業を簡単にしてくれるのがデータベースという仕組みです。

言ってみればファイル保存の上位互換だと思ってください。

データベースのイメージ(教科書から抜粋)

高橋吾郎
大量のデータを整理する情報がついているデータの塊というイメージですね。
勝田郁郎先生
保存したときにうまいこと整理して保存してあってなんかの条件で保存や検索を簡単にできる仕組みのことですね。

なので、データベースを学んでおけば、ファイルの保存の重要度は低いでしょう。実際にファイルに書く必要が出てきたときに勉強すれば十分だと思います。

java基礎では今までやっていくところの土台を作っていたので、何一つ欠かすことができませんでした。応用編はこれの上に何か積むっていうものではなく、単独で存在していて、一番上に乗っかるものっていうものもあるので、それは必要になってから学べば良いでしょう。

ですので、応用編の課題についてはあまり手を付けなくてもいいかなと思います。

高橋吾郎
ファイル保存や書き込みはどんな時に使うのでしょうか。
勝田郁郎先生
ファイル保存を使えば、基礎編で作ったゲームの一時中断ができるようになります。

今はプログラムを終了するとコインの数などのデータが消えてしまいますが、一時中断したいと思ったときには一旦ファイルの形にしておきます。再度プログラムを立ち上げたときにそのファイルを読み込めば、続きから始めることができるようになりますね。

高橋吾郎
確かに、それを聞くとこの上に何かをするという感じでもなさそうですね。必要になってから学ぶのでも十分そうです。

それでは、応用編の中で、サーブレットの作成に必要な部分はどの部分になるでしょうか。

勝田郁郎先生
1章文字列はやっといた方がいいですね。3章のコレクションはめちゃくちゃ大事です。配列の便利なやつという感覚です。

4〜7章は飛ばしてもいいかもしれません。特に7章で解説されているJVMの制御というのはJavaの世界で黒魔術と呼ばれている技術ですね。

高橋吾郎
黒魔術!?

黒魔術!?

高橋吾郎
なんだか恐ろしいですね(笑)
勝田郁郎先生
なんだかよくわからないけど、そういうものがあるらしいぞ、使うと便利なのかなぁ?という微妙なところにある技術ですね(笑)
高橋吾郎
そうなんですね。あんまり使われていない技術なんですか?
勝田郁郎先生
私は個人的に使ってはいけない技術だと思っています。設計がきちんとしていれば必要がないのですが、設計が悪いと使わざるを得なくなるような技術です。

あるクラスを継承元のクラスにアップキャストをするというものをポリモーフィズムで学びましたね。アップキャストはイメージ的には「詳しく作ったものをフワッとさせる」という処理なのですが、そのフワッとさせたものをまた改めて詳しくした時に、これが一体何者なのか知りたいという時に使う技術です。

要は「犬」と「猫」というクラスを「動物」にアップキャストしたとします。そうするとどちらのクラスも「動物」として扱って配列にいれたりすることができますね。

次に、配列に入っているモノが果たして「犬」なのか「猫」なのか改めて知りたい、というような時に7章の技術を使うことになります。

高橋吾郎
ややこしいですね(笑)聞いている限りでは、なんだか回り道をしているような感じがしますね。
勝田郁郎先生
こういうことをする必要が無いように設計するのが第一なのですが、設計が悪いと使わざるを得なくなってしまうというような技術です。
高橋吾郎
それで黒魔術と呼ばれているんですね。それではこの章については軽く読んでおく程度にしておこうと思います。

8章以降はどうでしょうか。

勝田郁郎先生
8〜11章も個別の技術です。8章は他の人が作った便利なクラスを使ってみよう、というものです。9、10章のファイルの形式については、先にも触れましたね。11章は対戦型のゲームが作りたいなどという時に使えば良いです。

12章についてはサーブレットでもガチガチに使いますし、今の世の中にあるプログラムでデータベースを使わないものはほぼ存在しないと思ってもいいと思います。なのでここはしっかりやっておくべきですね。

13章についてはしっかりやろうとすると結構難しい技術です。これを作れるようになるといっぱしのプログラマと呼んでもいいのではないでしょうか。

高橋吾郎
どんな技術なのでしょうか。
勝田郁郎先生
今まで作ったプログラムは動かす人が一人でしたね。

そのプログラムを例えば10人同時に使ったら変数とかどうなんの?という問題が生まれます。複数人で動かす時に、変数を個別に扱ったり、統合して扱ったり、また個別に扱わなければいけないものを個別に扱ってそれぞれの状態を保持するというものがこの技術ですね。

二人動かした時には2つスレッドが立つと、いうような言い方をします。これからやるサーブレットという技術はまさにこのスレッドという技術を使っています。

高橋吾郎
それではスレッドについてはしっかり勉強しないといけないでしょうか。
勝田郁郎先生
確かにスレッドを使うのですが、その一方でサーブレットという仕組みはこのスレッドという仕組みを隠ぺいしてくれています。我々が特に気にしなくてもいいようにしてくれているんですね。

なので、サーブレットがこのスレッドという仕組みで動いているということだけ知っていれば十分かなと思うので13章を一読しておいてください。

高橋吾郎
それでは応用編はコレクションとデータベースにしっかり取り組んで、スレッドは軽く触っておく、という形ですね。

他の章については時間の余裕を見て取り組んでいきたいと思います!

勝田郁郎先生
そうですね。

特に、このコースの最終課題はECサイトを作るというもので、結構時間がかかります。なので、そっちを優先した方が良いかもしれませんね。

高橋吾郎
わかりました!ところで、ECサイトってなんですか?(笑)
勝田郁郎先生
いわゆるアマゾンみたいなやつですね。まさにお仕事で作るようなものです。

今、Javaの仕事というと、サーブレットを使ったものか、Androidということになるかと思います。サーブレットではECサイトや金融機関のシステム、ソシャゲなんかにも使われています。

高橋吾郎
結構時間がかかりそうですね……。でも、ブラウザで動くものが作れれば楽しそうです!
勝田郁郎先生
そうですね。ブラウザで動かすもの以外にアプリがありますが、そのデータのやりとりはサーブレットの仕組みを使っています。

Androidはゲームを動かす部分で使っています。モンストなんかのゲームで言えば、ものを引っ張ったり飛ばしたりというアニメーションはAndroidで使われています。

高橋吾郎
ゲームらしい処理の部分がAndroidでデータの管理がサーブレットという役割分担なんですね。

いずれはAndroidもやっていきたいと思います!時間が少しあるので、文字列の操作で予習してきたところを見ていただきたいと思います。

高橋吾郎
こういう形で書いてみたんですが、大文字・小文字の部分でもうちょっと工夫ができそうな気がします。

勝田郁郎先生
正規表現の部分ですね。正規表現という分野はこの分野だけで2週間やってもいいくらいの厚みがある技術なので深入りはしないでおきましょう。

必要になってから勉強するのでも良いかもしれません。

どの言語で書いても正規表現そのものは変わらないので、例えばブラウザで「正規表現」検索してみましょう。

今回は「サルにもわかる正規表現入門」というサイトを参考にしました。

勝田郁郎先生
早速このサイトに書いてある[ ]というものを使ってみましょう。

[AB ]とかくと、AかBのどれか一つという意味になります。今回は大文字の小文字のどちらでも良いので、[rR]と書けば良いですね。

書き直したコード

高橋吾郎
これだけで良いんですね!だいぶ短くなりました。
勝田郁郎先生
この技術は例えば会員登録の時なんかに、大抵メールアドレスを入力しますね。アステリスクやクエスチョンマークを使っていなければいけないとか、アットマークがなければいけないとかいうことを記述する技術です。

書き方そのものは難しいんですけど、検索すると簡単に出てきます

高橋吾郎
確かに、メールアドレスで言えば同じことをやっている人は沢山いそうですね。
勝田郁郎先生
Javaのいいところの一つは「枯れている」ということです。

前にやった人がこれは効率がいいとかこれはダメっていうのが出尽くしていて、調べれば出てくるという技術です。

高橋吾郎
新しい技術だと自分でやり方を模索したり、やってみてダメだったなんてことがあったりしそうですね。先人の知恵に学んでいく姿勢を大事にしたいと思います!

Javaマスターコース8日目の感想|CodeCamp(コードキャンプ)

今回はコードのレビューという形ではなく、今後の進め方について相談させてもらいました。その中でどんな技術がどんな形に応用されているのかということについて知ることができ、開発のイメージが湧きました。

今後はサーブレットの作成に向けて頑張っていきたいと思います!

CodeCamp(コードキャンプ)の「Javaマスターコース」とは

CodeCamp(コードキャンプ)の「Javaマスターコース」は、Javaエンジニアになるために必要な知識を基礎から実践まで学べるコースです。

>>無料体験レッスン受講で10,000円OFFクーポンプレゼントキャンペーン実施中

CodeCamp(コードキャンプ)「Javaマスターコース」の料金

2ヶ月
  • 料金:148,000円(税抜)
  • レッスン回数:20回
  • 受講期間:60日間
  • 週の学習時間目安:20〜25時間
4ヶ月
  • 料金:248,000円(税抜)
  • レッスン回数:40回
  • 受講期間:120日間
  • 週の学習時間目安:10〜15時間
6ヶ月
  • 料金:298,000円(税抜)
  • レッスン回数:60回
  • 受講期間:180日間
  • 週の学習時間目安:5〜10時間

LINE@無料相談

無料で相談する

編集部がプログラミングスクール選びのアドバイスをさせて頂きます。「スクールがたくさんあり過ぎてどれを選べば良いのか分からない」「どの言語を勉強すれば良い?」「転職に有利なスクールはどこ?」など、どんな質問でもOKです!気軽にご連絡ください★