DIVE INTO CODE

2019年04月27日

Ruby on Railsを勉強する前に押さえておきたい4つの基礎知識

Aws4 request&x amz signedheaders=host&x amz signature=2d66eba90ff47353e5ea65d04fa64ccb1dae673b90cc0f6fdb7ea957cf88520d

こちらの記事では、Ruby on Railsを勉強する前に押さえておきたい4つの基礎知識 についてお話します。
Ruby on Railsは、未経験者でもかんたんにWebアプリケーションを作成できるように作られているフレームワークですが、そのRuby on Railsを勉強する前に押さえておきたい基礎知識とは、いったい何でしょうか。そして、なぜそれらを押さえておくと良いのかの理由 についても解説します。

【こんな方におすすめ】
・これからRuby on Railsを学びたい方
・Ruby on Railsの理解を深めたい方
・プログラミングスクールを検討している方

【目次】
1. なぜRuby on Rails学習の前に基礎が必要なのか
2. Ruby on Railsを勉強する前に押さえておきたい4つの基礎知識とは何か
3.4つの基礎知識はそれぞれ独立した成り立ちでできている
・基礎知識①:Webブラウザにページが表示される仕組み
・基礎知識②: HTTPリクエストからレスポンスまでの流れ
・基礎知識③:Rubyのプログラムの書き方
・基礎知識④:データベース管理システム
4. 4つの基礎知識をどこまで理解していれば良いのか
5. まとめ

■話し手
DIVE INTO CODE 代表 野呂 浩良
■聞き手
StartGate 永田 拓也

なぜRuby on Rails学習の前に基礎が必要なのか

必要なものは4つあります。この4つを押さえてからじゃないと、しんどい と思いますね。

いきなりRailsを勉強すると…ということですか?

ちょっと手で触って、動かして、コピペして「できたー!」という感動は味わっても良いんですけど、その仕組みまで理解するとなると、しんどい。いきなりRailsから学ぶと、詰みますね。

それはなんでですか?

基礎がないと、いま何の話をやっていて、どこのことを言っているのかが、さっぱり分からなくなっちゃうんですよ。それで、それぞれの要素について1つ1つ場当たり的に調べていくと、それぞれ4つが重たくて深いものですから、その深さにはまって途中までしかいけないまま、また次のことが気になっていって、どれも中途半端になるんです。
中途半端になりやすいので、最初にRailsからいくと詰むことが多いです。

なるほど…。

根性があれば、やっても良いんですけどね。自分が根性がないと思ったら、それはやめた方が良いです。

なるほど、じゃあぜひその4つを教えてください!

Ruby on Railsを勉強する前に押さえておきたい4つの基礎知識とは何か

1つ目が、Webブラウザにページが表示される仕組み
Webブラウザというのは、WindowsとかだとEdgeとか。昔だとInternet Explorerとか、あるじゃないですか。FirefoxとかChromeとか、それのことです。それに、ページが表示されると思うんですけど、どうやってページが表示されるのかの仕組み。これが1つ目です。

はい。

2つ目が、HTTPリクエストからレスポンスまでの流れ。これは何かと言うと、インターネットにアクセスすると通信がやりとりしているはずなんです。Wi-Fiに繋いで、ネットのページを見て、Google検索するとかね。

はい…。

「このページを表示したい」と思ってリンクをポチッと押して、そのページが返ってくる、という通信の仕組みみたいなものをイメージできる必要があります。これは単にWebブラウザにページを表示するっていう、コンピューターの中のファイルをクリックしてページを見たりするのとはちょっと違うんですよ。

うーん。

もう1段階、別のコンピューターに対して通信している というイメージです。

ああ!

それをちょっと理解する必要がある、それが2つ目です。

それが理解できたら、次は何なんでしょう?

3つ目が、Rubyのプログラムの書き方 。Ruby自体が書けると言う必要があるんですよね。

そして最後は?

最後の4つ目は、データベース管理システム です。これを使うことで、データを保存したり、削除したりとか、そういうことができるようになる。
この4つです。これらを押さえているといいですね。

4つの基礎はそれぞれ独立した成り立ちでできている

こういうのって、一緒に勉強できるものというよりは、そもそも勉強としてはバラバラなものなんですか?

そうですね、これはまず 背景から言うと、バラバラにできてきたもの なんです。
フレームワークの話とか、Rubyの歴史とかでお話したかもしれないですけど、Rubyってもともとはコンピューターの中だけで使うものとして生まれてきています。インターネットという仕組みは、Webブラウザというものを作って、そしてコンピューター上できれいにページを作るためにHTMLやCSSができました、と、そこから生まれているんです。
そして、インターネットの通信に対して、ネットワークを通じて別のコンピューターとやりとりします。HTTP(Hypertext Transfer Protocol)という通信方式があって、リクエストとレスポンスという仕組みがネットワークとしてあります。
データベース管理システムというのは、CSVファイルとかテキストファイルとかではありません。なくなってしまっては困るので、何人も同時にアクセスできるように、そういう専用のシステムとして進化している。

へえ。

それぞれが単体で動くし、単体で進化してきた ということです。

なるほど。

かつ、それらが進化してくると、連動するようになって、仕組みをより良くもっと便利にしていこうという流れでできてきているので、それぞれの要素はもともと別々なんです。

ああ〜。いきなりRailsを勉強しちゃうと、そこが抜けて…。

そう、 それを全部知っているよねという前提で全部説明されてしまう ので。

