最近非常に忙しくてPython関係の記事を書くことができていませんでした。
今回は、いよいよPython3エンジニア認定基礎試験の勉強方法を書いてみます。
とりあえず、初日に合格しました
Python3エンジニア認定基礎試験(以下、Python試験)は2017年6月9日に開始された試験です。
私は(とりあえず)開始日に合格しました。その辺の体験記については以下の記事を読んでください。
今回の記事は、私が実際に試験を受験した経験を踏まえて、効率的だろうと思われる勉強方法を紹介するものです。
満点を取るための勉強方法ではありません。とりあえず試験に早く合格したい人向けです。
Disclaimer
この記事(ブログを通して)には、試験の具体的な問題は一切記載していません。
あくまでも公式ページが公開している内容を元に、効率が良いと思われる勉強方法を、実際に合格した筆者が紹介しているものです。
まず、試験範囲を理解する
最も重要な作業です。所要時間は1時間くらいが目安です。
これはPython試験に限った話ではなく、CCIEやVCPなどのIT資格の勉強全般に言えることです。
試験範囲に出るものを確認することも重要ですが、「試験範囲に出ないもの」の把握はさらに重要です。
試験範囲に出ないものを勉強しても、資格に合格する目的だけを考えると、無意味です。
上記は公式サイトのPython試験の範囲が記載されているページです。
幸いにも、この試験は試験範囲を公開しています。
しかも、教材の章ごとに、出題率まで書いてくれています。
教材はオライリー・ジャパン「Pythonチュートリアル 第3版」です。つまり、この書籍を完全に理解できたら、合格できます。
「じゃあ、この教材をひたすら勉強したらいいじゃないか!?」と言われるかもしれません。基本的にはその通りです。でも、僕が実際に読んだ感想としては「この書籍をいきなり読むのは、場合によっては非効率」と感じました。その辺も後述します。
あなたの現時点の経験値の確認
Python試験の合格までにかかる時間は、その人のプログラミング経験に大きく依存します。
Pythonを数年間実務でこなしている人
4時間程度で合格できると思います。
上記の「Pythonチュートリアル 第3版」をパラパラと流し読みをし、Python特有の記述の仕方や標準ライブラリ付近を復習すればOKでしょう。
Python以外のプログラミング言語を数年間実務でこなしている人
8時間程度で合格できると思います。
上記の「Pythonチュートリアル 第3版」をパラパラと流し読みをし、Python特有の記述の仕方を重点的に勉強しましょう。
Pythonは記述や配列の使い方、For文の記述方法などに若干癖がありますので、その辺をメインに勉強すればOKです。
プログラミングは畑違いだが、IT業界に従事している人
今回の記事の読者を想定しています。
まず、安心してください。この試験はプログラミング初心者の人でも問題なく合格できます。
でも、私の推測ですが、最低でも40時間程度はかかると思った方がいいでしょう。
残念ながら、私は上の2つ目のグループに属します。つまり「Pythonはそれほど詳しくないけど、他の言語で数年間仕事していた」ケースです。私の場合はJavaとCでした。
でも私は今回の勉強をするにあたって「プログラミングの初心者だったら、どうやって勉強するべきか」を考えながら勉強していました。なので、その辺を理解した上で、今回の勉強方法を書いているつもりです。
いよいよ、勉強方法
では、早速勉強方法を紹介します。
「Pythonチュートリアル 第3版」は後回し
このPython試験自体は「Pythonチュートリアル 第3版」から出題されるので、「Pythonチュートリアル 第3版」の読み込みは必須です。なので「Pythonチュートリアル 第3版」は遅かれ早かれ購入が必要となります。
私はいつも「IT資格の学習にはKindle書籍が最適」と言ってるのですが、残念ながらKindleで上記の書籍は発売されていないようです。ただ、オライリーの公式サイトでPDF形式で購入できるので、こちらで購入して好きな電子書籍リーダーで勉強するのが良いでしょう。
普通の書籍で購入したい人は、普通にアマゾンで変えます。
しかし、敢えて言います。
プログラミングが初めての人、初心者の人は「Pythonチュートリアル 第3版」は後回しにするべきです。
理由は以下のとおり。
難しすぎる
プログラミング初心者には「Pythonチュートリアル 第3版」は難易度が高い書籍です。冒頭に「初心者でも・・・」と書いていますが、個人的には嘘だと思いました。
プログラミング初心者は「コードは基本的に上から下に流れて・・・」とか「変数とは?宣言とは?」とか、プログラミングの基本的な概念が頭に入っていません。
にもかかわらず「関数は」とか「ループの記述」とか、いきなり出てくる単語に強いストレスを覚えるはずです。「プログラミングって、やっぱり難しい・・・」と吐き気を感じるかもしれません。
プログラミングは難しくありません。私は文系の出です。大学ではプログラミングなんてしてませんでしたし、数学に強いわけでもありません。でも、プログラムはできます。
重要なのは、わかりやすい教材で基礎を覚えることです。いきなり「Pythonチュートリアル 第3版」を読んでも、体が拒否反応を起こすだけです。
誤字が多い
「Pythonチュートリアル 第3版」は元々は英語だったドキュメントを日本語訳していることもあり、誤字を数箇所見つけました。例えば・・・
- 24ページ「ビルトイン関数のrenge()が便利だ」
range()の間違い - 43ページ「last-in,fast-out」
first-outの間違い - 91ページ「result is 2.0」
これは出力されないはず
いずれも「明らかに誤字だとわかるモノ」だと感じたかもしれません。
それは、プログラミングをそれなりに知ってる人の感じ方です。プログラミングに詳しくない人は「うーん、これは誤字だと思うけど・・・もしかしたら自分の知らない何かでこの結果になってるのかもしれない・・・」と思うでしょう。
初心者は「先が見えない暗闇を走っている」感覚で勉強するものです。そこに、他の不確定要素が入ってきても不安になるだけです。
まずはPythonの基礎を学ぶ
よって「Pythonチュートリアル 第3版」をはじめに読むのはお勧めしません。疑問がどんどん増えて、それを調べる時間を逆に取られてしまって、手戻りの時間がオーバーヘッドになるからです。
まずは、基礎を学びましょう。
個人的には以下の書籍がお勧めです。
>>プログラミング超初心者が初心者になるためのPython入門(1) セットアップ・文字列・数値編
>>プログラミング超初心者が初心者になるためのPython入門(2) リスト・タプル・ディクショナリ・if・for ループ編
>>プログラミング超初心者が初心者になるためのPython入門(3) 関数・クラス編
このシリーズをとりあえず最後まで読みきることをお勧めします。
理由は以下のとおり
無料で読める
厳密には「Kindle Unlimited」というサービスに入っていたら、読み放題の対象となっています。
もしKindle Unlimitedにすでに加入している場合は、全く追加料金不要でPythonの基礎を理解できます。
個人的には、エンジニアであればKindle Unlimitedに加入することを強くオススメします。様々な技術書が読み放題で読めます。また、英語の勉強に有用な書籍も沢山読み放題で読めるので、勉強コストを大幅に抑えることができます。
ちなみに上記で紹介した書籍は、Kindle Unlimitedではなくても、一般的な技術書と比べると安いです。
3冊に分かれている
勉強の時間配分を調整できます。
また、上記のKindle Unlimitedに入っていない場合は購入することになると思いますが、1冊だけ買ってPython試験に挑むかの確認をすることもできます。自分に敷居が高いと思ったら諦めれば良い。そしたら残りの2冊は買わないで済みます。
初心者にも非常にわかりやすい
初心者の視点で読んでみても、非常に理解しやすいと感じました。
例えば、初心者にとっては「オブジェクト」の概念が非常に難しい。メモリの配置とかポインタとか、そんなの概念的に説明されてもチンプンカンプンです。
この書籍は図や絵も多用して、抽象的な要素をわかりやすく説明しています。
個人的にはITの学習に「図や絵」は必要不可欠だと思っています。抽象的な概念を文字で説明されても、初心者には絶対にわかりません。
まとめ
この書籍を一通り読むのに20時間はかかると思います。
重要なのは、実際にPythonが利用できる環境を整えて、コードを書いてみることです。コードを書いた方が、言ってることがわかりますし、頭の中に経験値として積み重なります。
「Pythonチュートリアル 第3版」を一通り読む(14章まで)
ようやく「Pythonチュートリアル 第3版」を読み始めます。
上記の書籍を読んだ後だと、言ってることがわかるはずです。レベルが上がっている証拠です。レベルが上がってると感じれることも重要です。モチベーションアップの源泉ですね!
まずは14章まで、一通り読んでください。想定学習時間は10時間です。
14章以降は、読む必要がないです。出題範囲に含まれていないからです。
(10時間経過)
・・・はい、読みましたか?それなりに理解しましたか?この時点で全てを一字一句理解する必要はありません。でも「それなりに言ってることは理解できる」レベルには達しておいてください。
(重要)「Pythonチュートリアル 第3版」の出題範囲ごとに勉強する
さて、いよいよPython試験を「効率的に」合格するために重要なポイントの説明です。
「Pythonチュートリアル 第3版」の二週目です。二週目で効率的に重要なポイントを記憶・復習するのが、Python資格に合格するキモとなります。
上記で書いた通り、Python試験の出題範囲は「Pythonチュートリアル 第3版」と決まっています。
さらに、章ごとに出題率が決まっています。
つまり、効率的に合格するには「出題率が高い章を重点的に勉強する」のが大事です。
それを踏まえて、章ごとに私の勉強した感想を紹介します。
1章:食欲をそそってみようか
勉強するべきです。
出題数は「1」ですが、そもそもページ数が少ないので、把握すべき要点も少ない。時間はかからないはずです。
取りこぼしがないように、ポイントを把握しておきましょう。
2章:Pythonインタープリタの使い方
勉強するべきです。
出題数は「1」ですが、結局インタプリタの理解ができていないと、後続の勉強にも支障をきたします。
後続を勉強すると、結局この章も理解できているという「あえて気にして勉強する」箇所でもないはずです。
3章:気楽な入門編
勉強するべきです。
出題数が「6」と非常に多いのが1つ目の理由。
変数の代入・Python特有の演算の使い方など、「YesかNoか」の内容が多くて覚えやすい(覚えてしまいば良い)内容であることが2つ目の理由。
時間をかけてでも理解しましょう。
4章:制御構造ツール
勉強するべきです。
出題数が「9」と最も多い。ここが理解できていなければ、Python試験の合格はほぼ不可能。
内容も上記の書籍を読んでいたらすんなり理解できるはず。あとは応用だけのはず。
多分、ここがプログラミング言語そのものを理解する上でも山場かと。
逆にいうと、ここを超えたら「半分くらいは勉強した」と思ってもいいです(試験に合格することを目標とした場合)
時間がかかる章です。
5章:データ構造
勉強するべきです。
出題数が「7」と非常に多い。
内容もPythonの基礎的な話が中心です。4章で疲れていると思いますが、あと一歩です。
6章:モジュール
優先度は低め。
出題数が「2」と少ないです。モジュールの理解は、業務で開発を行う上では必要不可欠なのですが、試験の合格を目標とした場合「学ぶことは非常に多いが、出題数が少ない」という非効率な章です。
7章:入出力
優先度は低め。
6章と同じ理由です。ページ数はそれなりに多いが、出題数が「1」と少ない。
業務ではめっちゃ使います。特に外部APIとのやりとりとかにJSONを使うと非常に便利・・・
8章:エラーと例外
勉強するべきです。
ページ数の割には出題数が「4」と、そこそこ多い。
内容もページ数の割には把握すべき要素が多くない。「エラーと例外」って聞くと「なんとなく難しそう!」って身構えるかもしれませんが、簡単です。
9章:クラス
最も優先度を下げても良い。
クラスの勉強は、実務では非常に非常に重要です。オブジェクト志向言語そのものの話なので。
でも、Python試験は基本を問う試験だからだと思いますが、クラス関係の出題率が「2」と非常に少ない。
「クラスの学習は重要だよ。でも、これは基礎試験だからそんなに問わないよ」という出題側のメッセージが聞こえてきそうです。
ページが非常に多いのに、出題数が少ないので、勉強の優先度を下げるべきです。
10章:標準ライブラリめぐり
勉強するべきです。
出題数が「4」と、そこそこ多い。
ページ数は多いのですが、記憶するだけの内容がほとんどです。
個人的には実機でライブラリの内容を書いてみて、結果を画面で見る。これを繰り返すことが、単純に書籍で覚えるよりも学習効率が上がると思います。
11章:標準ライブラリめぐり─PartII
優先度を下げても良い。
ページ数は多いのに出題数が「1」と少ない。
ここの内容を記憶する余裕があるのなら、10章の標準ライブラリをくまなく記憶しましょう。
12章:仮想環境とパッケージ
勉強しましょう。
出題数が「1」と少ないのですが、数ページだけしか読むことがありません。
学ぶべきポイントも数箇所だけです。
取りこぼさないようにしましょう。10分あれば1問ゲットです。
13章:次はなに?
出題数が「0」なので、一回読めば良いです。
14章:対話環境での入力行編集とヒストリ置換
勉強しましょう。
12章と同様、出題数が「1」と少ないのですが、数ページだけしか読むことがありません。
取りこぼさないように!
まとめ
プログラミング初心者の方でも、上記の流れで勉強すれば、40時間程度で合格できると思います。
効率を優先したら、クラスや入出力の章はすっ飛ばして、出題数が多いセクション・ページ数が少ないセクションを重点的に勉強しましょう。
コメント
Python3エンジニア認定基礎試験をこれから受験しようと思い、ネットを散策していたところ、こちらのサイトに辿りつきました。
どこから勉強したらいいのかわかりませんでしたが、本記事を読み、この方法なら自信をもって試験に臨めるなと思いました。
参考にさせて頂きます。
コメントありがとうございます!
参考になったみたいで良かったです。私のブログ継続の励みにもなります。
Python3試験は初心者にとっては簡単な試験ではありませんが、勉強したら絶対に合格できる試験です。
がんばってください!
(↑の9月6日のコメントをした者です。)
本日試験を受けてきたのですが、合格することができました!
こちらのページや合格された時の記事を何度も読ませていただき、モチベーションを維持することができたことで合格につながったのかなと思っています。
初めてのプログラミングで、なおかつ初試験だったのですごく不安だったのですが、結果資格を取得できてよかったです。
まだまだ初心者ではありますが、次の勉強を進めていき、pythonで仕事をすることを目標に頑張っていきます。
この度は本当にありがとうございました。またpython関係の記事があれば読ませていただきますね!
非エンジニアかつプラグラミング経験ゼロの者です。とある事情によりPython試験を受験することになり、本記事を大変参考にさせていただきました。
記載のある通りに勉強し、3週間ほどで無事に合格することができました!
非常に大きな力となりました。感謝してもしきれません。本当にありがとうございました。
おお!
お・め・で・と・う・ご・ざ・い・ま・す!
参考になったようでうれしいです!本当に嬉しいです!
[…] Python3エンジニア認定基礎試験の効率的な勉強方法! […]
[…] 3 エンジニア認定基礎試験 勉強方法は二つ目の記事でも引用されている Python3エンジニア認定基礎試験の効率的な勉強方法! […]
[…] CCIE TOZAIとITを楽しむブログ Python3エンジニア認定基礎試験の効率的… […]
[…] プログラミング言語自体が初めての方や、最短でこの試験に合格したいという方には、Python3エンジニア認定基礎試験の効率的な勉強方法!という記事が参考になると思います。 […]