Python 3 エンジニア認定基礎試験に合格しました。
これでIT系の資格は11個目です。ちなみにワイは5年目のエンジニアです。
それにしても、こんな風に思うことないですか?
- 本試験問題ってどんな感じなの?
- 本試験は難しいって言うけど本当?
- 公式本勉強するだけで合格できるの?
僕も試験を受ける前にネットで色々調べましたが、はっきりしないサイトが多い多い。
ということで今回は、Python 3 エンジニア認定基礎試験に合格するための方法を解説します。
試験概要
Python3に関する基礎知識が問われる試験です。
受験料 | 1万円(外税) |
---|---|
問題数 | 40問(すべて選択問題) |
合格ライン | 正答率70% |
※合格ラインが70%で問題数が40問なので、単純計算で12問は間違えても良いことになります。
公式サイト
こちらに詳細が載っています。
どうすれば合格できる?
Python 3 エンジニア認定基礎試験は、どの教材から、どの部分が出題されるのかが明記されています。
公式本 | オライリー・ジャパン「Pythonチュートリアル 第3版」 |
---|---|
出題内容 | 上記公式サイトに記載。 |
※単元ごとの出題数も記載されているので、どこを重点的に勉強すれば良いかは比較的分かりやすいです。
結論、「公式本から出題される問題をしっかり押さえておけば合格できます」。
⇒公式本以外からは出題されないため。
↑は購入しておくのが無難です。
勉強方法
以下のように勉強すれば、合格ラインには届くと思います。
①模擬試験をひたすらやる
⇒Python 3 エンジニア認定基礎試験の模擬試験は、現時点で上記「DIVE INTO EXAM」しかありません。
本試験でも同じような問題が出題されるので、模擬試験は満点を取れるまで実施します。
⇒満点を取れるようになれば、本試験で60%くらいは取れます。
※色々なサイトで言われていますが、「本試験は模擬試験よりも少しだけ難しい」です。
②公式本を2回くらい読む
模擬試験で問題を解けば、公式本のどの部分が重要なのかが分かります。
公式本はオライリーなので死ぬほど分かりにくいです。
全部覚える必要はなく、模擬試験で出題された内容を重点的に復習する感じがベストです。
僕のスコアシートはこんな感じ
僕はここに書いてある勉強方法で9割近く取れました。
なので、この勉強方法を行えば、ほぼほぼ受かるかと思います。
試験問題
ベンダー系あるあるですが、本試験では何を間違えたのかとかは教えてくれません。
僕はこれを「ベンダー詐欺」と呼んでいます。
試験問題はネット上に公開してはいけないので載せませんが、試験問題を攻略するための重要ポイントを記載しておきます。
1章(出題数:1)
・マジで何出たか分からない。
とりあえず、「Pythonは文のグルーピングをインデントで行う」というのを押さえておきましょう!
2章(出題数:1)
・エンコードについて聞かれました。
デフォルトのエンコードは「UTF-8」です。これ重要。
3章(出題数:6)
・print関数は実行される度に改行が加えられる。
・エスケープを無効化したい(文字列をそのまま出力したい)場合、以下のように「r」を先頭に付与する。
1 |
print(r'C:\hoge\hoge') |
・文字列は掛け算できる。
1 |
3 * 'hoge' # hogehogehoge |
・文字列は改変できない。
1 2 |
word = 'Python' word[0] = 'J' # ←これはエラーとなる |
・リストの中身を変更する方法(P18)
1 2 |
cubes = [1, 8, 27, 65, 125] cubes[3] = 64 # [1, 8, 27, 64, 125] |
4章(出題数:9)
・スキップについては理解しておきましょう!
1 |
range(0, 10, 3) # 0, 3, 6, 9 |
・for文のelse節が実行される場合を理解しておきましょう(P26)。
else節は「break文が実行されなかった時に実行される」。
・passは何もしない。
つまり、「スキップしたり、ブレイクしたりするものではなく、何もしない」。
・「in」について(P31)
「in」が「is」とかになって選択肢として出題されていた。
・引数は、位置引数が必ず先でキーワード引数は位置引数の後です。これ重要。
逆の場合、エラーとなる。
・P36のソースコード、そのまま出た。
lambdaの理解もそうだが、何でソートされるかは重要。
・PEP8について。要はソースコードの正しい書き方はなーに?
- インデントはタブを使用しないこと
- コメント行は独立させる
- docstringは使うべき
- 演算子の周囲やカンマの後ろにはスペースを入れるが、カッコのすぐ内側には入れない
5章(出題数:7)
・シャローコピーについて
1 |
list.copy() # list[:]と同じ |
・リスト内包の書き方は理解しておく。
P45当たりが理解できていれば問題なし。P46のソースコード、そのまま出た。
1 2 3 4 |
# [1, 2, 3, 4, 5, 6, 7, 8, 9]と出力したい場合 vec = [[1, 2, 3][4, 5, 6][7, 8, 9]] # [num for elem in vec for num in elem] ←これが正しい。 |
・delのインデックスは「0」始まり。popも同様。
・タプルはリストを入れることができる。これ重要。
・集合は重複を削除する。これ重要。
集合とディクショナリ、似てるので要注意です。
・ディクショナリのキーは何が使えるか理解しておく。
- あらゆる変更不能型を使える(文字列、数値、タプル)。⇒リストはキーとして使えない。なぜなら変更できてしまうから。つまり、変更できないものの中であらゆるものが使える。
- キーは重複してはならない。
・P53のitems()の書き方は重要。
・P53のenumerate()の書き方は重要。
6章(出題数:2)
・P60のソースコード、重要です。
1 |
if __name__ == "__main__": |
↑この分岐を通るか否かの問題が出題されました。意味が分かっていればOK!
・コンパイル済みファイルの拡張子は「.pyc」だよ。
7章(出題数:1)
・jsonのシリアライズについて
json.dumps() | オブジェクトをテキストファイルにシリアライズする。 |
---|---|
json.load() | デコードしてオブジェクトに戻す。 |
8章(出題数:4)
・「1 / 0」はZeroDivisionErrorですが、「0 / 10」みたいな問題が出ました。
⇒これは「0」なのでエラーは発生せず、else節があれば通り、finally節があれば最後に実行されます。
・raise文はエラーを送出するものだと理解しておきましょう!
・else節は例外が発生しなかった場合に実行され、except節は例外が発生した場合に実行される。
finally節は必ず最後に実行される。
9章(出題数:2)
・P102のクラス変数とインスタンス変数の違いを理解しておく。
特に、インスタンス変数はインスタンス毎に固有の変数であることは重要です。
10章(出題数:4)
・osで「動作しているオペレーティングシステムを確認する方法は何か?」という問題が出ました。これ、本に載って無くない?
「os.name」が正解です。
また、他の選択肢も把握しておきましょう。
os.getcwd() | 今いるディレクトリを返す。 |
---|---|
os.chdir() | カレントディレクトリを変更する。 |
・ランダムについて
1 |
random.random() # ←これは浮動小数点数を出力します。例)0.123456789 |
※選択肢に「1.123456789」とかがありましたが、「0.123456789」が正解です。
・statisticsについて
statistics.mean() | 平均。 |
---|---|
statistics.median() | 中央値。 |
・日付ライブラリ
1 2 |
from datetime import date # 正解 from date import datetime # 不正解 |
11章(出題数:1)
・ログは「logging」モジュールを使います。
⇒「log」とか「logged」とかではないです。
12章(出題数:1)
・pipコマンドについて 「pip install」 は最新バージョンをインストールするので、バージョンを指定する必要はないです。
⇒指定したい場合は、「pip install request=2.6.0」みたいな感じでやります。
・アップグレードは「pip install –upgrade requests」です。
14章(出題数:1)
・変数とモジュール名の補完はインタープリタの起動時に自動で有効になっており、[Tab]キーで補完機能が呼び出せる。
↑丸覚えでOK!
どこの単元なのか不明なやつ
1 2 3 4 5 |
a = [1, 2, 3] len(a) # 3 a = 'abcd' len(a) # 4 ←地味にこれ迷た。 |
で、試験受ける意味ある?
他のサイトでも言われていますが、この資格を取得したからと言ってPythonを極めたことにはなりません。
ただ、取って意味のない資格はないですし、意味があるとかないとかそういう問題ではないです。
僕も今まで色々と資格を取ってきましたが、正味頭から知識が抜け落ちているものの方が多いです。
そういう意味では、どの資格も意味がないように思えます。
が、資格を取ることで一番良いのは、根拠のない自信が生まれることです。
「俺は資格をいっぱい持ってるんやぞ!」という意味のない自信が業務でいい影響を生み出すと思っています。
まとめ
今回は、Python 3 エンジニア認定基礎試験について解説しました。
試験の難易度としては簡単な部類に入りますが、これからPythonを勉強したいという方にはちょうど良いかもしれません。
正しく勉強をすれば一発合格可能な試験なので、是非チャレンジしてみてください!
ではまた。