スクリーンショット_2018-11-21_2

非エンジニアが気づいたらSQL書けるようになった話@BASE

今年の夏の時点ではSQL?なにそれ美味しいの?状態だったけど、雑にサブクエリやCASE、UNION等をある程度自由に使えるようになってた、と昨日気づいた。

個人的には思っているのは、SQL自体はエンジニア、デザイナー、ビジネス、マーケター、プロダクトマネージャーなど、エンジニア/非エンジニアなどの職種に関わらずプロダクトに関わる全ての人間が最低限のSQLを身に付けるのがいいのではないかということ。

今回はタイトルにあるように、非エンジニアの自分がSQL書けるようになるまでの軌跡ついて書こうと思う。夏頃まで専属メンバーが自分1人だったBASEの金融事業、子会社BASE BANKの立ち上げ責任者をやる中で、ふとささやかな成長を実感することができた高揚感とノリでそのまま書くのでどうか生暖かく見守ってほしい。

*BASEを退職してCrezitを創業しました!


SQLの学習を始めてから、社内で非エンジニア向けSQL勉強会を開いて失敗したり、色々試してみたが、改めて振り返ると自走できそうなこの段階まではちゃんとやれば1ヶ月もかからなさそうだなと思い、Tipsをまとめることにする。


1. 前提条件

非エンジニアと言っているが、自分自身のスペックどうだったかというと、ざっくりこんな感じ。正直誰でもいける。再現性あると思う。
- コードは書けなかった。
- エクセルは前職でめっちゃ使った。ゴリゴリとファイナンスの数字を触ってた。
- 勉強はできない方ではない。


2. 勉強始める前に

いくつか重要だと思ったことがある。他の似たようなブログなどでも既に言及されているかもしれないが、参考までに。

SQLを使って最初にしたい分析、目的を決める
何事も目的、課題を見極めるのが大切だなと思った。SQLもそうだが、あくまで手段の一つなので、そもそも何を達成したいのか、どんなジョブを解決する必要があるのかをベースに考えるべき。

自分自身の例でいうと、SQLを学び始めた夏頃、BASE BANKのメンバーは自分1人。ショップオーナーの方々が抱えてるお金周りの課題を色々調べたいと思ってた。色々ある課題仮説の1つについて、振り込み申請プラス( 売上金の銀行口座入金を早める機能 )らへんのデータで検証できるのではないかと考えた。

ただ、メンバーが誰もいないこともあり、こういう細かい分析を誰かにお願いするのもとても億劫だったので(決してお願いできない環境ではなかったが... )自分で勉強することにした。

SQLを気軽に書ける環境
世の中の大抵の勉強・インプットはそれを実践する場所がないがために身を結ぶことがない。SQLをせっかく勉強しても、使う場所がなければ意味がない。

幸いBASEはRedashを導入していて、アカウント作ればかなり自由度高くデータを分析できる体制があった。Redashエバンジェリスト菊地さんに感謝。


全てSQLで解決しようしない
最初の方に誰かに言われてとてもためになったのがこれ。SQLで全てを解決しようとしないというのは、必ずしも難しいクエリを頑張って書く必要なくて、他のツールと合わせて目標・課題解決しようねということ。

例えば、二つのテーブルのデータをつなぎ合わせたい時に、無理にSQLでやらなくても例えばスプレッドシートに落としてVlookupすればいい。
そんな感じで、できることと解決すべきことのバランスから、適切な手段を選択することを心がけるべき。

もちろん、だんだん慣れれば普通にSQLだけでできる範囲も増えてくるなと実感している。

3. 学習手順

実際に勉強したコンテンツは下記。この通りにやったら1ヶ月も経たずに、非エンジニアでもSQLを書ける。少なくとも自走できるようになるはず。基本的にはProgateのSQLコースが最強です。

3-1. Progate (1周3時間 x 2周)
1ヶ月だけでいいので今すぐ1000円課金しましょう。書籍とか別サイトとかも見たけど、これ以上のSQL入門教材はなさそうな気がします。データ分析を専門とはしない我々が必要とするレベルの知識は全てカバーしてます。たぶん。3時間くらいで全コースできるので、圧倒的最速!!!

3-2. 10年戦えるデータ分析入門 ( 4時間 )
Gunosyのデータ分析ブログで紹介されていて、読んでみたのがこちら。
Progateでカバーしてない内容もありつつ、より実践的な想定を事例としているのでとてもわかりやすい。

3-3. SQL100本ノック ( 10時間くらい )
会社に置いてあったSoftware Designの背表紙に"SQL50本ノック"の文字を見つけやることにした。問題を解きつつ、BASEのデータベースだったらどうやるか考えて、BASE版50本ノックを作成したり。
その後、雑誌の中でも紹介されていたリブセンスの事例を調べていたら下記の資料を発見、SQL100本ノックの文字が目に入った。追加で50本クエリを書いた。


3-4. ミック本
上ら辺まで終わるとある程度基礎ができてるはずなので、実際に書き始めちゃう方がいい。追加でこの本を読んで、あーこんな風な書き方あるんだ、とか、あーこんなことできるんだ、などぼんやり思えばおk。


4. その他おすすめ教材

- スッキリわかるSQL入門
入門書。演習多めでいい。
- SQLZoo
演習いっぱいできる。結構よさげで、途中までやった。

- 社内勉強会
勉強する環境を整えるという意味でも、SQLの自主勉強会をほぼスタートと同時に企画して実行してみた。DBエンジニアの方が入門コンテンツ作ってくれるなど多大なる協力をしてくれた。感謝。
ただ、結果的にこれは失敗。理由は参加者の目的意識やモチベーションの欠如、終わりを決めていなかったこと、学習内容などなど。

1ヶ月くらいで終わってしまったが、そろそろ仕切り直しで、やり方を大きく変えて挑戦したいと思っている。これについてはまた別で書く。勉強会もスタートアップ的に運用したい。

画像1


5. 参考になったブログ記事

組織としてのSQL導入ブログ
ピクスタ、フラミンゴ、クックパッドの事例。まさに非エンジニアへのSQLの布教と、redash導入でデータ分析環境を整えていた。まさに。

初心者の技術アップにいいブログ記事
エウレカのこの記事はめっちゃよかった。ので必読です。



6. 書けるようになってよかったこと

ちょっとした興味、関心をさらっと調べれる。
今までだとあー、誰かにお願いしなくちゃ、みたいな億劫な気持ちあったのが消えた。関連して小さなタスクをエンジニアにお願いしなくてよくなった。(夏と違って今はメンバーが増えた!!!)

エビデンスベースドな議論・会話
できるようになるはず。プロダクトだしてみてから。

データ構造とかちょっとだけわかるようになる。
これは明確にあった。エクセル触ってるときにはあまり意識してなかったけど、どういうデータなんだろうとか、他のテーブルとの関係や、何をキーとして繋がるんだろうとか。そういうことを多少理解できるようになった。


※続編記事も書きました。自前でRedashを構築する話になってます。


6. 最後に

2019年2月にBASEを退職、3月にCrezitを創業しました!
FinTechや事業立ち上げ、スタートアップに興味ある方、是非お話しましょう!


こちらからでも気軽に連絡ください!

画像2

画像3




この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
108
Crezit, Inc. | 消費者信用とインターネット | 人の想像力や可能性を広げていく事業を作りたいです。