[Python1か月]どの程度勉強した?
実はPythonのコードをはじめて書いたのが1か月前…。
1つ前のエントリー(下記)に自分で書いたコードを恥ずかしげもなく貼りつけちゃいましたっ!
クリエイティブだとしたら大丈夫かな?と思って。ははは。
このコードを書くために、どの程度勉強したかを記載しておきたいと思います。本当に猛勉強が必要なことか、確かめてみてください。
前段としてのエクセルVBA
そもそも1年半ほど、エクセルVBAを使って一部自動作業をしていました。最初は種類の違うシステムから出てくるログを手で貼り合わせてレポートを作る作業がめんどくさくて。表の列の並べ替えくらいのことをやっていました。
ブラウザと連携してログインしたり、スクレイピングしたり。パワポと連携してエクセルからパワポに表を貼りつけたり。
この本「今すぐ使えるかんたんmini Excelマクロ&VBA 基本&便利技」の構成がものすごくすばらしく、この本のおかげでエクセルVBAができるようになったと言っても過言ではありません。
目次を見ると分かるのですが「Selectメソッド」「Rangeオブジェクト」みたいな命令文ではなく、初心者に優しい「セルを参照する」「書式変更する」といった、普段の直観的なエクセル操作にあわせて最低限のエクセルVBAの簡単なコードが記載されている点が本当に良いです。
(Selectがメソッドである、Rangeがオブジェクトである、ということは今ぐぐりました。その辺判然としてないまま今に至っています。)
毎日コードを書くような仕事でもないし、本にあるすべての内容を一生懸命覚えず、今でもかたわらにこの本を置いて、この本を見ながら書いています。
使用規模やレベルについて
コードと書きましたが、少数精鋭の職場で繰り返し作業を軽減するだけのプログラムです。使用者も自分だけ。セルフRPAです。
となると、かっちり書けなくてもいいわけです。自分で書いても一体どういう処理なのか自分で忘れてしまうので、プログラム内に「これは何をするパートなのか」を説明するコメントを書く作業の方が大事なくらいです。
エンジニアといわれる人技術が売りだからずっと勉強している人たちが複数人で作って24時間動くようなものでもない。
なのでコードとかプログラムとか言うのもおこがましく、せいぜい使い捨て感覚のスクリプトとかバッチかな?と思うわけです。
初心者向けのPythonの本(漫画)を途中まで
そんな風なので、今までと違う言語でプログラミングする上でイメージつかみたかったのは、ハローワールド、プログラムの保存方法、開発環境の使い方、文法の癖、演算子、変数、配列、if分岐、forループ、他の機能との接続の仕方、特徴的な関数でした。
この目的で次の本を読みました。
え、漫画じゃないですか。そうです。漫画です。なぜこの本を選んだか?
自分は高橋名人などの世代であり、ゲームセンターあらし世代ではないのですが、たまたま家にコミックスがあって、さまざまな技がとにかく面白いのと、古いゲームへの興味として何度も読みました。
作者のすがや先生は、自分のネットライフの大先輩としてさまざまな形で登場。図書館にあるさまざまな説明漫画やパソコン通信など。その上、すがや先生は教育心理学であるとか、わかりやすい教え方を研究している向後千春先生(日記サイトで知っていた)に師事されて修士を修められたということです。それもTwitterで知っていました。
こんな背景があるだから、読んでわからないということがありえない1冊だろうと思ったのです。
内容としては、PythonがインストールされたWindows10のPCでの操作になるので、たまたま自分と同じ環境。
初心者がハマるポイントを拾いながら開発環境(IDE)の使い方、プログラムを書く前に考えることまでも、これでもかと親切に説明してくれます。おそらくこれ大学の講義レベルです。
そして、主人公がゲームセンターあらし君だから、ゲームを作る流れになります。ズギャッ!
ゲームは3つくらい作ります。(くらいって書く理由は後述)
2つ目のじゃんけんゲームを作るところまで読んだ時点で自分が知りたいことがわかってしまいました。
じゃんけんゲームの次の章ではPongのようなゲーム作りになっているのですが、ここまで読まなくても業務に必要なところがわかってしまったので、読了できていません。
(すいません!また余裕が出てきたらゲーム作りにも戻りたいと思います)
必要だと思っていた箇所:
ハローワールド、プログラムの保存方法、開発環境の使い方、文法の癖、演算子、変数、配列、if分岐、forループ、他の機能との接続の仕方、特徴的な関数
ここから先はGoogleさん
ここまで必要だった情報があれば、やりたいことを「python スクレイピング」「python エクセル」「複数 .py 実行」といったキーワードで検索していけば、ある程度コードが出てきて、それを読むことができます。
こんな風で、早速翌週から実践投入開始。
日々エクセルVBAでやっている仕事のうち、ちょっとデータ取得先の仕様が変わって、VBAの直しが必要になった箇所。そこからPythonに置き換える形で投入することに。
短いコードから少しづつ書きためて、それをつなげてひと仕事させる.pyをつくります。
でも長くし過ぎるとあとで分からなくなるので、長くてもコメント込みで80行くらいの内容にしています。
これをWindowsの.batファイルから連続実行するけど間に手作業も入るという感じで、文字通りバッチ処理のように使って楽をしている、というわけです。
安心のために積んでいるほかの書籍
1つ前のエントリにも書きましたが、「こんにちはPython」のほかにも「head first Python」「退屈なことはPhthonにやらせよう」が手元にあります。
「head first Python」は、進捗がゆっくりですが、いろいろコンピューターサイエンスの教養的な部分が補われるので、最後まで読む価値があると思います。これ読んだあと、Pongみたいなものを作れたらより良い改造もできるのだろうと思います。
「退屈なことはPhthonにやらせよう」は、以前から書店で手に取ってみて棚に戻すということを繰り返していました。
表紙とタイトルが面白いから手に取る、目次やそれぞれの説明をみると、最初の一冊としていいと思えない、エクセルVBAに対して何かが新しくできるようなる気がしないから棚に戻す。という感じでしたす。
逆引き辞典のような内容なので、画面見過ぎてて目が疲れてるときにぱらぱら紙をめくるのもいいかもしれないと思って購入しました。
よく使いそうだけど忘れそうなことが書いてあるページには付箋を貼ってます。
noteにまとめを投稿する理由
Python関係の検索結果は、エクセルVBAと比べると、英文での情報提供が多かったり、ユーザーやトレーナーの雰囲気がちょっと違っていて、エンジニア風かアカデミックな雰囲気がありますね。
1つ前のエントリーのようなまとめをこしらえてシェアしたら、日々の仕事効率化に励むどこかの誰かが時短できて喜んでくれるかなと思ったから、でした。
こんなゆるいPythonの使い方なので、まるでエンジニアとして扱われていません。でも、転職してエンジニアとしてやっていくのは大変そうなので、エンジニア諸氏と比べて自分の給料は安いと思います。
ですから、時短をできた!という方は、率直にジュース代程度ご支援いただけたら助かります。よろしくお願いいたします。