1ヶ月Javaの研修を受けて見えてきたJava/Rubyそれぞれの言語を学ぶメリットデメリット

 

当ブログは完全未経験からプログラマーを目指す人のためのブログです

 

 

f:id:yoshitokamizato:20180310172013j:plain

 

f:id:yoshitokamizato:20171217212352p:plain

どうも、1ヶ月ブログサボってた神里です!

 

スクールの講師になるため1ヶ月Javaの研修を受けており、勉強に集中するためブログの更新をサボってました。(ごめんなさい)

でも、この1ヶ月は自分が予想した以上に大きい収穫があり充実してました。

劇的にスキルが向上してとても嬉しいです♪

 

RubyとJavaの比較もできるようになったので、それぞれの言語を学ぶメリット・デメリットもまとめてみました!

どっちの言語を学べば良いのかわからない方はご参考にしてみてください♪

 

Java、Rubyを学ぶメリット、デメリット

f:id:yoshitokamizato:20180310172124j:plain

JavaとRubyを比較し、それぞれの言語を学ぶメリットをまとめてみました。

 

Javaを学ぶメリット

メリットはザックリと以下の3つです。

 

  1. 求人数が圧倒的に多い
  2. オブジェクト指向をしっかり学べる
  3. 自分のスキルに自信が持てる

 

それでは1つ1つを詳しく見ていきましょう♪

 

求人数が圧倒的に多い

Javaの最も良いところは求人数が多いこと。

僕の会社でもプログラマを派遣する事業が展開されているのですが、その案件のほとんどはJavaです。

この言語が出来れば食いっぱぐれることは絶対にないですね。

 

東京であれば研修でしっかりJavaを教えてくれる企業もあるし、最近では無料でJavaを教えてくれるスクールも沢山あるので、学習環境がとても恵まれてる言語だと言えるでしょう。

 

ただし、無料スクールはそこまで教材やメンターが充実してない上に、転職先もわりと選択肢が少なかったりするのでその点はご注意を!

コード一切書かせてもらえない現場に転職させられないように!

 

というわけで、人生の選択肢を広げたいならJavaは今のところ最も学ぶメリットが大きい言語です。

AndroidアプリもJavaで開発されてますからね、スマホアプリの開発にも挑戦できるようになります。

 

オブジェクト指向をしっかり学べる

まず、オブジェクト指向とは何かというと、設計図から物を生み出すように、クラスからオブジェクトを作成し、それを活用することで開発効率を高めようという考え方のことです。

そして、Javaの良いところはそのオブジェクト指向をしっかりと学べるところ。

 

Ruby(Rails)はオブジェクト指向なんてそこまで知らなくても簡単なWebサービスであれば立ち上げられるのですが、Javaとなるとそうはいきません。

様々なクラスの機能を利用して目的に沿うように開発を進めていくので、オブジェクト指向の概念の理解は必須になります。

そしてその概念は他のプログラム言語でも共通している部分が多いので、Javaをしっかり学ぶと他の言語もわりとすんなり理解できるわけです。

 

自分のスキルに自信が持てる

Javaは初心者にとってはかなり難しい言語です。

僕も最初にやったときは「なんじゃこりゃ!?」と思いました。

しかし、だからこそ一通り理解できたときには、それが大きな自信につながるのです!

 

現に僕も、今だったら他の言語を学んでも挫折せず勉強を続け、ある程度スムーズに理解できる自信があります。

習得言語の柱としてJavaを置き、それを中心に他のスキルを向上させるのが効率的でおすすめです。

 

Javaを学ぶデメリット

Javaは学べることが多い反面、初心者にはかなり難しい言語でもあります。

つまり、Rubyに比べて挫折する確率は高いということ。

 

先ほどもお話しした通り、Javaは1つのWebアプリケーションを作成するにあたり、様々なクラスを用い、それぞれのクラスで定義されたメソッドを使いこなす必要があります。

それに加え、継承やオーバーライド、インタフェースの実装、MVCモデルの理解など、覚えるべきことが他にもたくさんあるのです。

