はじめに
Pythonの基礎学習と、今後の面談・実務でのアピールを目的として「Python 3 エンジニア認定基礎試験」を受験し、無事に合格しました。
これから受験を考えている方への参考および備忘録として、使用した教材や勉強法、本番前の注意点をまとめます。
目次
1. 📋 試験概要
- 試験時間: 60分
- 出題数: 40問(選択式)
- 合格ライン: 正答率 70% 以上(700点 / 1000点満点)
- 受験方式: CBT方式(全国のテストセンターで受験)
2. 💻 受験時のスキル・開発経験
- 実務経験:Java 約5年 / Python 約4か月
- Pythonのレベル感:既存コードの流用開発や、都度調べながら実装ができる状態
3. ⏰ 受験までの勉強時間
- 期間: 約2週間
- 総勉強時間: 平日のみ 1日約8時間 × 約10日間 = 計約80時間
案件の待機期間を活用し、短期集中で学習を進めました。
4. 📚 使用した参考資料と勉強方法
試験対策として、以下の4つを活用しました。
「Python 3 エンジニア認定基礎試験」は、無料で模擬問題を公開しているサイトも多く存在します。私の時は本番で「全く同じ問題が出た!」と感じたものはありませんでしたが、
どれも問題の被りが少なく、標準モジュールの知識量や、演習を通して鍛えられる応用力は合否に直結するため、どの教材も解いておいて損はないと感じました。
※以下、当時取り組んだ順にご紹介します。
PRIME STUDY(プライム・スタディ) 模擬試験
- 特徴: 無料、制限時間あり、登録なし(結果受取用のメールアドレス入力が必要)で受けられる全3回の模擬試験。
-
感想:
- 全3回、本番と同じ60分・40問形式で模擬試験が出来るサイトで、それぞれ4〜5周ほど解きました。
- 結果がメールで届くためメールアドレスの入力が必要です。
- 解説がないため、間違えた問題はAI等に質問して1問ずつ納得いくまで潰していきました。最終的にここで全3回とも100点が取れるまで周回しました。
公式問題集
- 特徴: 1〜12章の各章問題と模擬試験1回分を収録。問題によって図付きの解説あり。
-
感想:
- 公式の問題集で3周ほど解きました。
- 他の問題集との被りが少なく、知識の定着に役立ちました。
- 難易度はPRIME STUDYと同等レベルですが、標準モジュールに関する問題がより網羅されており、初見の知識を色々と知ることができました。特に「集合の和・差」などの図解が視覚的にわかりやすかったです。
ディープロEXAM(DIVE INTO CODE)
- 特徴: 無料(一部有料・月額980円)、制限時間あり、要会員登録の模擬試験プラットフォーム。
-
感想:
- 無料で使える「ランダムで40問出題する機能」を5周ほど解きました(※章ごとに絞って出題、などは有料機能)。
- UIが非常に操作しやすく、ブラウザ上で答え合わせが出来る為、周回しやすいのが魅力です。
- 上記2つとは違った角度から出題されるため、基礎の土台固めに役立ちました。
- 何周もすると見慣れてきますが、たまに初見の問題が出るのも「味変」になって良かったです。
Pythonチュートリアル(公式ドキュメント)
- 特徴: Python公式の無料リファレンス。
-
感想:
- 「手を動かして覚えたい派」だったのでざっくりパラパラと眺める程度でしたが、細かな仕様や挙動の裏付けを確認するのに役立ちました。
- ※サイト左上部にバージョンを指定するプルダウンがあるので、利用環境に合わせて適宜調整してください。
5. 💡 本番を終えての所感・注意点
本番を振り返って、 「ここは得点源になる!」 と感じたポイントは以下の3つです。
- 1️⃣ データ構造を扱う関数(
remove/pop/del)の引数・仕様の理解- リストなどの要素を削除する際、「今引数に指定しているのは『値(要素)』なのか、それとも『インデックス(位置)』なのか」 をコードレベルで把握しておくこと。
- 同じリストの操作であっても、
removeのみ「値」を指定する点に注意が必要です。 - それぞれの仕様の違いと使用例を以下に整理します。
| 操作方法 | 引数に指定するもの | 戻り値(返り値) | 特徴・注意点 |
|---|---|---|---|
remove(値) |
値(例: 10) |
なし (None) |
指定した「値」そのものを探して削除する。 ※インデックスは指定できない。 |
pop(インデックス) |
インデックス(例: 1) |
取り出した値 | 指定した「位置」の要素を削除しつつ、その値を取り出せる。 ※値は指定できない。 |
del リスト[インデックス] |
インデックス(例: 1) |
なし(文のため) | 単に指定した「位置」の要素を削除する(文なので値は返らない)。 ※値は指定できない。 |
# 1. remove(値): 文字列の「値」を指定して削除する
fruits1 = ["ringo", "banana", "mikan", "banana"]
fruits1.remove("banana") # 最初に見つかった "banana" を削除する
print(fruits1) # 出力: ['ringo', 'mikan', 'banana'] (2つ目のbananaは残る)
# 2. pop(インデックス): 「位置(番号)」を指定して削除し、その値を取り出す
fruits2 = ["ringo", "banana", "mikan"]
val = fruits2.pop(1) # インデックス 1 の場所("banana")を削除して変数に代入する
print(val) # 出力: banana (取り出した値)
print(fruits2) # 出力: ['ringo', 'mikan'] (残りのリスト)
# ※ pop() は引数を空にすると「最後の要素」を消す
last_val = fruits2.pop()
print(last_val) # 出力: mikan
# 3. del リスト[インデックス]: 「位置(番号)」を指定して単に消す
fruits3 = ["ringo", "banana", "mikan"]
del fruits3[1] # インデックス 1 の場所("banana")を削除する
print(fruits3) # 出力: ['ringo', 'mikan']
-
2️⃣ 「想定外の例外」についての挙動の理解
- 模試によくある「exceptにTypeErrorを設定して、tryでTypeErrorを発生させて...」といった王道の
try...exceptだけでなく、用意していない例外が発生したときの挙動や、finallyブロックの実行順序などの細かい仕様を深掘りしておくこと。
- 模試によくある「exceptにTypeErrorを設定して、tryでTypeErrorを発生させて...」といった王道の
try:
print("計算します")
result = 10 / "1" # TypeError が発生!
except ZeroDivisionError:
# ZeroDivisionError しか用意していないので、TypeError はキャッチできない
print("型エラーをキャッチしました(ここは動かない)")
finally:
# エラーで止まる直前でも、finally は絶対に実行される!
print("【必ず実行】後処理を行います")
print("ここは強制終了するため実行されません")
# --- 実際の実行結果 ---
# 計算します
# 【必ず実行】後処理を行います
# Traceback (most recent call last):
# File "main.py", line 3, in <module>
# result = 10 / "1" # TypeError が発生!
# TypeError: unsupported operand type(s) for /: 'int' and 'str'
-
3️⃣ 「正しいもの/誤っているもの」の読み間違えに注意
- 忘れた頃に問題文の「誤っているものを選べ」を「正しいもの」と読み間違える凡ミスが起きがちでした。本番でも落ち着いて一字一句読み解き、合格ラインまでの許容失点数12問を無駄に消費しないこと。
その他所感:
-
📕まずは模試から解いて概要を掴む:
- チュートリアルは文章量が多いため、最初から熟読するより「問題を解いて気になる要所だけテキストで確認する」方が頭に入りやすく効率的と感じました。
-
🪇引数と戻り値をセットで覚える:
- 「この関数の引数の型は何か」「戻り値の型やどんな形で返ってくるか」を意識して整理しておくと本番でも落ち着いて対応出来ると感じました。
-
🗓️テストセンターの予約は早めに:
- 会場によっては「受験日の5日前までに予約が必要」な場合もあるため、余裕を持ったスケジュールでの予約をお勧めします。
6. 📝 まとめ
以上が、私がPython 3 エンジニア認定基礎試験に合格した際の勉強法と振り返りです。
個人的には、今まで既存コードを追ったり都度調べて実装していたPythonについて、エラーの種類であったり、range や enumerate、リスト内包表記といった繰り返し処理の使い分けなど、読み書きどちらにも活かせそうなことを体系的に知ることができたので、非常に有意義な試験に感じました。
これから受験される方の参考になれば幸いです!