OSS-DB Silver 合格体験記

2022年9月に、PostgreSQLに関する認定資格「OSS-DB Silver」に合格しました。
学習期間や学習方法について、備忘録も兼ねて残します。

# OSS-DB Silverについて
PostgreSQLに関する資格です。
OSS-DB試験はSilver, Goldと2種類にランク分けされており、Silverは初級者向けという位置づけになっています。

> 下記のスキルと知識を持つエンジニアであることを証明する。
> - RDBMSとSQLに関する知識を有する。
> - オープンソースデータベースに関する基礎的な知識を有する。
> - オープンソースを利用して小規模なデータベースの運用管理ができる。
> - オープンソースを利用して小規模なデータベースの開発を行うことができる。
> - PostgreSQLを使ったデータベースシステムの運用管理ができる。
> - PostgreSQLを利用した開発でデータベース部分を担当することができる。
> [OSS-DB Silver](https://oss-db.jp/outline/silver)

# 学習期間と総学習時間
- 学習期間:2022/08/06〜2022/09/26 (51日間)
- 総学習時間:推定100〜150時間

# 学習開始時点でのスキルセット
- 業務経験は2年目、JavaとDB2で業務系アプリの保守をしている
  - 単体テスト工程ではSELECT文を少し書く
  - 開発工程ではテーブルの列追加、ビューの定義文修正の対応をたまに行う
  - コーディング時はORMのようなツールを使用しているため、SQLを意識することは少ない
- 基本情報技術者は取得している(応用情報技術者も取得したが、データベース分野は選択しなかった)
- データベースやSQLへの苦手意識が極めて強い

# 受験の動機
- 開発工程、単体テスト工程の作業効率の悪さに課題を感じており、これはSQLの知識を増やすことで解決できそうと考えたから
- エンジニアとして成長するにあたって、データベースを避けて通れないことは理解しており、克服の必要を感じていたから
- 業務ではDB2を使っているのに何故PostgreSQLの資格なのか
  - 業務で使用する内容は基本的に標準SQLの範囲内に収まっており、他のDBMSで学んでも問題はなかったから
  - OSSとして広く使われているために、社内外で広く情報共有&情報収集できそうだったから

# 学習教材
## オープンソースデータベース標準教科書 -PostgreSQL-
はじめの3日間で主に使用した入門書で、電子版なら無料で読めます。
ほぼ何も知らない状態から学ぶ上で、非常に有用な書籍でした。
一方で、この書籍単体ではOSS-DB Silverの出題範囲を網羅できないため、別途学習教材が必要となります。

## Ping-t
受験にあたって最も利用した問題集で、1ヵ月単位で購入できるサブスクリプションのサービスです。

Ping-tには、問題ごとに詳しい解説がついているほか、その解説の作成に利用したであろう参考URLまで記載されています。
そのため、問題集でありながら教科書としても活用でき、不明点の調査にかかるコストを大きく抑えられるのがポイントです。

さらに、[Ping-tユーザーによる合格体験記](https://mondai.ping-t.com/g/passings?l=7)が投稿されており、
合格者がPing-tをどの程度やりこんでいたかが数値で可視化されています。
合格者それぞれで学習開始時点のスキルセットは異なるため、数値をそのまま鵜呑みにはできないのですが、ひとつの目安として参考にしました。


## OSS-DB公式サンプル問題集

受験直前に利用した教材で、約3日間使用しました。

> ping-tのみでいけるけど試験中少しハラハラ
実際にping-tのみでいけたので極力最短で受かりたい人はping-tのみで良いと思いました❗️
[OSS-DB Silver合格（勉強期間10日間） - ping-tのみで合格できるか検証してきた！](https://zenn.dev/chibashinobu/articles/325e859b83a930)

上記のような合格体験記があったこと、Ping-tだけでもすでに505問と問題数は充分にあったことを踏まえ、
Ping-tのみで演習を行い、追加で別の書籍・サービスを利用する予定はありませんでした。

しかし受験日の数日前になって突如不安に駆られてしまい、この公式サンプル問題を約40問だけ解きました。
実際に受験が終わってから振り返ってみると、Ping-tをやりこんでさえいれば追加で解く必要は特になかったと感じます。

とはいえ、Ping-tの出題内容と内容がピタリと一致するわけでもないので、さらに力をつけたい、Ping-tの内容を暗記してしまったので他の教材で力試しをしたい、といった場合には、選択肢に入れて良さそうです。

# 学習で気をつけていたこと

## SQLよりも運用分野の学習に時間を割く
OSS-DB Silverは「一般知識」「運用管理」「開発/SQL」の3分野に大きく分けられています。
私の場合、苦手意識があるといいつつもSQLは使用していたため、想定よりも「開発/SQL」の分野ではつまずきませんでした。
それよりも「運用管理」の分野でつまずくことが多く、というよりも単純に未知の分野であったため、こちらを中心に学習しました。

また、次の理由から他の受験者も同様の戦略で良さそうです。
- 出題の偏りは「一般知識(16%)」「運用管理(52%)」「開発/SQL(32%)」となっており、「運用管理」が最も多い
- (少なくともPing-tの問題集に限れば)丸暗記せざるを得ない箇所は「運用管理」分野が最も多く、定着に時間がかかる

## 演習時の正答率はメモしておく

Google Spread Sheetsを使ってガントチャートのようなものを作成し、それに沿って分野ごとに問題を解き進めるとともに、各分野の正答率をメモしていました。
得手不得手を可視化できるところが特長で、例えば「バックアップ方法」についてはしっかりと復習が必要だろう・・と、表から読み取ることができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3044044/7cad5ff6-5781-f500-5177-0f51e0cdfffd.png)

## その他気をつけていたこと

細かく書くほどの内容ではないので、箇条書きで記します。

- 実行環境は早い段階で用意しておく
  - Linuxのターミナル等、CLIの環境でインストールから行うと力がつきそう
  - Ping-tは操作画面のスクリーンショットも解説に載せてくれているが、自分でコマンドを叩いたほうが頭に入るので、なるべく手を動かすようにしていた
- 解説だけでなく、Ping-t記載の参考URLにもなるべく目を通す
  - 特にコマンドのオプションで不明点があれば、公式リファレンスを読むのが早い

# 受験当日について

この記事を書いている現在、受験からすでに3ヶ月ほどが経とうとしており、うろ覚えなところもありますが・・念のため、書き残しておきます。

## 解答にかかる時間について

試験時間は90分。時間はだいぶ余りました。
分からない問題を飛ばしたとはいえ、一通り解答が終わった時点で40分近く余っていたような気がします。
分からない問題への再チャレンジや、上手く解けたかどうか不安な問題を確かめるといった時間は充分にありました。

## 試験中の備品について

試験中に使うホワイトボードが不便でした。
私が受験した大阪某所では、メモ・計算用紙として油性ペン2本とホワイトボード1枚が渡されました。
(ホワイトボードは片面だけ使用可。もう片面は注意書きなどが書いてあり、メモとしては使用できない)
紙面が足りなくなった場合は、追加ではなく交換です。
つまり、ホワイトボードを交換した場合は後々の見直しに問題が生じる可能性があるため、1枚に小さく細かく書き込み、交換せずに済ませる工夫が必要かと思います。

※試験会場によって異なる可能性があります


# 試験結果

得点は86点でした。
合格水準は64点と言われているので、だいぶ余裕を持たせて合格できたことになります。

# おわりに

当試験を通じて獲得できたことは色々とありますが、データベースへの苦手意識が払拭されたのが特に大きいです。
苦手意識が払拭されたということは、これからは柔軟に、さらに知識を詰め込めるということでもあります。
現在はエンジニアとしての成長がプログラム言語に偏りがちなのですが、今回のOSS-DB Silver合格を足掛かりに、次はデータベース分野においてもさらに成長していきたいと思います。

# 参考資料
- [OSS-DB Silver](https://oss-db.jp/outline/silver)
- [オープンソースデータベース標準教科書ダウンロード](https://oss-db.jp/ossdbtext)
- [OSS-DB サンプル問題／例題解説](https://oss-db.jp/measures/sample)
- [Ping-t](https://ping-t.com/)
- [Ping-tユーザーによる合格体験記](https://mondai.ping-t.com/g/passings?l=7)
- [OSS-DB Silver合格（勉強期間10日間） - ping-tのみで合格できるか検証してきた！](https://zenn.dev/chibashinobu/articles/325e859b83a930)
- [OSS-DB - 資格の王道](https://www.shikakude.com/minsikakupaje/lca.html#:~:text=OSS%2DDB%20silver%E8%A9%A6%E9%A8%93,%E5%BE%97%E7%82%B9%E3%81%A7%E5%90%88%E6%A0%BC%E3%81%A8%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82)