【現在2000名】無料のフリーランスコミュニティ『東フリサロン』はこちらからどうぞ!

1. Rails 30DAYSトライアル【RubyとWeb技術の基礎を学ぶ】

1. Rails 30DAYSトライアル【RubyとWeb技術の基礎を学ぶ】

こんにちは、Rails エンジニアのとだこうきです。

この記事は『プログラミング未経験からサーバーサイドプログラミングの楽しさを知る』30日間の学習ステップ、その1です。

コンセプトについては以下の記事で紹介しています。

この記事では、サーバーサイド言語である Ruby と データベース言語である SQL、そして UNIX ベースのコンピュータの操作方法である Command Line について勉強していきます。これらすべてが Rails を学ぶ上では重要な要素です。三角形の面積の算術公式を理解するために、掛け算とわり算を理解しておくくらいに重要。

Progate で Ruby を学習する

Rubyの基礎を学ぶ

DAY1.『Progate Ruby コース(2章まで)』
DAY2.『Progate Ruby コース(3章まで)』
DAY3.『Progate Ruby コース(4章まで)』
DAY4.『Progate Ruby コース(5章まで)』

Progate にて Ruby を学んでいきます。Rails というのは Ruby の拡張機能のようなものです。ゆえに、Rails を理解するには Ruby を理解していなければなりません。

なので、まずは Progate にて Ruby の基礎を学んでいきましょう。

 

 

Tips1. サーバーサイド言語の魅力を知ろう!

Ruby というのは本当にいろんなことができます。たとえば、これは過去にぼくが作ったものですが、質問箱のように自動で画像に文字を入れるツールです。

※この画像から分かるように僕がふざけるためだけに作りました

ここまで出来るようになるには、いろんなことを勉強しないといけないですが、Ruby を学べばプログラミングの可能性が広がるということを理解してほしいです。

Tips2. Ruby は勉強がしやすい言語

プログラミング未経験の方がプログラミングに触れる機会として最適な言語が Ruby だと思っています。というのも Ruby は非常に勉強しやすい言語だからです。

Ruby は楽しくプログラミングできることが一つのコンセプトになっています。ゆえに人間がプログラミングを書いていてストレスを感じる機会を減らしてくれています。過去に C 言語や Java などの言語にチャレンジしてプログラミングに挫折した方が Ruby ならすんなり学習できたという例も多いです。

以下の記事で書かれているのを見るとわかりますが、まるでプログラミングではなく英語のように記述されています。Ruby は自然言語のようなプログラミング言語です。

外国人が語る:英語でクラスやメソッド等の名付け方 – Qiita

そして Ruby は日本語の学習コンテンツが揃っています。Progate もそうですが、日本語の教材が非常に多いです。

何か詰まったときに調べて自己解決しやすいのが Ruby の魅力の一つです。

Tips3. “厳密さを求めない”という考えを理解する

学習する上で気をつけてほしいのですが、厳密さを求めないようにしましょう。

プログラミング学習で重要なことは考え方を学ぶことです。暗記ではないです。なぜかというと忘れたことググればいいからです。忘れても全然いいのです。ただ、何をググればいいのか分かるようになるために考え方は学ばなければなりません。

そして、細かい文法も特に覚える必要はありません。なぜかというと本来であればテキストエディタが文法を教えてくれるからです。以下はぼくのエディターなのですが、基本的なところは入力を補完してくれますし、タイピングミスしていると教えてくれます。めっちゃ便利ですね。

以下の記事にも書いたのですが、プログラミングを学ぶ上で楽をするという考えは重要です。

「タイポが多いから気をつけないとっ!」←プログラマー失格 – note

出来る限り楽をしつつ本当に学ぶべき概念や考え方を勉強していきましょう。

Tips4. 完璧は永遠にやってこないことを理解する

プログラミングを学ぶ上で大事な考えを共有します。「完璧は永遠にやってこない」ということです。

プログラミングは複雑です。奥が深いです。とんでもなく深い。だからこそすべてを理解しようとしないことが重要です。

演奏するためにピアノの作り方を知る必要がないように、プログラミングをやるのにシステムのすべてを理解する必要はありません。すべてを理解しないと次に進めないという意識を持っていては疲れてしまいますし、学びが少なくなってしまいます。

ぼくたちの目的は Rails でアプリケーションを作ることです。ゆえにすべてを理解しようとせず「こうすればプログラミングが動くのか」という経験積みつつ「プログラミングの考え方」を学びましょう

Tips5. Class を理解する

Ruby には Class という概念があり、Rails においても非常に活用されています。

すべてを理解する必要はないのですが、Class というものがなぜあるのかを理解しておくと今後の学習の手助けになります。

Class は初心者にとっての最初の壁です。progate をやってイマイチ理解出来なかった方は以下の記事を一度読んでみましょう。

オブジェクト指向のクラスって?メソッドやインスタンスの関係を解説してみた – 侍エンジニア塾

もしそれでも理解できなかった場合は、先に進んでしまいましょう。

ぼくも Class やオブジェクト指向を全然理解出来ていませんでしたが、プログラムを書く中で理解をしていきました。実務のためにある概念なので、プログラムを書く上で身につけていくのも大事です。

