見出し画像

Python3エンジニア認定実践試験取ってみた ~Python Super Engineerになりました~

こんにちは、Rcatです。
突然ですが、Python3エンジニア認定実践試験を受け、Python Super Engineerになれました!!
今回はその内容について書いていこうと思います。

Python3エンジニア認定実践試験とは

一般社団法人Pythonエンジニア育成推進協会が主催の資格試験です。
目的は私が説明するよりも公式の説明を引用した方がいいでしょう

Python市場が広がる際に、 Pythonicを理解した人材が育成されるよう、学習の指針となる試験と教材認定とスクール認定を行い、健全なPython人材育成を支援する

一般社団法人Pythonエンジニア育成推進協会ホームページより引用

まあ、要するにPythonらしいプログラムをちゃんとかける人も育成するのが目的という感じでしょうか。

Python Super Engineerとは

Python Super EngineerはPython3エンジニア認定実践試験を900点以上のスコアで合格した場合に名乗ることができる称号です。私は925点でしたので条件を満たしています。
(逆に何間違えたんだ…?)

資格を取った経緯

この記事が初めてではない方は知っていると思いますが、私は普段からPythonを酷使しており、本職ではないながらもそれなりに経験を積んでいます。
そして会社の奨励資格の中に本試験があったので挑戦してみることにしました。

試験の種類について

この組織はいくつかの試験を展開していますが、Python3に関連で大きく分けて2つあります。

1つ目がPython3エンジニア認定試験、もう一つがデータ分析試験です。
今回はエンジニア認定の方を受けてみることにしました。

また、エンジニア認定の試験も2つのレベルがあり、基礎と実践があります。

エンジニア認定基礎試験について

特に記事にはしていませんが、半年くらい前に基礎の方は既に取っています。
基礎の方は、プログラミングについての基本的な知識とPythonのコーディングのやり方がわかっていれば取れるような内容です。
私も独学で書いていた期間が長かったので、参考書を数回読み込み、無料の模擬試験を少しやっただけで取ることができました。
プログラミング自体が初めてという人だと、前提の前提がわかっていない状態なので、すぐに取れるような内容ではないと思いますが、独学で経験がある人ならすぐに取れるような内容だと思います。


エンジニア認定実践試験について

さて、前置きが長くなりましたが、ここからが本題です。
この試験は基礎の方とは違い、厳密な仕様やコーディングの知識などを特に要求されます。
また、様々な標準ライブラリの使い方も問題として出てくるので、広く知識を身につけることができます。

試験の難易度は?

基礎も簡単に取れたので、実践も取れるだろうというのが最初の予想でした。というわけで書籍を購入してみたわけですが…。知らない内容が多すぎる。
公式サイトの方を見ればどのような内容が出てくるのか書いてあるんですが、特に最後の方のテストとかデバッグとかは、本職がソフトウェアエンジニアじゃないので全くさっぱりでした。

それ以外を各項目でも本当に細かい仕様まで解説されているので、独学では全く知らなかった内容がずらりと並んでいます。
かなりの量の知識を穴埋めする必要がありました。

分かりやすいのが、14章の"インターネットのデータを扱う"で、これはPythonの知識だけでなくWEBの知識を要求されます。
私はPythonよりも先にWEBに興味を持って、IISやPHP等を触っていたこともあるので、GETって何?POSTって何?パラメータって何?等聞かれてもすぐわかりますが、そうでない場合はまずはWEBの知識を別のところで取り入れてから戻ってくる必要があります
こんな感じで幅広く知識を要求されるのでそういった意味での難易度もありますが、それだけの実力を示せるということでもあります。

また、いつも使っている標準ライブラリでも実は別の使い方があったり、最初から知ってた方がよかったようなライブラリも紹介されているので、正直受ける気が無くても参考書は読んでみた方がいいです。
ただしこの参考書は色々分かってる前提で書いてあるので少なくとも基礎の方を取れていないと理解できない部分も多々あります。
例えばloggingライブラリは本試験で知って最近作品に採用しています。

最終的には基礎の方は簡単にパスできるだけの下地や、今までWEBやらいろいろ触っていた経験があったので、そこまで苦労することなく理解することができました

試験対策について

