お役立ち情報

【決定版!】Rubyでできることとは?

Rubyでできることは?

Rubyの魅力はいろいろありますが、大まかに書くと汎用性の高さやコードのシンプルさでしょう。最近のWeb系言語全般汎用性が高いのでRubyだけが汎用的というわけではないのですが、Rubyはサーバーサイドでもフロントエンドでも使用される頻度の多い言語です。

他の言語でも同じことはできるのですが、Rubyが幅広く使われているのは他の言語に比べてどこのポジションで使用しても利便性が高いからです。またコードのシンプルさも特筆すべき点でしょう。

プログラミングは意外とかっこやピリオドやセミコロンなどなど細かいルールでケアレスミスをしてバグにつながることが多いです。今の時代入力補完や自動修正があるのでコーディングミスは減っていますが、それでもケアレスミスがバグにつながることは多々あります。

そこでRubyは上記のような細かいルールを省略できる仕組みになっており、その結果ロジックと関係ない部分でつまずくことが少ないです。これもRubyの大きな魅力でしょう。このような魅力のあるRubyですが、このページではより詳細にRubyに何ができるのかといったことを解説していきます。

これだけRubyが注目されているのは上記の魅力に加え、その結果できることが多いからです。

プログラミング初心者をプログラミングの世界に導くことができる

10年ほど前だと初めてのプログラミング言語はだいたいJavaが一般的でしたが、年々Javaよりも簡易的なオブジェクト指向言語を始めてのプログラミング言語として選択するケースが増えています。

そして、Javaの代わりの初めてのプログラミング言語として真っ先に挙げられるのはRubyでしょう。HTML、CSS、JavaScriptが先だという意見もあるかもしれませんが、それはその通りです。

ここでは初めてのオブジェクト指向言語という前提なので、上記のような表面の実装向きの言語は除外して考えています。またPythonも比較的初めてのプログラミング言語として選ばれるケースはあるかと思いますが、機械学習のためのAnacondaから始めるパターンが増えており、結果的にやや難易度が上がります。

数学や統計学に抵抗のない方だとPythonは初めての言語として適切なのですが、そうでない場合プログラミングとは直接関係のない部分で挫折してしまう可能性があります。そういったことを考えると汎用性が高くシンプルなRubyは魅力的で、実際に独学者や企業の研修や大学の講義でRubyはよく選ばれています。

そういう意味で、良く言えばRubyは「多くの人をプログラミングの世界に導いています」。最初のオブジェクト指向言語でつまずくとプログラミングが嫌になって辞めてしまう可能性も高くなりますが、Rubyのおかげでそういった人が減っていると考えられるのです。

またJavaやC言語で挫折してオブジェクト指向の意味もわからなかったけど、Rubyを勉強したらわかった、といった話も割と耳にします。システムの実装ではないのでRubyにできることというテーマとは微妙にずれるのかもしれませんが、多くの人をプログラミングの世界に招き入れている点ではRubyの功績は大きく、賞賛すべき素晴らしいものでしょう。

また初心者にわかりやすいということはプログラミング経験豊富なプログラマーにとってもわかりやすいということなので、その点だけでもメリットです。そして上で説明した通り汎用性が高くつぶしが効きやすいので、他にキラー言語的なプログラミング言語が存在しない領域ではかなり有力な言語です。

ちなみに、キラー言語が存在する領域とはたとえば人工知能のPython、iOSのSwiftなどのことを指しています。

Rubyが使われているシステム領域

次に、より具体的にどのようなシステム領域でRubyが使用されているのかを紹介します。上述の通りRubyの活躍は幅広いのですが、そのなかでも特にどこでよく使われるのか、逆にどういったところではあまり使われないのか、ということを説明します。

Webアプリケーション

Rubyが一番使われているシステムは、Webアプリケーションです。これについては他の言語もだいたい同じなので、Rubyだけが特殊なわけではありません。Rubyをメインに使用しているシステムも数多く、有名どころで言えば「CookPad」「Wantedly」「食べログ」などはRubyメインに実装されています。

Rubyで実装する場合、Webアプリケーションだけでなく他のシステムでもRuby on Railsを使用するケースが多いです。他のプログラミング言語はいろいろなフレームワークがあって用途に応じて選択するかと思いますが、Rubyの場合Ruby on Rails一択と言っても過言ではないでしょう。

個人開発で軽量さを求める場合他にもフレームワークはあるのですが、会社やプロジェクトや受託開発のことを考えるとRuby on Rails一択になるかと思います。実際上で挙げたような有名アプリケーションはすべてRuby on Railsで作られています。

単純にRuby on Railsは万能で、また勉強しておけば働き方を問わず仕事が増えます。基本的にRubyの経験があると言えばRuby on Railsの経験もあると見なされるので、何か特別な理由がない限りRubyで何か開発するならRuby on Railsを選んでおくと良いです。

スマホアプリ(サーバーサイド)

RubyはiOSもAndroidもカバーしており、実際Rubyも関連しているスマホアプリは多いです。ただしスマホアプリについてはフロントエンドをRubyで作るケースは少なく、APIと呼ばれるサーバーサイドをRubyで実装することが多いです。

APIの概念はわかりにくい用語の多いIT業界のなかでも一際わかりにくく、長年プログラマーとして開発経験を積んでいる人でもいまいちわからない、ということが多いかと思います。

なので完璧に理解するのは難しいのですが、APIの役割としては「ソフトウェアの機能の共有」です。APIはApplication Programming Interfaceの略で、ソフトウェアの一部をネット上に公開して共有するものになります。

ただしオープンソースのようにソースコードを公開するわけではなく、あくまでも機能を共有するだけで、なおかつ機能すべてを共有するわけではありません。ソースコードも見られずになおかつすべての機能を公開するわけではないため使い方がわからないという現象が起こります。