ミニツクで Ruby の演習をする

Rubyの基礎を学ぶ
DAY5.『ミニツク 演習 1~3』
DAY6.『ミニツク 演習 4~6』

Ruby を一通り学ぶことができたので、次は演習をしていきましょう。

ミニツクというオンラインで Ruby の演習を公開しているサイトがあるのでこちらを利用していきます。

 

 

Tips1. Ruby の実行環境を作る

ミニツクをやるまえに Ruby を実行する環境を用意しましょう

実行できなければ動いているのかどうか確認できないですからね。

クラウドの実行環境:paiza.IO

一つの選択肢として、paiza.IO があります。

paiza.IO はオンライン上でプログラミングを実行できるサービスです。

paiza.IO を確認する

ローカルに開発環境を作る

クラウド上ではなくて、ローカルつまり自分のパソコン上で Ruby を実行できる環境を作ることが出来ます。

OS によって設定方法が違うので、自分が使っているパソコンの OS によって選択しましょう。

ゆくゆくはローカルに開発環境を作らないと行けないので、ローカル開発環境を作ることをオススメします。出来なければクラウドのほうを利用すればよいです。

Macユーザ向け:Rubyの開発環境を用意しよう! – Progate
Windows ユーザ向け:Rubyの開発環境を用意しよう!(Windows用) – Progate

Tips2. Progate を 3 度繰り返してやるならアウトプットを優先しよう

Progate の Ruby コースはよく出来ていますが、何度も何度もやるのは辞めましょう。よくやる人がいるので注意として書いておきます。

繰り返してやるのは2回で十分です。3回目はほとんど学ぶものがないです。

とはいえ、2回やったくらいでは「全然 Ruby がわかった気がしない…」という感覚があるはずです。この感覚を消すのに Progate を何周もやるのは効果的ではないです。なぜならできる気がしないのは、自分でコードを書いていないからです。

Progate ではあの手この手でユーザが学習を挫折しないように手ほどきしてくれています。しかし、プログラミングとは自分で考えて手を動かさないと書けるようになりません。上で書きましたが、完璧を求めるまえに次のステップに進むのが重要です。

アウトプットの重要性は以下の記事でも解説しています。

Tips3. 暗記はクソだ

アウトプットする前に重要な考えを共有します。今後プログラマーとして生きていくなら、一日一回は唱えてもいいくらい重要な考えです。

「暗記はクソだ」

というものです。「勉強とは暗記だ」と認識している人が多いのですが、それは間違いです。プログラミングにおいてカンニングは当たり前です。

プログラミングは暗記しなくてよいのです。調べて答えが分かれば十分です。分からないことは調べましょう。

覚えなくてはいけないことはほとんどないです。記憶を自分の頭においておく必要はないです。

きっと演習を通して思うでしょう。「あれ…全然覚えていない…やばい…」って。でも本当にやばいのは「覚えていないことをやばい」と思う考え方です。覚えていなければ調べれば良い。

覚えている方が早くコードを書けるのは間違いないですが、覚えるのには莫大な時間がかかるので最初にするべきことではないです。

Tips4. 暗記はしなくていいが考えよう

暗記はしなくていいですが、考えるようにはしましょう。

ミニツクでは解答が用意されていますが、何も考えずに答えを見て「なるほどー」と思っても意味がありません。

プログラミングとはパズルです。自分の思い通りの挙動を実現するためにプログラムを組んでいくというパズルです。覚えてどうにかするのではなくて、考えてなんとかするものです。

考えられない人間がパズルを解くことはできません。プログラミングを勉強するなら考える練習を普段からしておく必要があります。

演習はその機会です。考えて考えて苦しめばいい。その分だけスキルがアップします。暗記力じゃなくて思考力です。

思考していればプログラミングのパズルを解くには思考のパターンがあることを認識できるはずです。頭の良さは関係ないです。考えていれば身に付くものです。

Tips5. Paiza で日頃からアウトプットしましょう

時間がある方は、ミニツク以外でもアウトプットしておきましょう。

アウトプットをする機会としては paiza challenge がオススメです。レベル別でプログラミングの問題を出してくれる教材です。

わからない所が出てきたときは、ググって調べましょう。

ただ答えを調べるというより「こういうメソッドないかなー」とか「こういう書き方で問題ないのかなー」と考えながら調べると効果的です。

調べ方が分からないうちは以下のドキュメントで便利なメソッドを探しながらやるといいです。

[初心者向け] RubyやRailsでリファクタリングに使えそうなイディオムとか便利メソッドとか – Qiita
配列の便利メソッドあれこれ – Qiita

paiza チャレンジでは、標準入力から値を取得しないといけないので、以下の記事を参考にしましょう。

Rubyで標準入力から値を取得するには – Qiita

Progate で SQL を学習する

SQL の考え方を学ぶ
DAY7. 『Progate SQL コースI』
DAY8. 『Progate SQL コースII』
DAY9. 『Progate SQL コースIII』

Ruby が一通り学習できたら SQL を勉強していきましょう。SQL とはデータベース言語と呼ばれるものです。

