ProgateでSQLの基本を非エンジニア経営者が10時間で学んだ方法
こんにちは。
参拝者と神社お寺でつくるお参りの記録共有サイト「ホトカミ」を運営する株式会社DO THE SAMURAI代表取締役の吉田 亮です。
現在、仲間を募集しています。
【採用情報】日本文化や神社お寺好きを募集! (大学生インターン、デザイナー、エンジニア、お坊さん神職さん、アルバイト、寄稿)
さて、本題。
ホトカミには、日本全国の2万5000以上のお参りの記録と、12万枚以上の画像の投稿があり、14万5000の寺社の情報が掲載されています。
以前から、これらのデータをもっと分析することができたら、ホトカミの成長にも繋がるし、何よりも自分が楽しめるんじゃないかと思いつつ、なかなか手をつけられずにいました。
そこで今回、令和になったテンションの高まりと共に、SQLの基本を習得し、楽しく数値を分析できるようになった方法を紹介します。
SQLの勉強したいけど、なかなか手が付けられない非エンジニアの方の参考になれば幸いです。
10時間でSQLの基本を習得した(自己満足)方法を伝授します!
- 【結論】Progateを3周+自力でSQL書く
- 学習方法の模索
- 【1時間半】Progateのスライドを1周
- 【1時間】スライド2周目でテーブル結合を理解
- 【3時間】Progateを手を動かしてコード書く
- 【3時間】自らへの課題に取り組む
- 【まとめ】Progateさんのおかげで、めちゃ捗った
- 【オマケ】行きたいリストに保存されている神社お寺ランキング
【結論】Progateを3周+自力でSQL書く
まずは、なんのためにSQLを勉強するのか?言語化しました。
目的
「なるべく短い勉強時間で、SQLへの抵抗感をなくし、自力で書けるようになることで、今後のホトカミのデータ分析への足がかりとする。」
結果として、以下のような流れで10時間でSQLの基本をマスターしました。
1、学習方法の模索(1時間半)
2、ProgateのSQLを3周してマスター(5時間半)
3、課題に取り組む(3時間)
合計:10時間
以下、それぞれについて詳しく紹介します。
学習方法の模索
【20分】どんなデータを分析したいのか?目標を考える
やはり、目標が具体的であるほど、やる気が出ますよね。
こんなデータを自分で眺めることができたら、嬉しいなぁという目標をはじめに10個ほど出しました。
例:
「行きたいリストに保存されている神社お寺ランキング」
「2019年4月の投稿数ランキング」
「2019年4月にすてきされたユーザーランキング」
「ユーザーさんごとのコメントしている数ランキング」
・・・
とりあえず、自分が気になるランキングを出せたら高まるだろうなぁと、深く考えずに目標を設定しました。
【10分】自分の環境で、SQL書けるように準備
自分のパソコンで、安心してホトカミのデータを分析できるように、最新のデータベースのバックアップ(個人情報は消したもの)をエンジニアに用意してもらい、SQLを書けるよう準備しました。
※たまにテストなどするために、開発環境がすでに整っていたので、ラクでした。
【30分】SQLの勉強方法をググる
最短時間で目標を達成するためには、先人から学んだ方が効率が良いです。
スムーズに学習できる方法を見つけるために、まずはググりました。
ちなみに僕は、全く新しいことを勉強するとき、「目標設定」と「勉強方法」を念入りに準備します。
「目標設定」が無いと、勉強を続けることができません。
また、初めから難しいものにチャレンジし苦手意識を持ってしまうと、そもそもその分野のことが嫌いになってしまいます。
だから「勉強方法」や、「どの順番で学習するか」はとても大事にしています。
また今回は、いずれ僕以外の非エンジニアメンバーがSQLの勉強を始めるときのマニュアルも作りたかったということもあり、念入りに調べました。
ググった結果、10記事くらい読みましたが、この記事が最も参考になりました。
また他の記事で「データ分析が目的あれば、データをアップデートしたり削除する方法を勉強する必要がない」と気付かされました。
確かに、僕がSQL書いてデータベースを書き換えることは実務レベルでは無さそうです。
ググりながら、以下のような基本的なSQLを書いて、実際に結果が表示されてテンション上がっていました。とにかく書いてみるのは大事。
SELECT *
FROM 投稿テーブル
WHERE 2019年4月1日以降の投稿
【30分】本屋でSQLの入門書を探す
やはり本で学ぶのが王道かなと思いつつ、以下の「SQLの絵本」が初心者向けとの評判があったので、本屋に向かいました。
実際、中身をチラ見してみると、10時間では終わらなさそうなくらい難しそうな内容に見えました。
他の入門書も探してみたのですが、入門としては難しそうだったので、
やっぱりProgateがいいなと思い、Progateにすぐに課金しました。
【1時間半】Progateのスライドを1周
ProgateのSQLコースには、学習コース1,2,3と、道場コースがあります。
実際にコードを書いて進めていく前に、「スライド検索」からSQLのスライド探し、まずはスライドを1周眺めました。
いきなりコードを書かずに、まずはスライドを眺めたのは、理由があります。
勉強において、未知の分野の1周目というのは最も、心理的な負担が大きい工程です。
逆に、1周目さえ乗り切ることができれば、半分は学んだとも言えます。
だからまずは、1周スライドを眺めることで、SQLの基礎や、全体感を把握します。
東大受験も同じような方法で乗り越えました。
東大受験勉強するとき、初めから数学も物理も化学も問題集の解答を3周読んで、解答の方針を覚えてから、実際に手を動かして解くと、だいたい解けるし、理解できてない部分が明確になるから穴を埋めやすい。初見の問題を15分考えるよりも7分5分3分で解答3周読んだ方が時間対効果大きい。
— ホトカミ運営代表/吉田 亮@神社お寺/学生インターン募集中 (@RYO_ReaL) May 2, 2019
1周目で半分も理解できたら、十分すぎるくらいなので、読んでいても理解できなかった部分はどんどん飛ばして、読み進めましょう。
【1時間】スライド2周目でテーブル結合を理解
1周目が終わったところで、スライドの2周目に入ります。
2周目は、Progateの惜しいところは、ざっと全体を復習するのが難しいところです。
単語の羅列で自分だけのSQLカンペを作りながら、読み進めました。
2週目では、GROUP BYやテーブル結合など、1周目では理解しきれなかった部分を重点的に読みました。
理解しづらかったテーブル結合については、この記事が分かりやすかったです。
初めて、ホトカミのデータでテーブル結合できたときは、高まりました。
【3時間】Progateを手を動かしてコード書く
2周した頃には、実際にSQLを書きたくて仕方なくなっているため、実際にProgateで書いていきます。
スライドをざっと見して復習して、答えていくことを繰り返しました。
道場コースが1時間半ほどかかってしまいましたが、他はスムーズに進めることができました。なにりも、実際に自分で書けているのが嬉しかったですね。
今日は、データ分析のためにSQLの勉強した!
— ホトカミ運営代表/吉田 亮@神社お寺/学生インターン募集中 (@RYO_ReaL) May 2, 2019
①Progateに課金して、SQLのスライドを3周眺める。
②眺めながら都度、自分のサービスのデータで知りたい数値を取るためのSQL実際に書いてみる。高まる。
③Progateを1周やる。
→イマココ
④自分で課題を設定して、試行錯誤して書く。
【3時間】自らへの課題に取り組む
Progateをクリアしたあとは、ひたすらホトカミのデータベースをもとに、色んなランキングを出そうと試行錯誤しました。
いやー、考えながら進めるのはとても楽しかったですね。
これは無理かなぁと思いながら、クリアしたときのスッキリ具合がクセになりました。
なかでも、「2019年4月にすてきされたユーザーランキング(最もイイネされているユーザーは?)」は、3つのテーブルを結合して、カウントするのか、足し算するのか、と色々考えるのが楽しかったです。
【まとめ】Progateさんのおかげで、めちゃ捗った
これまで見てきたように、以下の流れで10時間でSQLの基本をマスターしました。
1、学習方法の模索(1時間半)
2、ProgateのSQLを3周してマスター(5時間半)
3、課題に取り組む(3時間)
合計:10時間
自己満足にすぎないかもしれませんが、自己満足は大事。
勉強の目的である「なるべく短い勉強時間で、SQLへの抵抗感をなくし、自力で書けるようになることで、今後のホトカミのデータ分析への足がかりとする。」は達成することができました!
Progateさん、ありがとう!!!
【オマケ】行きたいリストに保存されている神社お寺ランキング
最後に、ホトカミの行きたいリストに保存されている神社お寺ランキングを紹介します。(平成31年4月7日非公式)
1、明治神宮
1位は、初詣の参拝者数も日本一の明治神宮。
最近では、御朱印の待ち時間が9時間を越える、御朱印が転売されるなどのニュースが話題になっていました。
ちなみに明治神宮の森は、人がつくった森だとご存知でしたか?
実は、明治神宮の森は、自然の森ではないんです。
100年前、森を作ろうという国家プロジェクトが始まり、現在の豊かな森になっています。いやー、好き。
明治神宮 - 東京都原宿駅 / アクセス・連絡先の情報 [神社お寺の投稿サイト - ホトカミ]
・・・・・おまけで簡単にランキングを紹介するつもりが、ついつい語って長くなってしまうので、以下、簡単に個人的な思い出を。
2、伊勢神宮内宮(皇大神宮)
2017年の初詣に、お参りしました。
ブラタモリ(伊勢編)を見てからお参りするのオススメです。
伊勢神宮内宮(皇大神宮) - 三重県五十鈴川駅 / アクセス・連絡先の情報 [神社お寺の投稿サイト - ホトカミ]
3、出雲大社
出雲は、神話のディズニーランド。
古事記のストーリーの舞台であり、神社というアトラクションが1000年のときを超えて今も残り、その歴史や文化を語り継ぐ地元の人々というキャストが今も生きる土地です。
神話のディズニーランドを体感するためには、出雲にいく前には、必ず古事記を読んで欲しい!
(マンガでも、NHKの100分de名著でもなんでも良いです。)
また、出雲大社だけでなく、以下の馬木不動尊さんや万九千神社さんも僕が大好きでお世話になってる方達です。
・・・・また語りすぎてしまった。以下、紹介のみ。
4、東京大神宮
東京大神宮 - 東京都飯田橋駅 / アクセス・連絡先の情報 [神社お寺の投稿サイト - ホトカミ]
5、神田神社(神田明神)
神田神社(神田明神) - 東京都末広町駅 / アクセス・連絡先の情報 [神社お寺の投稿サイト - ホトカミ]
というわけで以上、
1、学習方法の模索(1時間半)
2、ProgateのSQLを3周してマスター(5時間半)
3、課題に取り組む(3時間)
合計:10時間
ProgateでSQLの基本を非エンジニア経営者が10時間で学んだ方法でした。
ご武運を!