そこで、APIは「機能と仕様書のセット」で公開されていることが多いです。絶対に仕様書が付いているわけではありませんが、付いている場合が多いです。APIが進むことで、今後もスマホアプリ開発が効率化され、なおかつAPIを活用することでまだ市場にない部分に集中して開発を進めることが可能です。

APIはスマホシステム全般の進歩に貢献していると言えます。またRuby on RailsではAPIを実装するためのGemという機能が付いており、これを活用することでAPIを利用するだけでなく提供者になることができます。

スクレイピング

スクレイピングとは、webの情報を抜き取って、加工して使用する技術です。Rubyで抽出した情報がHTMLで表示されるので、これを加工して扱いやすい情報に変換します。他の言語に比べるとRubyはこのスクレイピング用のライブラリが豊富なので、スクレイピングと言えばRubyという認識になっています。

スマホアプリ(フロントエンド)

上でスマホアプリのサーバーサイドのAPIをRubyで実装することが多いと説明しましたが、フロントエンドをRubyで作っているスマホアプリも存在します。数としては少数派なのですが、RubyMotionやRubotといったスマホアプリのフロントエンド開発に便利なRubyライブラリはいくつか存在します。

機械学習

機械学習と言えばPythonですが、Rubyが使われることもあります。とは言ってもPythonが圧倒的なシェアを誇っていることは事実なので、Rubyはあくまでも補足的な存在です。

Rubyのスキルを身に付けるとできること

Rubyというプログラミング言語にできることを解説してきましたが、次にRubyを身に付けた人ができることを解説します。

転職ができる

現在エンジニアの方はRubyのスキルを身に付けることで転職を含めた視野が広がりますが、それはおそらく十分把握されていることでしょう。どちらかというと、プログラミング初心者の方が転職については気になっているかもしれません。

現在まったく別の職種だが、そこからプログラミングスキルを身に付けて転職したいと考えている方は多いと思います。そして、実際にそのような形で転職している人は数多いです。

どのくらいの期間勉強して転職しているかは人によりますが、主な要因としては現在の仕事の忙しさや、どのくらい集中的に学習に取り組めるかでしょう。プログラミングに割ける時間の多い方であれば、3ヵ月程度で基本的なスキルを身に付けて転職に成功されている方も多いです。

またフルタイムで働きながらであっても、半年~1年程度あればある程度プロジェクトでも役立つスキルを身に付けて転職に成功することは十分可能です。今の時代書籍でもWebサイトでも動画でもスクールでもプログラミングに関する情報は充実しているので、本人のやる気さえあれば問題なく転職に必要なスキルを身に付けることが可能なのです。

具体的にどのようなスキルを身に付ければ良いのかは転職サイト等で調べて逆算するのがおすすめです。たとえばRubyで考えているのであれば、Rubyエンジニアを募集している企業がどのくらいあるのか、またその他の言語の市場はどうなっているのか、といったことをリサーチします。

これらのリサーチはネットで簡単にできるので、現在IT業界に在籍しているかどうかは関係ありません。逆に言えば、IT業界に在籍していても市場をあまり見ておらず、ニーズの高い技術や転職市場に疎いというケースはまったく珍しくはありません。

むしろそういったケースの方が多いかもしれません。そして実際にリサーチしてみればわかるのですが、Rubyの求人は年々増えており、今後も需要は伸びるでしょう。幅広いレベルのエンジニアに需要があるため、たとえば独学で3ヵ月Rubyを勉強して簡単なシステムを一人で作った程度のレベルであっても、入社できる企業は見つかります。

個人で仕事を受託できる

プログラミングの仕事は特にインターネット上のサービスを介しての受発注が活発で、エンジニアの副業であったり、学生やまったく関係ない職種の方まで幅広く受注しています。受注方法も簡単で、ネット上にある仕事を受発注できるサービスに登録して受託するだけです。

最初は自分から営業する必要がありますが、営業と言ってもサイト上からメッセージを送るだけなので難しくありません。「スキルが高くないと受注できないのでは?」と思われるかもしれませんが、単価が高く難しい案件から単価は低いが簡単といった案件まで幅広く用意されているため、まずは単価が低くて簡単な案件から勉強も兼ねて受注することが可能です。

実務を通してお金をもらいながら学べるので、学生、会社員、フリーランス、主婦、などいろいろな立場の方におすすめできる方法と言えるでしょう。またこういった受発注のサービスに登録する方は案外初心者から始めた方も多いため、自分のスキルを気にする必要はあまりありません。

むしろスキルが上がると個人開発や企業からの直接契約に移行する人が多いため、練習と考えて受注してみることをおすすめします。

まとめ

以上、RubyにできることやRubyのスキルを身に付けることでできることについて解説してきました。Rubyは幅広いシステム開発に対応しており、その結果Rubyエンジニアへのニーズも高まっています。

Rubyを使って会社員としてプロジェクトに参入できることはもちろん、個人で仕事を受注するにも便利な言語です。システム的にも働き方的にもニーズが幅広いので、身に付けるメリットの大きいプログラミング言語です。

Ruby関連記事
1, Rubyフリーランスの仕事や単価、ruby on railsの在宅案件まで
2, Rubyとは?学習方法や将来性、perlやphp、Pythonの比較はどう?
3, Ruby on RailsでMySQLを使用する際の接続手順
4, あるiOSアプリのエンジニアがRuby on Railsのプロジェクトに加わった話
5, 小学生でも数時間でアプリを作れたRuby on railsの入門書3選
6, (この記事)【決定版!】Rubyでできることとは?
7, Ruby開発の新卒採用している会社まとめ

キャリアカウンセリングのプロとして
あなたに合った案件をご案内します。

まずはお気軽にお問い合わせください!

イメージ