現場PM「OTさん、参画ありがとうございます。早速なのですが、今回のプロジェクトでは先日お伝えしていたJavaではなくPythonで開発を行っていただくことになりました!」
「あ、ハイ…えっ!?」
みなさんこんにちは、OTです。
グロトムでは2024年4月現在、カリキュラム修了者を対象に月5,000円を上限に教材費を支給する制度をとっています。
私はこの制度を利用してまた1つ資格を取得しましたので、今回はその資格について、資格の概要と学習方法、得られる恩恵やコストパフォーマンスについてお伝えしていこうと思います。
今回ご紹介するのは表題の通り「Python3エンジニア認定基礎試験」です。
参画現場でJavaを使うと聞かされていたのですが、現場入りしてみたら非機能要件を満たさない(※)ということで急遽Pythonで実装を行うことになったので、設計フェーズの間に最低限の知識を包括的に身につけるべく1つの目標として資格取得をすることにしました。今回はその経験から、資格や試験概要について軽くご紹介いたします。
※AWS LambdaとJavaの相性があまり良くなく、画面からリクエストを送ってからレスポンスが返ってくるまでの時間がかかり過ぎてしまうということが調査でわかり、Pythonが採用されたという経緯でした。
目次
- はじめに
- 「食欲をそそってみようか」 Pythonとは?
- Python3 エンジニア認定基礎試験について
- 試験について
- この資格を保有すると?
- おしまいに
はじめに
「食欲をそそってみようか」 Pythonとは?
パイソン?ああ、流行りのWeb系のプログラミング言語ね。最近できたんでしょ?
と、思われている方は多いと思います。
確かにPythonはここ5年ほどで急激にその知名度を上げたノリに乗っているプログラミング言語です。プログラミング言語の人気度を示す指標として、オランダのTIOBE Software社が毎月発表している調査「TIOBE インデックス」によると、2018年頃から頭角を表し、2021年には1位を獲得しているとのことです。
参考記事:
そんなPythonですが、実はその起源は意外にも古く、かの有名なプログラミング言語「Java」のリリース(JDK1.0)が1996年であったのに対して、Pythonのver. 1.0は1994年(ベータ版である0.9は1991年)です。
最初はシステム管理者向けのスクリプト記述用として用いられていたものが、ここ近年ではデータサイエンスや機械学習等の分野で大きく注目を集め、今日ではバックエンド処理でも広く使われるようになりました。Javaと肩を並べるようになったのもこの辺りに所以がありそうですね。
Pythonは実際に記述をしてみるとよくわかりますが、非常に記述のしやすいプログラミング言語です。そして一見非常に読みやすくもあります。
「一見」、と書いたのには理由があります。というのも、PythonはJavaやCのように事前にあれこれと戻り値や型、引数等の宣言を行わなくとも構文として成立する甘いルールが引かれているため、複数人でコード管理を行うような場合(実際の開発プロジェクトの多くはそうなるでしょう)は厳密なコーディング規約を決めておかなければ、各プログラマの意図を正確に汲むことが難しくなってしまうというデメリットを孕んでいるからです。(これは筆者の経験談です)
そういう意味でいうとJavaやCのような静的型付け言語が開発現場で好まれて使用される理由も納得ができます。レビューや管理をする側からしてみたら、最初から規約がカッチリと決まっている言語で製造を行ってもらった方が余計な管理項目を増やさなくて済むという利点がありますから。
また、以下の記事にもまとめられていますが、その実行速度には良し悪しがあるようです。
端的に言ってしまえば、目的・用途によって採用するかどうかは慎重に、ということですね。
前述のとおり、今回はAWS Lambdaとの兼ね合いがあってPythonが採用されることとなったのですが、冒頭に書きましたように今回のプロジェクトではもともとJavaの使用を予定していた関係で、筆者を含め参画したエンジニアの誰もがPythonの知見を持っていないという異常事態に陥りました。
さあ大変!すぐにでもPythonの知識を吸収し技術力を高めなくては…
というわけで筆者は例によって資格学習で体系的に学んでみようと思い立ったわけです。
少し導入が長くなりましたが、今回の主題であるPython3エンジニア認定基礎試験について概要を見ていきましょう。
Python3 エンジニア認定基礎試験について
Python3エンジニア認定試験は、一般社団法人Pythonエンジニア育成推進教会が実施している国内唯一のPython認定試験です。2022年時は日経クロステックの調査にて「取得したいIT資格」で3位を獲得していたようです(当該記事は有料会員向けなのでリンクは貼れないのですが…)
試験区分は以下の3つです。
- Python3 エンジニア認定基礎試験
- 基礎文法を問う試験で、以下の2つを目指す場合でもまずは習得しておきたい登竜門。
- Python3エンジニア認定実践試験
- Pythonを実践的に使っていく上で重要な使用やライブラリの使い方を問う試験です。いわば認定基礎試験の上位互換。
- Python3エンジニア認定データ分析試験
- Pythonを使用したデータ分析の基礎や方法を問う試験で、基礎試験レベルの知識に基づいたデータ分析の手法等について出題されます。
試験について
試験概要
さて、試験概要は以下のようなものとなっております。
- 試験名: Python 3 エンジニア認定基礎試験
- 問題数: 40問
- 出題形式: 選択式
- 試験方式: コンピューター上で実施するCBT(Computer Based Testing)方式
- 試験時間: 65分
- 合格ライン: 70%
- 受験費用: 11,000円(税込)
出題範囲はPythonの基本情報から、基礎文法、モジュールやクラスといった概念、エラーと例外処理について、標準ライブラリ等、実際にPythonを利用して開発を行っていく上で必要不可欠な知識についてのものとなっております。
試験対策
では、実際どのように学習をしていくのが良いかですが、私が資格取得までに使用した教材やサービスは以下となっております。
1. Pythonチュートリアル 第4版
こちらは言わずもがな公式のドキュメント、「Python チュートリアル」を書式化したもので、O’REILLY Japanから出版されています。しかし、日本語訳のサイトもありますので無理に書籍を買う必要はないかもしれません。翻訳についてまあ、ニュアンスで掴んでください。私は書籍の翻訳が体に合わず途中で読むのを放棄してしまったのですが…
業務で実際にPythonを利用している今だからこそ読み返してみると大切なことが再発見できたりします。
2. 徹底攻略Python 3 エンジニア認定[基礎試験]問題集
こちらは公式の試験対策問題集ですね。例によってインプレスさんの出版です。
後述する模擬試験と比較しても一番本番試験に難易度が近かったという印象です。Pythonチュートリアルを読み進めるのが大変だという筆者のようなタイプの方はこちらから入ってみるのも良いかもしれません。付録として模試もついているので復習としても使用するにも申し分ない造りとなっております。おすすめです。
3. 認定模擬試験(PRIME STUDY)
こちらは公式認定の模擬試験サイトです。本番同様試験時間60分の中で40問の問題を解いてゆく方式です。まだCBT方式に慣れていない方はこちらで実際にどんな雰囲気なのかを掴んでいただいても良いかもしれません。ただし、本番試験と比較しても難易度が高く、もしかすると自信を失うことになるかもしれません。逆に、この模擬試験で満点に近い点数が取れるようであれば本番は余裕と言っても差し支えないでしょう。
4. ExamApp(一問一答サイト)
こちらは萩原涼介様という方が個人で運営されている一問一答形式のアプリケーションです。個人制作ながら非常によくできており、問題の難易度も初級・中級・上級と選ぶことができます。サクッと隙間時間に学習がしたい場合、自身の弱点を洗い出しピンポイントですぐに復習をしたい場合に非常に有用です。ご本人の合格体験記も掲載されているのでそちらも大いに参考になることでしょう。
受験するには?
ここまで試験概要について学んできましたが、実際に試験を受けるにはどうすれば良いかについてもご紹介します。
Python 3 エンジニア認定基礎試験を受ける方法としては基本的に試験会場の受験のみとなっているようです。OracleのピアソンVUEのようにオンラインで受けることはできなさそうですね。
試験会場は先ほど提示したオデッセイコミュニケーションズのサイトから検索することができます。あとは各試験会場の運営団体の案内に従って受験手続きを行うこととなります。
試験会場検索ページはコチラ
どうも支払方法等は各試験会場ごとにバラバラな様ですね。
今回は銀行支払いのみ対応で、試験実施日の3日前までに支払い完了させる必要がありました。
試験時間は空きがあれば自由に選択することが可能です。また、事前にOdesseyのIDを作成しておく必要がありますのでご注意ください。
詳細設計書を書いている途中からデスマーチが始まったのでなかなか学習する時間が取れない中、なんとか学習時間を捻出し、2024年2月4日に受験をすることにしました。
ざっとこれまでやったことを振り返ってみましょう。
- 2023年10月中旬
- Java Bronzeの取得が完了したのでPythonチュートリアルを読み始める
- 2023年10月下旬
- 日本語訳にアレルギー反応を覚え読み進めるのを中断。公式問題集を始める
- 2023年11月
- プロジェクトが忙しくなり、学習時間が取れなくなり始める
- 2023年12月
- プロジェクトが半デスマーチ状態に。週末の(業務外の)わずかな時間を使って学習を継続
- 2024年1月
- 新型コロナウィルスに罹患し無事死亡。実際にPythonでの開発がスタートするもプロジェクトが完全にデスマーチ状態に。それでもなんとか公式問題集を終え2週目も完了させる。
- 2024年2月2日
- 認定模試に挑むも正答率51%!大爆死を予感し弱点箇所の対策に乗り出す
- 2024年2月3日
- 2024年2月4日
試験実施の流れ
試験当日はこれまでのテスト開始の15分前に会場に集合し、受付を済ませて待機します。
おそらく、今回自分が受けた会場特有の取り決めだとは思いますが、実際の試験室の中に1人1人呼ばれて試験前の説明をされ、受験者ごとに試験を開始するような形式でした。
CBT方式の試験を受けたことのある方ならばお馴染みの仕様だとは思いますが、試験中はあとで確認したい問題にチェックマークをつけておくと、あとで一覧からすぐに閲覧・確認ができますので、あまり自信がもてなかった問題、回答に時間がかかりそうで後回しにせざるを得なかった問題等、ご自身の回答状況に応じて利用できる点はありがたいですね。
さて、では問題を始めましょうか。
…ふむ、ん?
うんうん、順調順調。
としばらく問題を進めていたところ…
「ガタッ(机に肘が強く当たる音)」
「トントントントン…(貧乏ゆすりの音)」
「ボリボリボリ…(背中や頭を掻く音)」
と、途中から前の席に座った人物がまあまあ賑やかな人で集中力がいったんリセットされてしまいました。
(ちッ…静かに集中できる環境が何よりも大事な試験会場でなんて空気の読めない奴…)
と心の中で舌打ちし、中指立てながらもなんとか問題を解き進めていたのですが…
「スッ…(席を立つ音)」
(なにッ!?)
まさかの自分と同じタイミングで試験を始めた隣の方が試験を終え退席。試験開始からわずか20分程度の出来事でした。
(負けてられん…!)
無駄な競争心が心に芽生えつつ、その後も自身のペースを乱さない様慎重に試験を進めていきました。
−試験開始から35分経過
ここまで大きくつまずいた問題もなし。
この時、やはり認定模擬試験よりも公式問題集の方が本番試験に近い難易度であったと確信。模擬試験で半分の正答率であったことや、以前受験したJavaの試験に比べればその難易度は簡単だったと思います。
試験開始から40分で見直しも終えて終了ボタンをクリック。
結果が表示される緊張の一瞬。
…95点…?(950/1000)
終わってみれば楽勝だった…?
いや、それよりも…
Javaの試験が意地悪すぎた…と言えるかもしれません。
非常に素直で答えやすい出題でまとまっていたと思います。
(やれコンパイルエラーだのなんだのというひっかけの選択肢はまずありませんし)
試験結果はプリントアウトされ、帰り際にもらうことができます。
合格証にいたっては配送となっており、4週間程度待たなければなりません。(本当に1ヶ月近く待たされました)
試験合格者であれば、照会サイトにて検索をかけると一応合格証明を表示させることはできます。こちらは配送で届くものとは別となっておりますので、もし会社や学校に届け出る必要のある方は、どちらが有効なのか確認しておくと良いでしょう。
この資格を保有すると?
それでは、この資格を保有するメリットはどうでしょう?
これまでのルポでもお伝えしているのと同様、この資格を保有しているだけではそんなに効果はないかと思います。入門用の資格というのは、それを保有しているだけでは案件の獲得や転職への優位性というものは働き辛いものです。
ですが、今回は初めてPythonで実装を行っていくにあたり、体系的に知識を得る必要がありました。いざ開発が始まってみると、同じタイミングで参画したベテランエンジニアを追抜きより可読性の高く柔軟なコードを書くことができていたと、開発工程が終わった今振り返ってみると思います。コードレビューでの指摘は殆どありませんでしたし(…ていうか殆どちゃんとした観点でみてもらっていないというのが正解かもしれませんが、それはまた別のお話…)
誰もPythonの知識がない中で始めた不安だらけの現場の中で、私に少しだけ勇気を与えてくれました。
当然、他の言語でバリバリコードを書いてきた諸先輩エンジニアには経験で勝てないことはたくさんあったかと思いましたが、知っていると知っていないとではキャッチアップの速度に断然の違いがあったと自負しています。
さて、就職や現場参画はひとまず置いておくとして、この資格はプログラミング言語をこれから学ぶ人、興味がある人にとってはお勧めできるものとなっております。前述の様に、まだまだPythonは人気な言語としてしばらくなんちゃらランキングの上位に君臨するかと思いますので、挑戦するのに遅すぎるということはないでしょう。実際、実務での開発初心者である筆者でも納品できる程度の品質のコードを記述することができましたので、そのあたりは保証いたします。
既にPythonを使用している方にとっても意外な発見があるかもしれません。
中にはコーディング規約に関する出題があったりしますので、チーム開発でPythonを採用されている方にもおすすめと言えましょう。釈迦に説法ではありますけどね。
また、上位2つの資格取得を目指している方にも基礎固めとして非常に有用なのではないでしょうか。
おしまいに
以上、OTの資格取得レポでした。
再掲となりますが、株式会社グロトムでは2024年4月現在、カリキュラム修了者を対象に月最大5,000円の教材費を支給する制度をとっています。せっかくなのでいろんな教材を購入し、身につけた知識や技術をみなさんで是非共有してみてください。
先にも少し触れましたが、つい最近現場の開発工程が終了しました。思い返してみると地獄のような環境でした。もともとプログラマーを目指して業界入りした自分にとって、コードを書いている時間は非常に楽しくあっという間でしたが、テックリーダの不在やザルレビュー、バラバラな設計に実装、開発後期にも関わらずポンとひっくり返る要件…何もかもがめちゃくちゃなデスマーチの中で、よくぞ走り抜いたものです。
これから誰かの書いたコードを読まなければならないかと思うと少し憂鬱ですが、これも修行。次のテスト工程を経てさらに成長できることを期待して頑張っていきましょう。
次回は初めての基本設計〜開発工程での振り返り…または、現在学習中のAWSについてまとめていきたいですね。暇があればですれども…
それではまたどこかで。素敵なエンジニアライフを!
※このコラムはグロトム入社後のエンジニアのみなさんに役に立ちそうで立たない、ちょっと役に立つかもしれない情報をお届けする不定期通信です。