また、フレームワークである Spring も、アノテーションやJSPタグなど特有の書き方があるのでルールを覚えるのに結構苦戦します笑

 

プログラミング初心者で、かつ、これまであまりパソコンに触れたことが無い人にとって、Javaはかなりハードルが高い言語と言えるでしょう。

 

Javaで学んだこと一覧

参考までに、僕が学んできた項目一覧を載せておきます!

良かったら学習にお役立て下さい。

 

  1. 基礎文法(if,case,while,for,array,list)
  2. 値渡し/参照渡し
  3. オブジェクト指向(概念)
  4. クラス
  5. フィールド
  6. メソッド
  7. コンストラクタ
  8. ポリモフィズム(概念)
  9. 継承
  10. インターフェース
  11. Webアプリケーションの作成(servlet/bean/jsp)
  12. フレームワーク(spring)

 

Rubyを学ぶメリット

さて、ここからは僕の大好きなRubyを学ぶメリットを紹介していきます♪

 

コードがシンプルで理解しやすい

Rubyはとにかくシンプルにコードを書くことができます。

変数の型を宣言する必要も無いし、メソッドの戻り値の型も示す必要はありません。

それに、簡潔な書き方が沢山あるのでコードの量も少なくてすみます。

 

わかりやすい例でいうと、「Hello world」という同じ文字を出力させるにも、RubyとJavaではコードの量が全く違います。

 

#Rubyでの「Hello World!!」
puts "Hello World!!"

 

//Javaでの「Hello World!!」
class Sample {
  public static void main (String[] args) {
    System.out.println("Hello World!!");
  }
}

 

 

このようにシンプルでわかりやすくかけるのがRubyの大きな特徴です♪

 

直感的に書けるから楽しい

「直感的に書ける」とはどういうことかというと、何をしてくれるコードなのかがぱっと見で分かるということです。

開発の効率を大きく上げてくれる処理として「繰り返し処理」というものがあるのですが、その書き方もRubyはとても直感的でわかりやすいです。

 

#Ruby
5.times {|i| puts i}

 

どうでしょう?

これだとコードの意味は明確にわからなくても、なんとなく「5回処理を繰り返してくれるコードなのかなぁ〜?」くらいの予想はつくのでは無いでしょうか?

それがJavaだとこうなります。

 

//Java
for (int i = 1; i <= 5; i++) {
  System.out.println(i);
}

 

ちょっと何をやるコードかわかりずらいですよね。

こちらのコードもRubyの例と同じように5回処理を繰り返してくれるのですが、ぱっと見では何をやってくれるのかわかりません。

 

もちろんRubyの場合も同じようにfor文は使えるのですが、「times」の方が直感的で書きやすいので僕はほとんど使ったことがありません笑(他にもeach文が便利なので良かったら調べてみて下さい)

Rubyでは直感的に書けて便利な繰り返し処理が沢山あるので、色々調べてみるととても楽しいです♪

 

機能の実装がめっちゃ楽

Rubyを使用したフレームワークであるRuby on Rails は機能の実装がとても楽です!

「gem」というものを利用すれば、管理者機能、ログイン機能、ページネーション機能などを簡単に実装することができます。

これらをJavaで実装するとなると、、、、僕はまだ出来ません笑

 

機能の実装にとっても便利な「gem」があることを考えると、やっぱりRuby on Rails ってめちゃくちゃ初心者向けだなと思います♪

 

プログラミングを楽しく学べる

Rubyはコードが簡単でわりとサクサク勉強を進めることができるため、やっててとても楽しいです。

それに今では参考にできるサイトの数も多く、質の高い教材はほぼ無料で手に入る。

だから、これまでプログラミングに全く触れたことのない方でも、比較的挫折せずに勉強を進めることができるのでは無いでしょうか。(もちろん努力は必要ですが)

 

Rubyを学ぶデメリット

Ruby(Ruby on Rails)は初心者にとって理解しやすい分、プログラミングの表面的な部分しか理解できないというデメリットがあります。

 

