※当記事は、記事の準備ができ次第、順次更新してまいります。
いくら勉強してみても習得できた実感を持てない、初心者の領域から抜け出せない、そのように感じてしまうのは、習得内容と実戦の間で、何かしらの乖離があるからです。
この乖離を解消するためには、現場でどんな水準が求められているかを理解して、その水準を一つ一つチェックし、達成していく必要があります。
特に、求められる習得水準を明らかにしてくれない現場では、何を勉強しても習得した実感を得られないのではないでしょうか。
だからといって、現場の上司に「習得水準を明らかにしてくれないのが悪い」と言っても、簡単に用意してもらえるものではありません。
当記事で紹介する「初心者」「中級者」の習得水準は、筆者が個人的に感じている線引きですが、何も道しるべが無い方の一助になれば幸甚です。
こんな方におすすめです。
- 仕事でSQLを勉強するように言われたけど、難しさを感じている。
- 初心者向けウェブサイトや入門書を読んでも、身に付いた実感が無い。
- ご自身が初心者を抜け出せているか振り返ってみたい。
- 職場で求められているSQLスキル高低の判断材料が欲しい。
まずは初心者編です。
初心者の内は、段階を踏んで一つずつ習得していくことが大事です。
初心者編ステップ1:SQLがどんなものか大枠を理解していること
まずは、SQLがどんなもので、どういった時に使うものなのか、全体像を把握しましょう。
SQLの概要を説明する記事を設置予定
BigQueryを利用する基本操作を説明する記事を設置予定
勉強し始める際におさえたいポイントを説明する記事を設置予定
初心者編ステップ2:単純なクエリを書ける程度の構文を理解していること
具体的な構文の説明に入っていきます。
「SELECT」「FROM」「WHERE」「ORDER BY」を使えるようになれば、単純なクエリを扱えるようになります。
ただし、自信をもって扱えるようになるためには、データ型、NULL、条件式、といった特殊な知識を理解しておくことが必要になります。
プログラミング言語を習得する際に身に付ける知識であるため、プログラミングのご経験がある方は簡単にクエリできるでしょう。
逆に言えば、SQLの勉強をすることで、プログラミングの勉強もできてしまう一石二鳥の領域です。
しっかり習得しましょう。
SELECT句を習得するための記事を設置予定
FROM句を習得するための記事を設置予定
データ型を理解するための記事を設置予定
NULLを理解するための記事を設置予定
条件式を理解するための記事を設置予定
WHERE句を習得するための記事を設置予定
ORDER BY句(LIMIT句)を習得するための記事を設置予定
よく使う関数を紹介する記事を設置予定
BigQueryでテーブル・ビューを保存する操作を説明する記事を設置予定
初心者編ステップ3:基本的な抽出クエリを書ける程度の構文を理解していること
単純なクエリを書けるようになった後は、単純なクエリを組み合わせることができるようにステップアップします。
このステップを習得することで、SQLを使えるからこその強力なメリットを享受できるようになります。
WITH句(副問い合わせ、サブクエリ)を習得するための記事を設置予定
プライマリキーを理解しテーブル定義書を読めるようになるための記事を設置予定
GROUP BY句を習得するための記事を設置予定
よく使う集計関数を紹介する記事を設置予定
HAVING句を習得するための記事を設置予定
よくある不具合(NULL)を紹介する記事を設置予定
よく使う集計処理を紹介する記事を設置予定
JOIN句を習得するための記事を設置予定
よくある不具合(直積)を紹介する記事を設置予定
UNION句を習得するための記事を設置予定
初心者編ステップ4:チームでSQLを使った業務を担当できること
基本的な構文の解説が終わり、脱初心者、業務活用に進むためのステップです。
好奇心でクエリを実行する分には他メンバーの目に触れませんが、ビジネス上の何かに利用するならば、自分が書いたクエリを自分以外のメンバーに読んでもらう場面が発生します。
チーム開発でのルールやクエリの読みやすさは大事で、良いクエリを書くための知識を習得しましょう。
予約語を知るための記事を設置予定
レギュレーションに従ったクエリを書けるようになるための記事を設置予定
デバッグの重要性を説明するための記事を設置予定
レビューの重要性を説明するための記事を設置予定
可読性・保守性を説明するための記事を設置予定
DRY原則を知るための記事を設置予定
クエリテンプレートのサンプルを紹介するための記事を設置予定
中級者にステップアップするには
以降は、中級者向けの習得ステップです。
非エンジニアがビッグデータ活用を行うための障壁を低くする取り組みが行われている職場であれば、初心者編の範囲を習得することで十分に活躍できるでしょう。
しかしそのような取り組みは難しく、中級者レベルの習得を要求される場面もあります。
習得順序に推奨順序があるわけではないため、列挙します。
WINDOW関数を習得するための記事を設置予定
リファレンスを読み、使ったことがない関数を調べて使えるようになるための記事を設置予定
配列(ARRAY)・構造体(STRUCT)を習得するための記事を設置予定
SELECT句で始まるクエリ以外のクエリを紹介する記事を設置予定
正規表現を紹介する記事を設置予定
上級者編の習得項目例
中級者が終われば次は上級者、と言いたいところですが、ここからは職種によって習得項目が変わってきます。
たとえば、データサイエンティストであれば統計解析や機械学習のスキルを磨いた方が良いですし、システムエンジニアであればパフォーマンスチューニングができるようになった方が良いでしょう。
下記、習得項目例を示します。
- テーブル定義書を書けること。
- INFORMATION_SCHEMAを使ったメタデータ操作ができること。
- UDFを使えること。
- スクリプトを書けること。
- パフォーマンスを考慮してチューニングできること。
- 運用、保守、管理を行いやすい設計・構築ができること。
- 利用サービスの最新アップデートを把握していること。
- PythonやRといったプログラミング言語と組み合わせた開発ができること。
- BIツールを使って目的のビジュアライゼーションができること。
- 統計学的検証を行えること。
- 機械学習モデルを作れること。