試験対策としては、公式サイトで紹介されている分厚い参考書を5周程読み込みました。
最初はテスト辺りはまるで理解できませんでしたが、何回か読んでみると余裕が出てきて理解できるようになります。あとはまぁ実際にPythonを動かすのが手っ取り早いですね。
また、書籍の読み込みと並行して公式サイトにリンクのある模擬試験を行い、10連続合格を挑戦の目安としました。

ちなみに、模擬試験で検索すると下記2件がヒットするので、それらの内容と実際の試験の雰囲気との差異について書いておこうと思います。


公式サイトからもリンクの貼ってある模擬試験サイト。
ほぼ本試験と同じ感覚で受けることができ、問題の雰囲気も試験に近くなっているのでお勧め
ただし、ランダムで40問出てくるが、問題そのものが50問くらいしかないのではないかと思うほど2回目以降はダブる。
2回目以降はだんだん覚えてくるので、5回くらいで満点が当たり前になる。


初級、中級、上級の三段階の問題が用意されているサイト。
問題はこの3種類固定なので何回かやると覚えてしまう。
また、内容が高度で難しく本試験の雰囲気とかなり違うので、こっちを本気にするとかなり身構えてしまうことになる。
具体的には問題のコードが長かったり、明らかにメモ用紙が無いと解けないような問題が出てくるが、本試験ではメモ用紙は持ち込み禁止なので、そういうレベルの複雑なコードは出ないと考えてよい。
やっておいて損はないが、日本語的引っ掛けのような問題もあるので個人的にはあまり好きではない。


Pythonを使って作ったものの紹介

このセクションでは私がPythonを用いて作ったツールを紹介します。
Pythonを使ってどんなことができるのか、少しでも体感いただければと思います。
ここで紹介しているものは全てソースコードを入手することが可能です。

こちらは動画を入力すると、ナレーションを読み上げソフトによる音声に全自動で吹き替えるツールです。
AIを使った音声認識や動画の処理などを行うライブラリがある、Pythonだからこそ、簡単に実現できた内容です。


こちらはLINEのbotとDiscordのbotを作成して連携してみたという内容です。
Discordのbotはサードパーティ製ライブラリが存在しており、かなり簡単に作ることができます。LINEの方は自分でリクエストをする必要がありますが、この試験で要求されるインターネットのデータを扱う知識があれば問題なく行うことができるでしょう。


画像加工用のサードパーティー製ライブラリを使用して作った画像加工アプリです。参考書の中で取り上げられているライブラリではありますが、試験範囲外です。しかし、このようなことが簡単にできるので、学ぶ価値はあります。


こちらは外部のプログラムを起動するのがメインの内容です。
具体的にはサブプロセスライブラリを利用し、ゲームのサーバーを稼働させるというのが主な内容です。
Pythonを使ってサーバー管理ツールを自作することができることがわかると思います。


サーバー立てる人はポート開放なんてしたことあるんじゃないでしょうか。
実はPythonを使ってポート開放の自動化をすることができてしまいます。


生成AIと組み合わせて情報収集と分析の全自動化
Pythonを使ったWebスクレイピングと生成AIの組み合わせで自作の情報分析システムを構築しています。


PythonにはAndroidアプリを作るライブラリもあります。
この内容ではスマホで指定したフォルダの中身をサーバーにhttpを使ってバックアップするアプリを作成しています。


画像生成AIとDiscordのbotを組み合わせて、リアルタイムに結果を確認できるシステムです。
画像加工ライブラリやDiscordのライブラリサブ、プロセス、ライブラリーなど幅広いライブラリがあるからこそ、様々なアイディアを実現することができます。


プログラムの中で情報をログに書き出す時、チャットアプリのボットアカウントから出力できるようにしてみたというものです。loggingライブラリの存在を知ってから制作したものです。
オリジナルのハンドラーを作成し、ライブラリに統合しています。


Pythonの仮想環境に関する内容です。こちらに関しては基礎の方で正式に勉強した時、きちんと取り組むべきだと判断し、本記事を書いています。
このおかげでデータを配布する時に環境構築が格段にやりやすくなりました。


まとめ

Python3エンジニア認定実践試験についてお話しさせていただきました。
受ける前はPython3とあるのでPython特化の内容なのかと思っていましたが、一部はソフトウェア全般に言える話でもあるので、Pythonを使っているのであれば挑戦してみても良いのではないかと思います。

いいなと思ったら応援しよう!

Rcat999 情報が役に立ったと思えば、僅かでも投げ銭していただけるとありがたいです。