データベース言語というのは、データベースを操作するためにある言語です。そしてデータベースとは、データを保存するための仕組みのことです。Twitter やブログなど投稿した情報は保存されてまた参照することができますよね。あれはデータベースにデータが保存されているからです。

 

 

Tips1. Web開発にはデータベースと SQL の概念を知っておくことが重要

Web アプリケーション開発においてデータベースの知識は必ず必要になります。

なぜならアプリケーションはデータを保持して利用することが非常に多いからです。YouTube だって Twitter だって皆さんが使っているアプリケーションのほとんどが何らかのデータを保存しているはずです。ユーザ情報、投稿内容などなど。すべて保存されたデータです。これらなしではアプリケーションを作るのは困難です。

SQL を学ぶのが大事なのは、Rails においてデータを保存する際に使うからです。直接的に SQL を書くことはないのですが、SQL の考えを学んでおくことは重要です。

Tips2. SQL は概念だけ知っていればとりあえず OK

Rails を使うにあたり SQL の文法を覚えておく必要はありません。

Rails では Ruby のコードによってデータベースを操作することができいるようになっているからです。なので、SQL を書くことはほぼありません。

とはいえ、Ruby のコードで操作はできるものの裏側では SQL でデータベースは操作されており、SQL が分からないと苦労する場面も多いです。なので、SQLをゴリゴリ勉強する必要はなくて、Progate でさらっと一通り勉強しておくことが当面において重要です。

Tips3. SQL の概念を復習するのに便利な動画

SQL の概念は Progate だけではなくて以下のような動画を視聴することでも理解できます。

英語で説明されているのですべての人にオススメは出来ませんが、非常に丁寧に説明されているのでオススメです。

Progate で Command Line を学習する

黒い画面を使いこなそう
DAY10. 『Progate Command Line コース』

次に Command Line について学びましょう。

Command Line とは、文字でコンピュータを操作するインターフェイスのことです。

普段コンピュータを使うとき、マウスを使って表示されたボタンをクリックして操作すると思います。これらとは違い、文字を使ってコンピュータを操作する方法を学びます。

プログラマーが良く見ている以下のような”黒い画面”での操作方法を覚えるということです。

特にここでは UNIX という OS のコンピュータの操作方法を学びます。

ヒント
Macや Linux は UNIX 系のOSのため、それらが搭載されたコンピュータでは Progate で習うコマンドを利用できます

Tips1. Command Line を学ぶ意義

なぜ Command Line を学ぶかというと、マウスやボタンなどを使ってコンピュータの操作が出来ないときがあるからです。

プログラマーは文字だけでつまりコマンドの操作だけでコンピュータを操作することを好みます。ゆえに画面における操作が用意されておらずコマンドだけで操作しないといけない場面があります。Command Line を使えなければ「何も操作ができない…」という可哀想な状況に陥るわけです。ハンドルがついていない車を運転するみたいな状況です。

また、プログラマーは技術的な記事を書くときにコマンドの操作を記述することが多いです。もし Command Line が分からないのであれば、ドキュメントを読んでも理解できないことが多いでしょう。

 

 

Tips2. なぜ Windows ではなくて UNIX なのか

基本的に OS は Windows 系 と UNIX 系と二種類あるのですが、ここでは UNIX 系のコマンドを覚えるのが重要です。なぜかというと、Web アプリケーションにおいて UNIX 系のコンピュータを利用されることが圧倒的に多いからです。

Rails は Web アプリケーションを作るツールなので、Rails を学ぶなら当然にして UNIX 系のコンピュータの操作が出来るようになっておく必要があります。

ちなみに、Webのプログラミングをやっているプログラマーが Mac を使っている人が多いのですが、これは Mac が UNIX 系の OS だからです。もし今後コンピュータを購入する予定があって Web プログラミングをやっていきたいなら Mac を買うことをオススメします。

RubyとWeb技術の基礎を学ぶ編まとめ

以上が「RubyとWeb技術の基礎を学ぶ」でした!

はじめてのプログラミングで大変だったと思いますが、たったの10日でいろんなプログラムを覚えてコンピュータを操作できるようになったのはとても素晴らしい経験です。プログラミングは人類の可能性を広げたように、プログラミングが出来るようになればいろんなことが自動化でき、人生の可能性を広げると思っています。

その一歩を踏み出せたことは本当に素晴らしいことです。

次回はより高度なプログラミングを書いていきましょう。

具体的には、Railsの基礎を学習していきます。Rails は複雑ですが、簡単にWebアプリケーションを作ることが出来るツールです。出来ることが増えれば、よりプログラミングは楽しくなっていくので一緒に少しずつステップアップしていきましょう。

次回以降のコンテンツは現在作成中です

LINE@にて限定情報公開中!

CTA-IMAGE 『転職したい!』 『理想的なライフスタイルを実現したい!』 『フリーランスになりたい!』 そういう要望を持っている方向けに、週に1度リアルなお役立ち情報を配信しています。 登録すれば、LINE@限定「最短でプログラマーになるための転職ロードマップ」も確認できます!

Webアプリケーションカテゴリの最新記事