はじめに
AIQVE ONE Advent Calendar 11日目を担当します、@kaesaruです。
12月に入って急に寒くなり、南国土佐の国出身としては毎日の通勤時間が辛い季節がやってきたなと震えています。
さて、私が所属しておりますAIQVE ONE株式会社では、独自の自動化ツールを各案件で導入し自動テストが盛んに行われております。
今回の記事では独学でちょろっとPython3を勉強している私が今年、実際の案件で初めてスクリプトを作成した際につまづいたことについて紹介させていただきます。
■自己紹介
まず初めに、弊社独自の自動化ツールはPython3を使って動かしていくのですが、
私がどの程度のレベルの自動化スクリプトを作成できるのか、どのようにしてPython3を勉強しているのか、簡単にご説明させてください。
▼kaesaruのできること
・for文/While文を使ったループ
・if文を使った分岐の作成
・関数を作ってなんやかんやする
(・うっすらとしたリスト内包表記の知識)
▼kaesaruの勉強方法
・プログラミング学習サイトにて勉強(基本無課金)
・Qiita等で自分が作りたいスクリプトに近い投稿内容を探し、参考にしながら実際に作ってみる
このような感じで、独学でPython3をちょろっとかじっているほんっっっとうにプログラミング超初心者です。
■知識として知っている内容を、実践の自動化スクリプトに落とし込む難しさ
私は前述の通り、プログラミング学習サイトなどでちょっとだけPython3を勉強しているプログラミング超初心者です。
プログラミング学習サイトでは、
number = 1
if number == 1:
print("ギョウザ")
else:
print("チャーハン")
のように、本当に基本的なプログラミングの考え方や作成方法を学習できます。
ただ、これを実際に稼働している案件で自動化スクリプトとして落とし込もうとした際、
「あれ、if文を使ったらいい感じにできそうなのは分かる。けど、どうやって使ったらいいか分からない…」
という状況に最初陥りました。
どうして学習サイトではできていたif文の使い方が分からなくなってしまったのか、自分なりに考えてみると
「学習サイトではif文の後ろに続くワードは、問題文としてあらかじめ提示されているが、実際にスクリプトを自分1人の力で作ろうとするとif文に続くワードも自分で考えないといけない。
知識として知っている内容から、自分のやりたいことを自分の力で0からスクリプトに落とし込んでいかないといけないから、スクリプトの動作を明確にイメージする必要があるのではないか。」
と思いました。
そこで私が意識して行ったことは、
【スクリプトでやりたい動作を一つ一つ全部日本語に置き換えて考えてみる】
です。
もちろん初心者なのでフローチャートを作成するのは大前提ではありますが、
こうすることによって、最初は漠然としていたif文の後ろに続くワードが明確に分かるようになり
「もし 画像A があれば 画像B を押下する。そうでなければ 画像C を押下する」
「もし 画像A があれば 3秒間待機する。そうでなければループを抜ける」
といった具合に、徐々にではありますが自分がスクリプトで動かしたい内容を書き起こせるようになってきました。
※ただ、自分が知らないPython3の使い方はたくさんあって「動く気はする…でも動かし方が分からない…」
となることが多いのでまだまだ勉強が必要です…
私と同じように、 いざ初めて自分でスクリプトを書いてみるぞ! となった方で、
どうやって落とし込んだらいいか分からなくなってしまった方がいらっしゃいましたら
【スクリプトでやりたい動作を一つ一つ全部日本語に置き換えて考えてみる】
をやってみると、突破口が見える…かもしれません。
■まとめ
自分で言うのも変ですが、Python3を勉強し始めた頃に比べると、多少は自分が作りたいスクリプトを
自分の力で表現できるようになってきたのではないかと思います。
意外とプログラミング言語を勉強した後、「初めて自分で1からスクリプトを作成してみる!」という方で、私と同じように勉強した内容をどうやって自分が作りたいスクリプト内容に落とし込んでいったらいいのか悩まれる方は多いのではないでしょうか。
そんな方には是非 【スクリプトでやりたい動作を一つ一つ全部日本語に置き換えて考えてみる】 を実践してみてください!
もしかするとスクリプト作成の糸口になる…かもしれません。
最後になりますが、ここまでご覧いただきありがとうございました。