私のプログラミング学習について(素人目線)
こんにちわ!おいしょーです
最近の為替相場は荒れてますね。トルコリラがいつ上昇するか気になるところです。
物価の上昇も目に見えて表れてます。(鶴瓶麦茶ってもとから130円だったのかな。。) (2022年6月現在)
さて今回は会社の事務改善に役立つプログラミングに関するお話です。
私はSEでもないので高度なAIや画像プログラミング等は詳しくないですが、普段皆さんが使っているOfficeソフトを自動化するツールと自身のこれまでの経験談を話したいと思います。
<目次>
10年あまりなにも作れませんでした。
私がはじめて本格的にプログラミング言語を使おうとしたのは大学の研究室にいた時からで、当時プログラミング言語の代表だったC/C++からの独学スタートでした。
(その前に共用単位でLinuxの授業がありましたね。サーバー管理とは?。。はて?)
今振り返ると、あの頃できなかった理由は
- やりたいことに必要な情報収集ではなく、参考書を全て理解しようとしたこと。
- 関数と引数の動きを理解できなかったこと
だったと思います。
プログラミング言語を勉強し始めた頃は、参考書を見ても難しくて見慣れない用語が多くて全体像をイメージする為だけに精いっぱいでした。
C言語の勉強も基礎が不十分なのに、当時画像処理がしたくて他のAPIをどんどんダウンロードして、複雑なサンプルコードを見て訳が分からなくなって、結果として何も形にすることができませんでした。
特に引数の当て方、受け取り方、参照渡しや値渡しは小さな成果の積み重ねで練度を上げるべきだったと思います。
はじめて形になったエクセルVBA
社会人になってもう一度プログラミングの勉強に入ったのはエクセルVBAからでした。
新卒の若手や中途採用の方がOfficeソフトのVBAとバッチファイルで次々と業務改善を成し遂げる姿に憧れ、もう一度勉強しなおそうと奮起。
今度はやりたいことに向けて小さな成果を積み重ねていき、1年後にはエクセルVBAで大きな業務改善を発表するに至りました。
それでもなんとかネットにあるサンプルコードの組み合わせで形になったものだし、コード内で見かけるWindows Script Hostが何者なのか理解するのに時間がかかりました。
ただ、VBAではできないようなことを別の言語で補っているんだなというのは理解できました。
MS-DOSから振り返ることで見えてきたこと。
Officeソフト(ワード、エクセル、パワポ等)のマクロが組めたら、マクロの呼び出しやファイル/フォルダ操作ができるBATファイル作成の為、MS-DOS(コマンドプロンプト)の勉強を始めました。
歴史が古いコマンドプロンプトはコードがシンプルで、コード作成とその動作確認が手早くできるので、VBAに比べて一つ一つ成果を確認できる楽しみはありました。
簡単ではあるけれど、コマンドプロンプトではできないことが見えてきて、できないことが分かったことで、現在のプログラミング言語への理解が深まりました。
コマンドプロンプトでできないこと:
・SET /P 変数="代入したい情報" ←変数に直接テキストを代入すること。これが意外とできない。
・オブジェクト指向(クラス、メソッド、プロパティのインスタンス化)ができない。
その他は忘れましたが、コマンドプロンプトでできないことを後発のVBやVB Script(最近だとPower Shell)でできることを確認していくうちにだんだんとアルゴリズムやシステムの構造が分かるようになってきました。
いろんな参考書やURLを調べてきましたが、最近一番わかりやすかったのがこちらのサイトです。3年かかって書き上げただけあってとても丁寧な指導書でした。
あとがき
目次から漏れてしまいましたがあとがきです。
今現在、結局C/C++で作成した実績はないのですが、ここ3年でVBA、コマンドプロンプト、VBScriptでプログラミングの歴史を遡りながら勉強していくことで、大学時代に理解できなかった部分がようやくイメージできるようになりました。
仕事だけではなく、オンラインゲームでも戦略改善のためにGoogleアプリ(スプレッドシート、Googleフォームなど)の活用にGASを使ってWebスクレイピングをしてみたりしました。世の中のプログラミング言語とその可能性に興味が尽きません。
まだ始まったばかりですが、これから色んな可能性に挑戦しながら、プログラミングライフを継続していけたらと思います。
世の中のその道に長けた方々、成功した方々、そしてこのようなシステムを築き上げた方々への敬意を払いながら。