そういうことなんですね。

初めての人がRailsから始めようとすると、まずぶちあたるのはこれです。だからみなさんは 体系的に学びたいと言って、スクールを受講したり、有料のサービスとかを使ったり するんですよ。

なるほど。

だから、この4つの基礎知識はマストです。

基礎知識①:Webブラウザにページが表示される仕組み

もうちょっと具体的に言うと、1つ目のWebブラウザにページが表示される仕組みって言うのは、 HTMLとCSSですね。これはもうやった方がいい。自分の端末の中でHTMLファイルを作って、CSSファイルを作って、「あ、画面が表示された」ってやった方がいい。

僕もやったことがあります。

もしできればなお良いのは、それに JavaScriptというものを使って、ページに動きをつけたり とかね。ページTOPに戻るとか、ボタンを押したらふわっとでてきたりとか、そういうものができたら素晴らしいですね。だからHTMLとかCSSとかを学ぶ方が多いんです。

基礎なんですね。

基礎知識②:HTTPリクエストからレスポンスまで

2つ目、HTTPリクエストからレスポンス。ちょっと難しさを感じるかもしれないですけど、 インターネットに繋いで通信するというのはどういうことか という点を、練習する必要があると思うんですよね。これは自分の端末だけでもできるんですよ。
専用のそういう通信を受け取るHTTPサーバー、ウェブサーバーというものを自分の端末に入れて、自分の端末から自分の端末に対して送受信することができるんです。

通信が届いているよ、届いていないよ、みたいなものも見られると。

そうですね。
自分の端末にファイルを置いておいて、別途、黒い画面上でサーバーを立ち上げて、それに対して自分の端末や自分のWebブラウザからポチっとアクセスする。そうすると自分の端末に対して「おーい」「はーい」みたいに通信してくれる。そういう 仕組みをイメージする必要がある んですよね。
別にそれはRubyとかやらなくても、そういったウェブサーバーみたいなものを使いながら、HTMLファイルやCSSファイルだけを呼び起こすのに使えたりする、そこからやっていく。

基礎知識③:Rubyのプログラムの書き方

3つ目、Rubyのプログラムの書き方。これはまさにRubyですよね。これはPythonとかPHPとかでもできると思うんですけど、今回はRubyということで。
Rubyの書き方が分からないと、そもそもどうやって動くかが分からない じゃないですか。そこで、Rubyの書き方を覚えましょう。

基礎知識④:データベース管理システムについて

4つ目のデータベース管理システムというのは、PostgreSQLとかMySQLとかOracle Databaseとか、いろいろあります。
その中でも特に、無料で学べるPostgreSQLを私たちは推奨しています けど、MySQLも無料でインストールしたりして学べますし、別にどれでも良いかなとは思いますけどね。Oracle Databaseとかは商用、ビジネス用でしか売っていないので。買うと、一番安いもので10万ぐらいします。

重いですね。

なので、Oracle Databaseはあまり選択肢じゃないですね。あと、Microsoft SQL ServerとかDB2とかこれもビジネス用でライセンス料がかかっちゃうので。基本は素人の方はMySQLかPostgreSQLか、あとMariaDBとかそういうのもあるんですけど、そこからやるということですかね。そのあたりかな。

ふーむ。

4つの基礎知識をどこまで理解していれば良いのか

Ruby on Railsを勉強するのは、この4つを完璧に理解してからの方がいいんですか?

完璧じゃなくても良いんですけど、イメージとしては何かそれで1つ作ってみて、「やった」「できた」「単純な操作できた」「こういうことか」と、それぞれ思えたら良い ですね。
基礎知識に対して「ああ、こういうことか」もなくRailsをやると、意味が分からないと思います。基礎知識に納得することなく何か作れたら、逆に何でなのか聞きたいです(笑)

あはは(笑)なぜそれでRailsができるんだ、と。なるほど。

こわいのは、 Railsはそれを分かっていなくても、ちょちょっとやったらできちゃう んですよ。

ある意味、Railsはすごい偉大ですね(笑)

それで、できた気になっちゃう人が多くいまして、そんなの現場じゃ分かってて当然でしょなんて言われて落ち込む、みたいなことが起こるんですよ。

できると思ったら…。

趣味だったらいいんですけど。そういう人は趣味プログラマーになったら良いと思います。

略称「趣味プロ」ですね。

プロのプログラマー、略称「プロプロ」は、なかなか根性をこめてしっかりと学ばないといけないですね。

なるほど、そのためにも、仕事にするならまずは4つの基礎知識をきちんと理解する。

そうです。
4つの基礎知識を理解して、その上でフレームワークを。それがいいですね。

まとめ

Ruby on Railsを始める前に押さえるべき基礎知識は、この4つ!
1.Webブラウザにページが表示される仕組み
2.HTTPリクエストからレスポンスまでの流れ
3.Rubyのプログラムの書き方
4.データベース管理システムの仕組み
4つそれぞれに対して、「ああ、こういうことか」と体感してからRuby on Railsに取り組めば、Ruby on Railsの仕組みをよく理解できます!

プログラミングスクールDIVE INTO CODEでは、実際にRuby on Railsに取り組む前に、HTMLやCSSの基礎、そしてWebサイトやデータベースの仕組み、Rubyのプログラムの書き方について学習します。それぞれについて、しっかり理解できているかを課題を通じて確認しながら、Railsへの理解を深めていきます。

DIVE INTO CODEのことをもっと知ってみませんか?