はてなブックマーク - Unexpected Run Check

2010年11月4日木曜日

【vol2】〜DBの概念を抑えろ!〜 プログラミングのど素人が手っ取り早くWebアプリ構築技術を身につけるための5ステップ

プログラミングを手っ取り早く身につける方法第二弾です。前回はとっても反響を頂いて、僕もすごく気が引き締まりました。責任重大!今日は第二回目です。

その前に、もう一度目次。

手っ取り早くプログラミングを身につけるための5ステップ
0. 学習動機を明確にしろ!
1. データベースの概念を抑える
2. 言語の構造を抑える(オブジェクト指向的に)
3. 一先ず一冊文法の本を読みきれ!写経!
4. 師匠を見つけて、解説をしてもらいながら
一つアプリケーションを作り切れ!(師匠に大いに頼れ!)


目次にある通り、第二回は「データベース(以下DB)の概念を抑える」です。
※今回はRDBMS(オラクルとかMySQLとかぽすぐれとかがこれ)という現状一番メジャーなDBを前提とします

1. データベースの概念を抑える

何故か?完成系のイメージと型の概念を付きやすくするためです。

前回取り上げたプログラミングを挫折する典型パターンで取り上げた様に、正攻法でプログラミング言語だけから始めると(同時並行はOK)最終的な形をイメージが大変つき辛い。嫌気が差したり、気持ちが前に行ってWebアプリのチュートリアル本を読んでも知らない用語が多すぎてこちらもお手上げ。

今回のコンセプトである「手っ取り早く」身につけるためにはこの克服が不可欠。
で、何でDBを抑えると完成系のイメージに近づくのか?

超極論を言えば、ど簡単なWebアプリケーションとは要は

「DBに新規で書き込み、更新し、削除したものをいろんな見せ方をするだけのもの」

だから。もちろん要素と用途は多様ですが、超極論を言えばこれです。そしてDBとプログラミング言語の型という要素(多分ここがとっつきにくいからオブジェクト指向が理解出来ない)には密接な関係があります。

■そもそもDBって何だ?

DBという名の通りでデータの格納庫です。大抵の本には「データの格納庫」とか「データを保存するところ」とか書いてありますよね。でも、それじゃぁ何もわからないですよね笑 あまりに文字通りすぎて説明になってなかったり。

RDBMSの中身はエクセルみたいなもんだとイメージすると良いです。データベースには名前が付いていて、一意。その中身は下の画像のような感じで、テーブル構造になっていて列と行があります。

↓こんな感じ↓


簡単なイメージ作りのための簡単なまとめ
0. 基本一つのアプリで一つのデータベースを使う
1. データベースの中身は表(table)の形式になっていて、列と行がある

データの永続化

で、重要なポイントとして、プログラム言語だけではデータの保存が出来ないからデータを保存する様のファイル、もしくはDBが必要になります。(データの永続化とこれを呼ぶ) 小さなデータならばテキストファイルでちょろちょろっと保存しておけば問題なくデータを再利用出来ますが、データ量が馬鹿でかくなってくると検索するにも時間がかかっちゃうわけです。そこでファイルよりも効率良く目的のデータを探すのに作られたのがDB。セキュリティもファイルよりだいぶまし。


SQLを認知しとけ!

DBの操作に使うのがSQLという言語です。Rubyを勉強するにせよ、PHPを勉強するにせよ、Lispとかやるにせよ、SQLは使うケースがべらぼうに多いし、SQL知らないと結構舐められる(ITスタートアップの人でこれぐらい知らないと、僕は「あーそっか…」ってなります)ので必須です。やっとくと楽です。本を読んでいてなんぞこれ?というのもだいぶ減ります(結構SQLの説明が端折られてる入門書は多いです)

プログラミングって深堀ればいろいろですけど、入門者・ド素人向けにわかりやすく言うならば冒頭でも書いたとおり、Webの場合は多くは永続化したデータをSQLで読み込んで、プログラムから一定の操作を加えて、それをユーザーに見せるなり、再度永続化するなり(新規書込、更新)、削除したりを繰り返してるだけなのですね。

だからこのポイントと、DBの構造を知っておくと大いに先々のイメージの一助になります。

どうやって勉強するのか?

簡単です。

適当にドリルみたいな本を買ってきて、一週間ぐらい使って理解重視で通しでやればOK。復習も必要なし!やるのは一回でOKだけど理解することが本当に重要

↓こういう本↓



だってこれから何千、何万回も読むのだし、忘れたらググれば良い。暗記の必要性は無くて、頭にインデックスがあれば良い。仕組みを理解すれば勝利です。

また、抽象的にでもいいから先々のイメージをつけてゆくことが目的なので、下記2点だけは絶対に忘れてはいけないです。スムーズに次のステップに接続するには下記2点が生命線だと思ってOK。
0. プログラムでSQLを組み立ててDBと接続するんだろうなっというイメージを作りつつ勉強(想像でOK)
1. 必ずPCに実際に文字を打ちながら勉強する
全然難しくありません。楽勝です。とりあえず本を買って愚直にやることで第一歩が踏み出せる…はず!いますぐやるべし。


とまぁ、今回はDBを先に勉強しておくことのメリットを書いてゆきました。次回からいよいよ言語の勉強方法編です。おすすめ言語、どこから手をつけるか、などなど書いてゆくつもりです。