見出し画像

40代から始めるプログラミング⑫~第一部完

1.合格しました


「Python3エンジニア認定 [基礎試験]」なんとか合格しました。
久しぶりのCBTの試験(およそ10年ぶり位でしょうか)なので、試験終了⇒結果発表の間髪を入れないハイスピード展開で、結果見る時慣れていないので心臓がバクバク言ってました。そういえば、と思い出しましたが、春に受けたITサービスマネージャ試験は未だ結果は出ず、来月発表です。こっちの速度に慣れてたんですが、なげーって。やっぱりもうちっと早く公表せいよ。論文読み込むのは時間かかると思うけどさ!
 思えば、一か月前に思い立って勉強開始しましたが、肝心のプログラミングスキルは、と言うと、まあ、うん、実務に耐え得るものではないっすよね、やっぱり。
 でも、全くのゼロではなく、少なくとも文法基礎は分かるようになりましたし、モジュールや変数などの言葉も前よりも少し身に染みて分かります。少なくとも私の英語のスキルのように、書くことはできずとも読むことは少しできるようになった訳です。情報処理安全確保支援士の試験では午後Ⅰにプログラミングが来たら「捨てだな」、と思っていましたがもしかしたらいけるかも。あ、でもバッファオーバーフローみたいなメモリがどうのみたいな悪いことは基礎程度ではできなそうですね。
 やはり、まだまだ、道半ばということでしょう。今後とも、この技術が腐らぬよう、一日一回は折を見て簡単なコード書くように意識づけて定着させるのみです。

2.振り返り

 さて、ここで一区切りつけるために、今回の「Python3エンジニア認定 [基礎試験]」についてをまとめます。私のように、参考書選定ミスって無駄なお金使わんように、です。皆さんお好きでしょう、タイパ、コスパの情報。
 では、頑張って「いかがでしたでしょうか構文」でこの試験について書き綴ろうと思います。

2.1 試験について

 まず、この試験は国家試験ではなくベンダー系と呼ばれる、主に社団法人が開催している試験です。このベンダー系は知名度や有用性がピンキリですが、マイクロソフト・オフィスの取り扱いを問われるMOSがヒエラルキー的には知名度ナンバー1でしょうか。で、この「Python3エンジニア認定」は他にPythonを謳っている試験はありません。これに関しては唯一無二と言えるので、ピンの方といえるでしょう。
 これをコードに表すとこんな感じです。

good試験 = []
for i in [MOS,Python3エンジニア認定,草むしり検定]:
if i == ピン:
good試験.append(i)

print(good試験)

となります。実行結果は皆さんの心の中にあります。頑張れちいかわ。
 この試験の概要がばっちり分かったところで、他の情報ソースに載っていない重要情報です。この試験は択一式に見せかけていますが、チェックボックスに複数回答させる問題があります。試験受けていて一番驚いたのがこの点です。回答ページがラジオボタンではなくなっていたので二度見しましたが、やっぱり問題文は「print関数の引数endの使い方を二つ選びなさい」、となっていました。しかも40問中唯一の複数回答という、巧妙な罠。あるあるの「誤っているものを選びなさい」の確認と共に三回見直しをしました。

