一般社団法人Pythonエンジニア育成推進協会(以下、当協会)の顧問理事の寺田学です。 私は試験の問題策定とコミュニティ連携を行う立場です。前回はコミュニティについてご紹介しました。 今回は2021年9月1日よりPython3エンジニア認定基礎試験の主教材が、「Pythonチュートリアル 第3版」から「Pythonチュートリアル 第4版」に切り替わったことを取り上げたいと思います。

  • 一般社団法人Pythonエンジニア育成推進協会 顧問理事 寺田学氏

    著者:寺田学
    一般社団法人Pythonエンジニア育成推進協会 顧問理事

Pythonのバージョンの違いは大きな影響がないことがほとんど

本題に入る前に、Pythonのバージョンの考え方とチュートリアルの前提についてお話しします。 まずPythonのバージョンについてですが、Pythonは1年おきにバージョンが0.1上がる仕組みになっており、現在の最新は3.9で、今年の10月には3.10が出る予定になっています。 また、Pythonはメジャーバージョン(現在は3)内での下位互換性を重視した新しい設計になっています。 2で動いているプログラムを3に対応するとなると一苦労ですが、3を使用して作られているのであれば基本的に下位互換性が保たれているため、変更が必要になっても軽微な修正でとどめられます。また、ライブラリが動かなくなっても、ライブラリ自体のバージョンアップを待てばいいことがほとんどなので、バージョンアップがプログラムに与える影響をさほど気にする必要はありません。

Pythonチュートリアルの基本的な考え方は変わらない

次は、チュートリアルについてです。 チュートリアルとはPython公式ドキュメントのことで、他の言語を使用していた人にPythonがどういったものなのかを知ってもらうために作成されたものです。 オライリー・ジャパン社から発刊されているチュートリアルは、Python公式ドキュメントを日本語に翻訳し書籍として販売しているもので、最新は2021年2月に発刊された第4版です。第3版はPythonのバージョン3.5を対象にした公式ドキュメントを翻訳したものでしたが、第4版では3.9を対象にしています。

第3版と第4版で内容に大きな変化があったかといえばそうではなく、対象が3.5から3.9になったことによる追加機能などの説明が多少増えたことと、記述に多少の変更がある程度で、基礎的な内容に変更はありません。そのため、第3版で学習したことが無駄になることもありません。 もちろん、第4版で追加されている部分はありますので、復習という意味で第4版も一読しておいた方が今後のためになりますし、これから学習する人なら第4版から始めた方がいいと思います。

基礎試験の主教材が第4版へ、基礎試験への影響はほとんどない

当協会の「Python3エンジニア認定基礎試験」はこれまで、チュートリアル第3版を主教材としてきましたが、2021年9月からは主教材を第4版に変更しました。それに伴い、試験内容についても多少見直しを行いました。 とはいっても前述のとおり、第3版と第4版では基本的な部分の変更はありませんので、第3版で学習いただいても合否に大きな影響はありません。出題される範囲が第4版にしか書かれていない内容ばかりということはなく、そう神経質に「第4版でなくては!」となる必要はありません。 先にも伝えた通り、第3版で学んだことが失われ、不要な知識になることはないので、第3版でも第4版でも、継続して勉強してくれた人には今までと同じように合格への道が開けています。その点は安心していただければと思います。

チュートリアルという教科書との付き合い方

主教材であるチュートリアルは、いわゆる高校生時代の教科書と同じような存在で、プログラムの基本を一度でも習った人でない限り、授業も無しに理解できる人はほとんどいませんし、だれもが理解できるようには書かれていません。これだけを使って独学で理解するのは相当な労力だと思いますし、挫折する人が出てきても不思議ではありません。 それはデータ分析試験の主教材も同様で、こちらも丁寧に書かれているものではありません。 ある程度、データ分析を雰囲気でも理解している人や、他の言語で経験がある人、Pythonがそれなりにできる人であれば問題はないだろうという内容になっています。

