Python、機械学習

【VBA, Python】プログラミング初心者だった私がとった、はじめの一歩

プログラミングに興味がわき、第2の専門技術にしようと決めた2018年。ブログやツイッターで得た情報をもとに、私がどのようにはじめの一歩を踏み出したかをまとめてみました。私はわりと腰が重い方ですが、なんとかスタートラインに立ちました。

新しいことを始める場合、準備が整って一回経験したところで8割は達成したようなもんです。これは私も経験的に感じています。あとはひたすら学習するのみです。

私と同じく、プログラミングに興味をもっている社会人がはじめの一歩を踏み出すにはどうすればよいのか。この記事が役に立てば嬉しいです。

プログラミングでできることをざっくり知る

まずはこれです。

プログラミングを習得すれば、事務作業を自動化できる。

クラウドソーシングで副業できる。

データサイエンティストと協業して新しい仕事ができるようになる。

AIを作れるようになる。

マテリアルズインフォマティクスで材料開発ができるようになる。

なんでも構いません。間違っていてもいいので、本やツイッターを読んでプログラミングに対する熱を高めていきます。

私は、AIやクラウドソーシングに関する書籍を読んだり、プログラミング技術をベースに社会人のメインストリームから外れて自分らしい生き方をしている人たちのツイートを読んだりしました。

AIに関する本は『人工知能は人間を超えるか』がわかりやすくて参考になりました。

クラウドソーシングに関する本は、こちらの『クラウドソーシングの衝撃』がおすすめです。

世界ではデータサイエンティストが足りてなくて、需要が逼迫している、だからプログラミングができる人は年齢にかかわらず引く手あまただよ、なんて言われるとプログラミングをやらない理由はなくなりますよね。

私は、受験勉強をしていた頃、大学合格へのモチベーションを維持するために大学がある街のガイドブックを買って、勉強の合間に読んでいました。私にとって、大学合格=都会で一人暮らしでしたから、ガイドブックでその街に住む自分を想像してモチベーションを高めていました。

プログラミングの場合も同じです。プログラミングでできることを想ってワクワクしましょう。

https://punhundon-lifeshift.com/post-190

初心者向けセミナー、無料体験会に参加する

次に、プログラミングというアクティビティーを味わうために、初心者向けセミナーやスクールの無料体験に参加してみます。最初から独学はしんどいですので、普段からプログラミングに慣れ親しんでいる講師のもとでプログラミングを体感します。

私の場合、仕事の業務効率化に興味がありましたので、エクセルのVBAの半日セミナーに参加しました。半日でコードの基礎を覚えてスケジュール表を作るというもので、かなりハイペースではありますが、プログラミングに対する妙なハードル感はなくなり、不器用な自分でもできそうだという感触を持つことができました。

プログラミングスクールの無料体験会にも参加しました。数時間の短い間ではありましたが、プログラミングを学ぶフローを五感で感じ取ることができ、モチベーションアップにもつながりました。

このあたりから、プログラミング学習の時間をどうやって確保するかという悩みがわいてきましたね。今まで通りの仕事のやり方をしていては、プログラミングを勉強する時間を確保できないことは火を見るより明らかでした。

簡単なプログラムを自作して、自分が書いたとおりに動く瞬間に立ち会おう。めちゃ感動します。

簡単でいいので、コードを書いてみます。

私の場合、今のパソコンでできるエクセルVBAでプログラム(マクロ)を作ってみました。一つは、実験データをグラフにするというもの。もう一つは、予め準備した空っぽの特性一覧表に、実験で測定したデータを記入していくというプログラムです。測定データは、特性一覧表と同じエクセルの別シートに載っていて、このデータを特性一覧表の所定のセルにも記入するという内容です。

とはいえ、初心者向けセミナーに参加したぐらいではほとんど前に進みません。そこで、一冊本を買い、それをつまみ読みしながらコードを書いていくようにしました。特に、最初に行う初期設定は本を見ないとわかりませんからね。

VBAなら、こちらの本が秀逸です。業務効率化に必要なコードの書き方がわかりやすく書かれています。業務効率化したい初心者の目線で書かれているからでしょうね。

他のVBAの本も本屋で立ち読みしてみましたが、実行内容別に網羅的に書かれているものが多いので、初心者が読んでもわかりにくいです。コードの説明もちんぷんかんぷんです。

こんな動きをさせたいけど、どんなコードを書いたらいいだろう。そういう時はgoogleで検索すればすぐに知りたいコードが出てきますよ。もしくは、マクロの自動記録を使ってコードを書かせてみて、それを真似してみます。

そうやって書いたコードを実行してみて、エラーなく思った通りの動きをする瞬間は感動モノです。普段なかなか味わえない達成感ですよ。一瞬でグラフが表示されたり、特性一覧表が数字で埋まるんですからね。工場におけるカイゼンの比ではないですよ。