2.2 勉強法について


 続いては、勉強法です。この試験ではさんざん愚痴りましたが『Python チュートリアル』という餓鬼パト顔負けの初見殺しコンテンツがメイン教材になります。すんな。私のようにガッチガチの初心者はまず、このチュートリアルのチュートリアルが必要となります。
 よって、この教本選びが最重要です。
 よく、Pythonは人気のプログラミング言語でライブラリや教材も豊富、みたいなこと言われますが、この豊富さが曲者です。マジで「初心者 Python」で調べるとすごい量の教材が出てきますが(この供給多寡をシステム監査みたいなどマイナー試験にも向けて欲しい)、実際触れてみるとレベルや文体が微妙に合わなかったりします。どうせ二週間くらいしか見ないので、図書館でいろんな本を借りてくるのも一つの方法と思います。私は偶然出会った『独学プログラマー』という本に大変お世話になりましたので、お勧めします。
 最初のメイン教材が揃ったら、とりあえず実行環境を作って操作です。
 一通り操作できるようになったら、チュートリアルに戻り、かつ公式の問題集を併用しインプット、アウトプットの繰り返しです。
 また、これに合わせて無料の模擬試験を実施します。複数ありますが、特にPRIME STUDYの模擬試験は必須です。難易度について詳細は後述しますが、公式の問題集が5くらいだったら、この模擬試験は7か8くらいあります。
 特に、例外処理に関しては執拗に出題されますが、本番試験でも同じくらい出ます。例外処理はあっち行って、こっち行ってをしますので問題にしやすい傾向があると思われます。本番でも結構出ましたし。この模擬試験のおかげで「KUSANAGIって誰やねん」と思いつつも、なんとか流れが把握できました。
 勉強は、以上の、チュートリアル、公式問題集、模擬試験を繰り返しです。特に教本は読んだら書く、を実施です。動きが分かると直感的に理解できるようになります。私は、クラスと例外処理を書くのめんどくさくて後回しにしたので、実際に問題解く段階でけっこう躓きました。

2.3 難易度について

 さて、次は難易度です。難易度は、CBT試験の初級なのでそんなに難しくありません、っつっても暗記でなんとかなる記憶問題は割と少ないので、初心者にはハードル高いです。教科書から内容そのままで出るので、高度技術者試験よりかは低いんでしょうけど、いかんせんチュートリアルがなあ、という感じでわざわざモンティ・パイソンで例えなくても良いところで使うので、それが難易度の高さに悪い意味で寄与しています。例はもう少し分かりやすいコードにしろっつーの。
 という訳で、この教科書の難しさを10とすると、先述の難易度は、そのままこのチュートリアルの理解度に置き換えても良いと思います。およそ半分理解していれば大丈夫です。この理解に、模擬試験や公式問題集で得た出題傾向のエッセンスを継ぎ足していけば、合格ラインに達すると言えるでしょう。

 いやあ、一か月長かったー。最初に同じ姿勢でキーボード打ちまくってたから腰やっちゃったことが昨日のことのように思い出されます。さて、次は自社製品がLINUX利用の為、LPIC101,102を目指そうと思います。 
 いかがでしたでしょうか?
 今後の活躍に期待ですね!

3.5章以降の出題傾向

 最後に、4章まではインタープリタ利用で結構分かりやすいんですが、5章以降の、モジュールインポートとか実行しにくいので、出題傾向のみをまとめてみました。

5.関数 
スコープ 位置引数・キーワード引数 引数のデフォルト値 アンパックという要素を位置引数に展開する リスト・タプルは*、ディクショナリは**

6.その他のコレクションの操作
リスト[]、タプル()、ディクショナリ{}.append
set重複する要素を持たない、.add() -|&^ in演算子で真偽
pop(),pop(0),append
>>>print(x: for x**3 in (1,3,6)) -> {1:1,3:27,6:216}

7.モジュール
from x import y * ->
as で変名インポート
if __name__ == "__main__" の意味、メインモジュールでない場合実行しない
ディレクトリの相対位置の操作.(カレントディレクトリ)か..(一個上)

8.ファイル入出力
r読み込み、r+読書、w新規書込、bはバイナリモードなので単独不可
読み込みは.read()、書き込みは.write()、json.dumps()でjson形式で出力json.load()で読み込み
with で自動で閉じる処理

9.例外処理
try - except文で例外時の処理
raiseで明示的に例外発生
finallyは最後に必ず処理

10.クラスとオブジェクトの操作
インスタンス変数とメソッドの定義、特に変数はメソッドと違って初期化してselfに割当ててself.変数の形を取る決まりがある。クラスのインスタンスを表すもの
クラス変数とインスタンス変数の違い
インスタンス変数とローカル変数の影響範囲
メソッド内にインスタンス変数と同名の変数がある場合、別の変数として扱う

11.標準ライブラリ
コマンドライン引数の確認。sys.argvでリスト表示

12.仮想環境
パッケージ管理のpip
記憶問題多い



この記事が気に入ったらサポートをしてみませんか?