この記事を読んでいる方は、Djangoが難しいと感じているのではないかと思います。
実際、Djangoって難しいですよね。
ただ、この記事を読んでいる方は「Djangoを理解したい!」と考えている方でもあると思います。
そこで今回は、Djangoを苦労して学んできた私が、Djangoの勉強の進め方について詳しく説明していきます。
オフィシャルサイトのチュートリアルは見なくてよいです
まず初めにお伝えすると、Djangoのオフィシャルチュートリアルは見なくても構いません。むしろ、見ない方が良いです。
なぜ見なくても良いのかというと、「分かりづらいから」です。
では、なんでオフィシャルチュートリアルは分かりづらいのでしょうか?その理由を知ることが、Djangoの効率的な理解につながっていきますので、具体的な例を使いながら考えていきましょう。
これから微分を学ぶことを考える
今回は、Djangoがなぜ難しいのかを理解するため、違う例を使って考えていきます。
その例は、数学の微分です。
もう忘れてしまった方も多いかもしれませんが、、高校でみんな習っているという前提で話を進めていきましょう。
なぜ微分を例に出すのかというと、微分もDjangoと同じように抽象的で分かりづらい考え方である一方、微分は誰にとってもある程度は馴染みがあるといえるからです。
微分の公式から学んでも、意味不明なだけ
ここで、微分のことが全く分からない人がいた場合を考えてみましょう。
その人に、微分は以下の式なんだよ、と言ったとして、何人の人が理解できるでしょうか?
これで理解できる人はほとんどいないと思います。
定義を見ても、意味不明なだけ
次に、微分の定義をみてみましょう。
【別の量(独立変数)に依存して決まるある量(函数の値あるいは従属変数)の変化の感度を測るものである。】
ぱっと見るだけで、読むのもいやになるような文章ですよね(笑)
これを見ても微分の理解はできないと思います。
微分を具体例を使って考える
次に、微分を具体的な例を使って考えていきましょう。
微分を新幹線を使って考えてみます。
- 新幹線が発車して速度が上がっている時は微分の値はプラスになる。
- 加速が終わって同じ速度で走っている時は微分の値はゼロになる。
- 停車するために減速している時は微分の値はマイナスになる。
このように書くと、微分のイメージが少し湧くのではないかと思います。
その上で、微分は単位時間当たりの速度の変化の割合、と聞くと、もう少しイメージが湧くかもしれません。
結局のところ、イメージがわかないと理解できない
これが一つの大切なポイントなのですが、抽象的なことを学ぶ場合、まずは具体例から入っていかないと理解することができません。
具体例を使うことなく、いきなり定義から理解しようとしても、それで理解することは不可能なのです。
Djangoを具体例で理解するには?
では、Djangoの具体例は何なのか?という疑問が生まれますよね。
私は、Djangoを具体例で考えると、ラーメン屋とみなすことができると考えています。
そして、それに対してDjangoを使っていない場合はドーナツ屋とみなすことができると考えています。
このあたりの具体的な説明は、普通のウェブサイトと、Djangoの違いを解説【具体例で説明します】という記事で説明していますので、参考にしてみて下さい。
具体的なイメージが分かった後にやるべきこと
上記の記事を読んでいただくと、Djangoがどういったものなのかという点について何となくのイメージが湧くのではないかと思います。
ここからは、Djangoの何となくのイメージが湧いた上での勉強の進め方についてみていきましょう。
まずはサイトを作ってみる
Djangoのイメージをつかんだら、まずは実際にサイトを作ってみることが大切です。
これを微分の例で考えてみると、微分の何となくのイメージが分かったタイミングで、とりあえず問題を解いてみる。と言い換えることができます。
理屈が分からなくても、何回も問題を解いていくうちに、何となく微分の考えに馴染んできた、という経験をお持ちの方もいるかもしれません。
Djangoの場合もこれと同じで、まずはコードを書いて、そのコードを実行するということを繰り返すことが大切です。
なお、このサイトでは、初心者の方向けに、徹底的にかみ砕いてDjangoを使ったウェブサイトの作成方法についてお伝えしています。
【完全版】フレームワークからDjangoを徹底的に解説という記事をぜひ参考にしてみて下さい。
Djangoのチュートリアルがおススメできない理由
ここで、Djangoのチュートリアルがなぜおススメできないのかという点について簡単にお伝えしていきましょう。
Djangoのチュートリアルをおススメできない理由、それは、サイトをとりあえず作る上で必要ない内容があまりにも多いからです。
微分の解き方を説明しているのに、突然「最近の微分のトレンドは・・・」といった形で不要な情報が入ってくるというイメージです。
まずサイトを作ってみるという観点では、不要な情報が多すぎるのです。
サイトを作っていくと、疑問が湧いてくる
話を戻しましょう。とりあえず見よう見まねでサイトを作っていくと沢山の疑問が湧いてくると思います。
例えば、はじめにviewを作る時、return HttpResponse('')というコードを打つことが多いですが、「このHttpResponseは何だろう?」であったり、「関数の引数として(request)を取っているけど、このrequestって何だろう?」
といったものです。
このような疑問が出てきたら、一つずつgoogleなどを使って理解をしていきましょう。
そうすると、全体像をふまえた上で個別の論点について理解することができますので、効率的に理解をすることができるようになります。
この後は、抽象→具体の繰り返し
小さいサイトを作り、その中で出た疑問をつぶす。ということができたら、次にもう少し複雑なサイトを作っていきましょう。
そうすると、また新たに学ぶ内容が出てきます。そうしたら、その内容を一つずつ潰していくのです。
結局はこの繰り返しです。ですが、これを繰り返していくことによって、Djangoとは何なのかということがどんどん理解できるようになっていくでしょう。
なお、このサイトでは、①Hello worldをブラウザに表示させる、②本棚アプリを作る、③Todolistを作ると、少しずつ難易度を上げながら、効率的にDjangoを学ぶことができるような仕組みにしています。
ぜひこのサイトを使い倒して、Djangoの理解を深めていただければと思います。