はじめてプログラミングやデータ分析の世界に入ってみようという人はまず、認定スクールなどでトレーニングを受けるか、丁寧に解説されている本を買うことから始めるのがいいと思います。 解説書は書店に行けば多くのものがありますので選ぶのは難しいと思いますが、初心者向けの中から自分に合うものを探してみるのもいいですし、あえて背伸びして難しい本や、具体的に何かを作るような本でもいいでしょう。 最初から理解できなくても、詳しく書いてある本であれば、その中のどこかでピンとくるものがあるかもしれません。そこからチュートリアルに戻ったときに、その内容が理解できるようになっている可能性もあります。

Pythonは基本があればバージョンアップも問題ないが、予約語の追加には要注意

Pythonは一度基礎を覚え、ライブラリやインストールを含めた基本的な動作も身につけてしまえば、自分にとって新しい機能が重要なものでない限り、神経質になってまで追いかける必要はありません。 また、バージョンごとのサポートは5年と長期間にわたりますので、現在使用しているバージョンを無理してまで新しいバージョンに上げる必要もありません。

ただ、注意しなくてはならないのがまれに増える予約語(キーワード)です。 実例としてバージョン3.7に上がったときに、予約語にasyncとawaitが追加されました。 以前であればこの2つは予約語ではありませんでしたので変数として使用できました。ですが、追加されたことで変数名や引数名として使用できなくなってしまいましたので、バージョンアップを行うと文法エラーを起こし、プログラムやライブラリが動作しなくなります。

10月に公開される3.10ではmatch文が追加されます。 ただしmatchを変数名に使っている場面は多い可能性が高いため、互換性を意識してか厳密な予約語とはしていないようですが、ソフトキーワードの対象には入っていますので動作に注意しましょう。 Pythonの開発チームは、本来であればmatch文をキーワードにしてしまえば開発が楽だったところを、みんなのことを考え、頑張ってソフトキーワードに落ち着かせたのだと思います。

キーワードの追加は様々な場所に痛みや大きな論争を生みます。それは追加によって影響を生む範囲が広いからですが、だからこそ大変なことで、めったに行われるものではありません。 とはいえ追加される可能性はありますので確認を忘れず、必要に応じた変更を行いましょう。またライブラリに影響が出ることもありますので、動かなくなったら慌てずライブラリのバージョンアップを待ちましょう。

さいごに

今回、認定試験の主教材が第4版になったことで、どちらの版で勉強すればいいのか悩まれた方もいたと思います。 「Python3エンジニア認定基礎試験」で問われるのはPythonの基本的な考え方や文法であって、新しい機能を追いかけないと試験に合格できないというものではありません。あくまでPythonの基礎を学ぶことを通じて、長くPythonに携わってもらうために行われています。 新しい機能の中には便利なものがありますので、それを使いこなすのも構いませんが、その前に基本的な考え方や文法を学ぶべきですし、学んでほしいと考えています。

初心者の方はまずPythonの基本である、リスト、タプル、辞書といったデータ型を覚えましょう。これを使い分けられるようになった後は、if文やfor文で処理をする、関数でまとめてみる、例外処理を学ぶ、組み込み関数を覚える、ライブラリをインストールしてみるといった段階を追っていきましょう。 そうした知識や経験を積んでいくことで、できることが増えますし、どうすればできるのかを考えられるようになります。 まずは継続して学習を続けていっていただければと思います。

当協会の最新情報は公式サイトか、公式Facebookページでご覧いただけます。FacebookページではPythonに関連したニュースもお知らせしていますので、ぜひフォローしてみてください。また、YouTubeチャンネル「Pythonエンジニア認定試験」では、私が試験概要や学習のコツをお話ししたものや、合格した方のコメント動画を公開しています。こちらもぜひご覧ください。

[PR]提供:Pythonエンジニア育成推進協会