さらに高度なプログラムの作成に挑戦する

基本的な構文に慣れてきたら、さらに高度なプログラムの作成をトライします。私の場合、数十個ある実験データファイルから必要な数値を読み取って、特性一覧表に転記していくプログラムを作成したいと思っていましたので、先ほどの『たった1秒で仕事が片づく Excel自動化の教科書』の終盤のページを熟読しながらコードを書いていきました。

複数のファイルをいちいち開かずに必要なデータだけを抽出する作業は、事務作業の効率化の肝なのですが、コードの考え方が腹落ちするまでにかなり試行錯誤を繰り返しました。なんでそういうコードを書くのか、考え方がなかなか理解できなかったんですね。

めげずにもがいていると、転記されるマクロの位置はずれるものの、複数のファイルからデータを引っ張ってくることに成功しました。光を掴んだ瞬間でした。このときの達成感もすごかったです。それまでの努力が一気に報われた瞬間でした。あとは、微調整を繰り返して、正常に動くプログラムが完成しました。

ここらへんは、「思考の棚上げ」を繰り返すことが大切です。プログラミングに向き合い、理解できなかったら一旦考えるのをやめる。コード書きも中断するんです。これを思考の棚上げと呼びます。そして、数日たってから再開すると、なんとなくコードの概念がつかめていて、少しだけ前に進むことができる。

またつまずいたら、思考の棚上げをします。そうやって走って休むを繰り返すうちに、コードの概念がじわじわ分かってきて、作りたいコードが完成していきます。

「思考の棚上げ」は「思考の熟成」とも言えます。人間、プログラミングから離れている間も思考が止まっているわけじゃなく、潜在意識のところで思考が勝手にまわっているらしいです。これは多くの人が体感していると思います。私も、普段の仕事で無意識に「思考の棚上げ」をうまく活用しています。

思考の棚上げについては、こちらの書籍が参考になります。

他のプログラミング言語を勉強しようと決心する

さて、VBAでプログラムを自作するというプチ実績を積んだ後は、いよいよ他のプログラミング言語へと触手を伸ばしていきます。個人的には人工知能などのデータ分析に興味があるため、pythonをやっていこうと考えています。

そこで、pythonを学べるプログラミングスクールやオンラインサービスについてあれこれ調べました。学べるプログラミング言語のラインナップや費用、質問できる時間帯など、つぶさに調べて比較しました。

その結果、まずはオンラインサービスで基本を学んでからスクールで実践力を積むのがいいなと考え、現在はprogateというオンラインサービスで学習中です。

progate、なかなかいいです。RPGをやっているようで楽しいです。Facebook、Google、ツイッターのいずれかのアカウントを持っていたら、それだけでprogateに登録できます。30秒で終わりますよ。一瞬です。

勉強する時間を確保する

プログラミング学習には時間がかかります。エクセルのVBAであれば仕事の合間にもできたのでよかったのですが、他の言語だとなかなかそうはいきません。progateを業務中にやるわけにはいきませんからね。そこで、奥さんに相談して、週末の早朝に一人喫茶店に行く時間をもらって勉強することにしました。朝6時〜8、9時のイメージです。喫茶店なら、子どもの妨害(笑)を受けずに勉強に集中することができます。幸い、家から少し行ったところに24時間オープンしている喫茶店があります。wifiもあります。ないのは、プライベートのノートパソコンだけ・・・。自宅にあるのは、スペック重視のデスクトップパソコンです。

MacBook Airを買う

というわけで、プログラミングをとことん突き詰める気持ちを後押しする意味も込めて、ノートパソコンを購入しました。インターネットで調べると、プログラミングをするならMacがいいとのこと。プログラミングスクールの無料体験会に行った時もパソコンはMacがいいと言われました。

同じスペックでも、WindowsよりMacの方がプログラミングの処理速度が早い、プログラミングをやっている人の大半はMacユーザーなので、インターネット上にある情報もMac仕様だというのがMac優位の理由のようです。MacBookの中でも安価で画面も13インチと大きいMacBook Airが、プログラミング初心者には最適のようです。

迷わずMacBook Airを買いました。これで、喫茶店でもprogateで学習できます。

128Gの方で、106,700円(税込)です。新品を買うなら、ビックカメラやヨドバシカメラのような電気屋さんで買った方がお得です(ポイントがつく)。

スタートラインに立つことが大事

今後は、ひたすらprogateで学習を進めていきます。

まだまだ始まったばかりですが、スタートラインに立てているので8割は終わったと自負しています。

ブログも、サーバー契約してwordpressでブログを開設してはじめてスタートラインに立てます。スタートラインに立てずにドロップアウトする人が多いようですので、スタートラインに立った時点でスタンディングオベーションものですよ。そして、ブログよりも”成果”が出やすいので、モチベーションは続きやすい気がします。ブログはいまだにPV数が雀の涙ですから・・・。