こんにちは。今回はOdysseyのPython3 エンジニア認定実践試験を受験し、無事に合格することができたので学習方法や試験を受けての所感をまとめたいと思います。
1. 背景
私は今年からIT系の会社に新卒入社し、エンジニアとして業務を行っています。業務ではクラウド(主にAWS)によるシステム構築を行っていますが、Pythonを用いてコーディングを行うこともあります。
業務で使用するにあたりPythonの標準的な知識が不足していると感じたため、以前にPython3 エンジニア認定基礎試験を受験しました。せっかくなので基礎試験での記憶も新しいうちにインプットを増やそうと思い、今回実践試験を受験しました。
◯基礎試験の体験記はこちらになります↓
2. 勉強方法
以下2点を前提として、合計3週間ほどの学習期間で試験に臨みました。
- 基礎試験の内容が既習である
- 一定のプログラミング経験がある(Pythonは5年ほど使用経験がありました)
具体的な教材、内容は以下の通りです。
① Pythonエンジニア育成推進協会監修 Python実践レシピ
まずは本書の各章を愚直に「読む→必要に応じて挙動の確認」の繰り返しで進めました。1日に2~3章を目安に、合計10日ほどで1周を終えました。ここでは細部まで覚え込むというよりも「こんな機能もあるんだな〜」というレベルで、後々の演習で復習をする際のフックを作るイメージで気楽に進めました。
挙動確認のコーディングはGoogle Colaboratoryで簡易的に行い、本書と同一のコードを試したり、「ここの記述を変えたらどうなるんだろう」と気になった部分をいじってみたりしました。Python試験では「(エラーも含め)このコードを実行したらどの結果が得られるか」を問う設問も多いため、正しく動作するコードをいじってどのように出力結果が変わるか経験値を増やすことが効果的だと感じました。
② ExamApp・Dpro Exam
模擬試験形式の演習はこれら2つのサイトを使用しました(というよりこれらしかなさそう...?)
ExamAppは初級・中級・上級のレベル別になっているため、最終的に正答率100%の状態になるまで各3回程度繰り返しました。基本的に①完了後に進めましたが、初級に関しては「どんな問題が出るのか」学習初期に押さえておくため①の中頃に一度行いました。
試験日の3日ほど前からはDpro Examをひたすら繰り返しました。無料枠なのでランダム出題で演習→結果確認のみでしたが、4回ほど繰り返しても新規の問題が多い印象で、問題を覚えてしまうことなく演習を繰り返せました。
③ その他の参考サイト等
上記を主軸に、理解を深めたいと思った箇所は適宜ネットを活用しました。やはり公式の参考書は内容が正確な一方でお堅い印象があり、まずふんわりイメージを掴みたいと思った時にはQiitaをはじめネット上の解説記事が助けになると感じました。
私が今回参考にしたものの中で特に助けになったものを、恐縮ですが以下に選抜します。
-
PythonZen & PEP8検定試験
参考書①の第2章に該当するコーディング規約に関する理解を深めるために取り組みました。禅の考え方が共通認識として推奨されていることは、試験勉強を度外視しても興味深く感じました。 -
Python の unittest の mock(@satamame)
私は参考書のみではモックオブジェクトの使い方がいまいち掴めなかったのですが、こちらの記事で理解を深めることができました。段階的に、どういう事象に対して課題感があってモックオブジェクトが必要になっているのかの説明がなされており、かゆいところに手が届く解説記事でした。 -
Pythonのloggingをイメージで理解する【Python Logging徹底解説】(@でんちゅー)
私はログに関してlogging/logger/handler等の区別ができていなかったのですが、こちらの記事でイメージ図を踏まえた解説を読むことで理解を含めることができました。上記同様にloggingの前段としてのprint文から話が始まっており、loggingの必然性が自然と飲み込めました。また、度々出てくるイメージ図は「まさにこれが欲しかった!」という情報でした。
以上、ほんの一部ではありますが紹介させていただきました。自分がまさに欲しかった情報を得られるサイトを探している時間は宝探しのようにワクワクできて結構好きな時間です。
3. 所感
今回は実践試験の受験を通じて、Pythonの標準機能に関する理解をより深めることができたと思います。デコレータやコンテキストマネージャ、ジェネレータなどは今までなんとなく聞いたことはあるけどいまいち使い方がわからないなという状態だったので、体系的に整理することができ非常に満足でした。また、デバッグやテスト、ログに関する機能は本格的な運用でもないとなかなか触れることのない項目なので、知見を広げることができました。
今後はデータ分析系の試験を受験したいと思います。また、インプットがメインだったので今度は学習で学んだことを自分の言葉でアウトプットしてゆきたいなと思います。
今回は以上です。ご覧いただきありがとうございました!