編集部員(プログラマー)JavaかRuby、プログラミング初心者が学ぶならどっち?ツイートシェアはてブLINEPocket初心者プログラミング初心者だけど、これから勉強するならどんなプログラミング言語がいいんだろう...?世の中にはたくさんのプログラミング言語がありますから、初心者にはどれから手を付けるのが良いか、迷うところだと思います。勉強するのですから、しっかり身に付けて、将来的に役に立つ言語が良いですよね。お答えしたいと思います。私は、大手企業のシステム開発部門で社内システムを開発しています。社内ユーザーに対して、ブラウザからアクセスして業務を行うためのシステムを提供しています。プログラミング言語は、Javaを3年、それからRubyを3年ほどWebアプリケーションの開発業務で使ってきた経験があります。Ruby?聞いたことはありそうだけど、どんな言語なの?筆者まずは、両者の特徴について、簡単に触れておきましょう。Javaの特徴Javaは、1995年に登場した、サン・マイクロシステムズ(現在はオラクルに吸収合併)によって開発されたプログラミング言語です。作成したプログラムを実行するには、「コンパイル」という「プログラミング言語をコンピュータが理解できる形に翻訳する」作業が必要です。コンパイルを必要とするC言語などの言語では、コンパイルを行ったプログラムは特定のオペレーティングシステムやCPUでしか動作しませんでした。Javaの場合は、Javaで書かれたプログラムを実行するための環境があれば、オペレーティングシステムやCPUを問わず、あらゆる環境で動作するという点が大きな特徴です。そのため、Javaは、基幹業務システムから、Androidスマートフォンのアプリまで、幅広く利用されています。Rubyの特徴Rubyは、Javaと同じく1995年に登場した、まつもとゆきひろ氏によって開発されたスクリプト言語です。スクリプト言語で書かれたプログラムは、Javaのようにコンパイルという作業を行わなくても、書いたらすぐに動かすことができます。Rails」という、アプリケーションを簡単に作成するための枠組みが登場してから、Webアプリケーションの開発を中心に急速に利用されるようになりました。Railsのような枠組みは、「フレームワーク(Famework)」と呼ばれています。参考までに、こちらのサイトに説明があります。初心者JavaとRubyって、いろいろ違いがあるようですね?筆者ところが、全く違うプログラミング言語というわけではないんです。今度は、両者の共通点について見ていきましょう。JavaとRubyは、いずれも「オブジェクト指向」プログラミング言語です。Programming)という言葉は聞いたことはあるかもしれません。オブジェクト指向プログラミングとは、あえて一言で言うならばプログラムの機能を「オブジェクト」という「モノ」に見立てて、機能ごとにグループ化してプログラムを組み立てていくというプログラミングの考え方です。JavaもRubyも、この考え方に基づいて、言語の仕様が設計されています。Rails」というアプリケーションを簡単に作るための「フレームワーク」がありますが、JavaにもWebアプリケーションを開発するいろいろなフレームワークがあります。JavaでもRubyと同じようにWebアプリケーションを作ることは可能です。結論から言えば...これから、プログラミングをしっかり学んでいきたいのであれば...私なら、Javaをオススメします。Javaをオススメする3つの理由では、私がJavaをオススメする3つの理由について、順番に見ていきましょう。プログラミングを効率的に学べるJavaは、プログラミングする上で従わなければならないルールが厳しいです。ルールから外れたプログラムを書くと、コンパイル作業の時に「エラー」として厳しく突き返されます。Rubyは、Javaに比べるとルールの幅が広く、さまざまなプログラムの書き方が許されます。言うなら、Javaは算数のように正解がひとつしかないのに対して、Rubyは英語のように表現方法が異なっていても文法や内容が正しければ正解となるようなものです。Rubyのように、正解が複数あるプログラミング言語では、エラー(不正解)で突き返される率が低くなりますから初心者なんだ、プログラミングって簡単じゃん!と、最初のうちは思うかもしれません。プログラミングを勉強するにつれて、インターネットや参考書などで他人の書いたプログラムを参考にすることもあるでしょう。そのプログラムが、自分が覚えているものとは違ったルールで書かれていたら、どうでしょうか?初心者えー!こんな書き方、知らないよ・・・となると思います。結局は、さまざまなルールを覚えなければならない羽目になります。はじめから正解がひとつの方が、結果的に効率的に学習できると思います。筆者プログラム開発の現場では、複数のプログラマーでチームを組んでプログラミングするケースが大半です。私が、Rubyでのプログラミングを行ったときに、他のメンバーのプログラムを見て「何だ、この書き方は?」と感じた経験があります。書き方が統一されていないと、チームでの開発効率が下がるため、現場では書き方を統一するか、他の書き方を学ぶかといった対応が必要でした。「オブジェクト指向」がしっかり身につくJavaは、オブジェクト指向の考え方が身についていないと、プログラミングすることができません。一方で、Rubyはオブジェクト指向を知らなくても、なんとなくプログラムを書くことはできます。初心者オブジェクト指向?なんだかよくわからないから、知らなくてもプログラミングできるRubyの方がいいな...最初のうちは、そうかもしれません。他の人がオブジェクト指向の考え方にしたがって書いたプログラムを見たりすると、壁にぶち当たることになります。アプリケーションを開発するためのフレームワークは、ほぼすべてがオブジェクト指向で設計され、オブジェクト指向プログラミングをすることが求められます。プログラミングの入門書にある、メッセージを表示させたり、数値を計算結果を表示させたりといった知識だけでは、アプリケーションは作れません。何かしらのフレームワークを使ってアプリケーションを作るには、オブジェクト指向の考え方は基礎知識として知っておく必要があります。必要になるのであれば、学習の初期段階でオブジェクト指向プログラミングができるようになっている方が、長い目で見ると得です。Railsといったフレームワークを実務で使ってきました。アプリケーションの開発現場では、ほとんどの開発案件で何らかのフレームワークが使われています。ゼロからプログラムを書いていくより、すでに出来上がっている枠組みを利用するほうが開発効率も良く、品質の高い開発ができるからです。オブジェクト指向プログラミングのスキルは実務では必須と考えてよいでしょう。プログラマーとして重宝されるJavaを学ぶことで、オブジェクト指向の考え方も身につくということは、前に述べたとおりです。オブジェクト指向の概念を知っているプログラマーは、フレームワークを利用してプログラミングするための基礎的な知識があるものとして、現場では重宝されます。Javaでオブジェクト指向を学んでおけば、C言語など他のオブジェクト指向プログラミング言語ではない言語でもプログラムを作れます。それも、オブジェクト指向の概念を活かせば、汎用的で再利用が可能な「使えるプログラム」を作れるようになります。Rubyで簡単なプログラムを書けるようになったからといって、現場で使えるとは限りません。「プログラミングの実務を行うにあたってより有利なのが、オブジェクト指向を理解しているJavaプログラマーです。私はJavaを実務で使えるレベルまで学習するのに、約3年間かかりました。その後、Rubyを学習しましたが、約1年で実務で使えるレベルまでなりました。このように、Javaプログラマーが他の言語を覚えるのは比較的容易と思われます。Javaを学ぶ上での2つの注意点Javaを学ぶ上で、注意すべき点もあります。どんなことに注意すべきか、順を追って見ていきましょう。学習のハードルが高いJavaは、マスターすれば非常に有益なプログラミング言語です。Javaは、オブジェクト指向など学ばなければならない知識が多く、初心者にはハードルの高いプログラミング言語です。そのため、途中で学習に挫折してしまう人も多いです。Rubyの方が初心者にはとっつきやすく、人気があるかもしれません。スクリプト言語ですので、コンパイルせずともプログラムをサクサク動かせますし、柔軟にプログラムが書けることから、初心者向けのプログラミング言語と言えるかもしれません。Railsを使えるようになるには、オブジェクト指向をはじめフレームワークのプログラミングルールなど、さまざまなことを学ばなければなりません。初心者オブジェクト指向がわからない。しよう...という人は、たくさんいると思います。Javaをあきらめないで、頑張って学習してみることをおすすめします。頑張ってマスターしたことは、きっとあなたの財産になります。就職・転職先で使われる言語を覚えなければならない就職・転職先で、必ずしも学習したプログラミング言語が使われるとは限りません。RailsでWebサービスを提供する。言われたら、それに従わざるを得ません。Railsも覚えることになります。そんな場合に、要求される言語やフレームワークに柔軟に対応できるプログラマーが重宝されるのは確実です。今後も、いろいろな新しい技術や環境、プログラミング言語やフレームワークが誕生し、世に出てくると予想されます。そのためにも、基本をしっかり学んでおいて、応用力を発揮できるようにしておくのは重要です。筆者プログラマーは、日々勉強が必要です。まとめ以上の理由から、これから学ぶのであれば、Javaからスタートするのが良いでしょう。私はJavaをオススメしましたが、今はRubyやPHP、Pythonといったスクリプト言語が台頭していますので、それらのプログラミング言語ができるプログラマーもニーズがあります。Javaを覚えたら、可能な範囲で他のプラグラミング言語も勉強してみるのもオススメです。RubyもJavaも、どちらかといえばWebアプリケーションのサーバー側で動作する、バックエンドのプログラミング言語です。HTMLやCSS、JavaScriptといった、ブラウザ側で動作するフロントエンドのプログラミング言語もセットで覚えておけば、間違いありません。すればきっと、現場で使える実践的なプログラマーになれるでしょう。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。frameworkとは?基礎知識をしっかり解説!RECOMMENDこちらの記事も人気です。frameworkとは?基礎知識を...Java2019.7.9Java有償化とは?無償で利用できない?いや、できます。編集部員(プログラマー)現役プログラマーの編集部員です。このブログは複数の編集部員によって運営されています。おすすめの勉強法は?未経験からプログラマーに就職2020.2.18『今』プログラミング学習をおすすめする3つの理由JavaScript2020.2.11【初心者向け】TypeScriptって何?JavaScriptと何が違うの?職業訓練校2020.2.9未経験者が職業訓練でJAVAを学ぶプロフィールごま塩シンジ(編集長)30代後半、未経験からweb系企業に就職しました。底辺高校→Fランク大学→営業→PHPエンジニア→フリーランス※当サイトはリンクフリーです※当サイトは複数のプログラマーによって運営されています※広告募集中です。ご希望の方はお問い合わせからご連絡ください。Java有償化とは?無償で利用できない?いや、できます。【初心者向け】TypeScriptって何?JavaScriptと何が違うの?未経験者が職業訓練でJAVAを学ぶ最近のコメント初心者におすすめのプログラミング言語は何か。初心者におすすめのプログラミング言語は何か。初心者におすすめのプログラミング言語は何か。