なので、Rubyを通してある程度プログラミングの基礎を理解し、転職を成功させてひと段落したら、その後はJavaをガッツリとやりこむことをお勧めします。

そうすると自分がいかにプログラミングの表面的な部分しか知らなかったかを思い知らされます笑

 

いくつか簡単な機能を実装し、Webアプリケーションをリリース出来るようになったら、次はぜひJavaを学んでみてください。

中級者レベルになったら、RubyとJavaを同時並行で勉強するのも個人的にはオススメです♪

いい気分転換になもなりますよ!

 

結局どっちを学んだ方が良い?

f:id:yoshitokamizato:20180311201847j:plain

 

JavaとRuby、結局どっちを学んだ方が良いの?という方は割と多いかと思います。

「選ぶべき言語は人それぞれ」と言ってしまったらそれまでなので、僕なりの意見を書いてみようかと!

簡単に分けるとこんな感じです。

 

  1. 普段からパソコンを触り慣れてる
  2. コマンドプロンプトやターミナルなどのCUIを触っても混乱しない
  3. Javaの基礎文法(if,while,for等)をスムーズに理解できる
  4. クラス、フィールド、コンストラクタ、メソッド等を理解できる

 

上記に当てはまる人 => Java

上記に当てはまらない人 => Ruby

 

こういう感じでざっくりと分けてみました。

プログラミングが難しく感じる人は、最初はRubyから学ぶことをお勧めします!

 

思考の癖やこれまでの学習環境によってプログラミングには向き不向きがありますが、やればやるほどできるようになるものでもあります。

なので、たとえ最初はうまくいかなかったとしても諦めずチャレンジしてみてください♪

 

ちなみに、文系理系は全く関係ないです!

その人自身が論理的に物事を考えられるかどうかが重要だというだけ。

 

普段の生活から「なんとなく」で判断・行動をしてしまっている人は、自身の行動1つ1つの意味を人に明確に説明できるよう意識してみてください。(実際に説明する必要はありません笑)

それだけでだいぶ論理的思考力が身につきますよ♪

 

注意!!プログラミングで手を広げすぎるのは禁物

f:id:yoshitokamizato:20180311150839j:plain

学習意欲があるのは良いことですが、全ての言語が中途半端になってしまっては意味がありません。

さすがに同時並行で4つも5つも言語を学ぶと成長はかなり遅れてしまいます。

HTML/CSS、JavaScript、Ruby、Java、PHP、Pythonなどを広く浅く知ってる人より、特定の言語(特にJava)を深く知っている人の方が現場では断然重宝されます。

 

Webアプリケーション開発の中でも裏側の処理に興味があるのであれば、HTML+Java(もしくはRuby)をまずは力を入れて学んでみましょう♪

 

無駄な寄り道は禁物です!

最短で結果を出したいのであれば特に!

 

まとめ

f:id:yoshitokamizato:20180311150818j:plain

1ヶ月Javaを学んで感じたのは、「やっぱりプログラミングは楽しい!」ということ。

 

今は1日中プログラミングに触れることができて、毎日ワクワクしながら出勤しています♪

「本当にこれが仕事でいいの!?」というレベル。

 

プログラミングスクールの講師をしているということもあり、教材は見放題だし色んな言語の生徒さんから質問が来るしで、本当に最高の環境で学べています。

 

もっともっと大きな価値を提供できる講師になるために、さらに自分のスキルを磨いていきたいですね♪

というわけで、今はJavaを中心に色んな言語の勉強をしています。

 

「手の広げ過ぎは禁物!!」と言いつつ、僕は講師なので手を広げまくってます笑

 

神里が現在勉強中の言語一覧

  1. Ruby
  2. Java
  3. VB
  4. PHP
  5. C
  6. SQL

 

 

というわけで、1ヶ月ブログサボってたのでこれからまた更新頑張ります!!!

 

マイペースで申し訳ないのですが、引き続き宜しくお願いいたします♪

もっと色々両立できる人間になりたいなー。

生徒さんも20名近くにまで増えてきたので、情報発信とプログラミング、共に頑張ってまいります!