大学時代にプログラミングをちょっとかじったことがある程度の普通の会社員が、TIMES発信自動化を作れるようになるまで、どのようにプログラミングを学んだかをまとめます。
作りたいものがあることが大事!
最初に結論ですが、全ての最初のモチベーションは「作りたいもの」スタートでした。
TIMESを、OpenSeaを目で見て手で打ち込む作業していたことが億劫でした。マニュアル通りの動きを毎朝していたので、ロジックに落とし込むことができるかもしれない、と思い取り組んでみました。
最初に行ったのはRPA
最初に行ったのは、RPA(Robotic Process Automation)。
プログラミングする代わりに、ツールで指示を出せばその通りの作業をしてくれるサービスになります。
当時、使ったのはこちらのオクトパス(octoparse)と言うツール。
フリープランがあり、日本語対応も充実していて、使いやすかったです。
が、OpenSeaにはうまく対応していませんでした。OpenSeaのHTMLタグにはかなりの癖があったのです。もしかしたら、やりたいことはこのツールによって解決する場面があるかもしれません。
今思うと、私に取っては、ここでオクトパスでやりたいことが全部できていたらプログラミングしよう!ってならなかったと思うので、OpenSeaがくせくせだったのは今思うと感謝です。
色々調べて見たらPythonが良さそう!
自分がやりたいことをやるには何が良いかを調べていたら、Pythonが一番良さそうだ、ということに辿り着きました(その時の流れは忘れてしまいました・・・)。が、確かに、読んだり、書いたりしていて、昔やっていたJavaに比べて非常にとっつきやすく、でも、Javaでやってた時のことも活かせる感じがありました(素人コメント)。ということで、Pythonで行くことに軽率に決めて、進んでいきました。(今思うとこれもすごいよかった)
当時、一番勉強になったのは以下のPython Youtuberのサプーさんです。動画で懇切丁寧に教えていただけるのでむっちゃ勉強になりました。それ以外にも、Kindle UnlimitedでPythonに関する書籍を斜め読みしたりで対応していました。
勉強方法:ひたすら実践
あとは、もうひたすら実践という、紹介もクソもない勉強方法です苦笑
ググる→サンプルコードを見つける→サンプルコードをそのまま動かしてみる→動かない→ライブラリが足りないのでインストール→動いた!→自分のパターンに反映させる→うまくいかない→何がうまくいかないかをエラーを見て考える→エラーコードでもググる→ログを吐き出してどこまでは進んでいるかを見る→うまくいかない理由を考えたりググったりでトライアンドエラー→必要に応じて質問サイトで質問→うまくいった!→次の関門にぶちあたる→ググる→サンプルコードを見つける→・・・
と言うループをとにかく行っていました。なので、プロの方が見るとツギハギだらけの残念コードだとは思うのですが、私的には個人的な稼働削減できれば良いので十分ニーズを果たせている!と、とにかく前向きに進めていました。あと、「!」がついている、うまくいった!って時がむっちゃ楽しいんですよね。クイズが解けた!みたいな。ここで脳汁が出るので、超楽しいです。
ですが、25年前の大学生時代と異なり、今は情報元が本当に多くあり、ググればなんとかなるのが本当に助かっています。ChatGPTもありますしね。
補足:自身のレベル
僕は、プログラマーになることを目指して大学に入り、即挫折した人間ですw
if文、for文、メソッド、関数、変数、クラス、オブジェクト指向あたりは理解していますが、肝心のソースを書くのが億劫すぎてダメだった・・・英語も国語も苦手だったので、プログラミングって数学得意でもダメなんだな、と思った次第です。特段役に立つものは作れず、でも、憧れていたので、たまに暇な時に、たまにcodeacademy等であそんだりはしていました。
ただ、この辺りの土台があったからこそできた、ってのもあると思うため、もし、上記のような基礎部分についてもご存知ない方は、上記をやってみて苦しかったら、先にその辺りを先に学んでおいた方が良いかもしれません。
Paiza、ドットインストールや先ほど紹介したようにYoutubeにも有料級コンテンツは山ほどあるので、無料でもやれることはありそうです♩
あと、今思うと、Javaがとっつきづらかったのかもしれないなあ、と思いました。Javascript(JS)やPython、GoogleAppScript(GAS)だととっつきやすさ・書きやすさが全然違いました。
結論:作りたいものが大事
で、再度まとめて、何が一番大事だったかなあ、と思い返すと、作りたいもの・やりたいこと・解決したいことがあることが大事、だなあ、と言う結論に行き着きます。
「プログラミングをやりたい」とずっと思っていたのですが、これだと手段がやりたいことになってしまい、私はずっとここで足踏みしていた時期があったように思います。
「TIMES発信活動を楽にしたい」。この「したい」をプログラミングで解決したい、となって初めて前に進めたように思います。
ただ、上記の「したい」はゴールでありデカすぎるので、これを因数分解して細かい「したい」にしていき、それらを組み合わせることでいろいろなことをコンピューターの力を借りてできるようになりました。
→情報収集部分を定期実行したい
→OpenSeaやNFTGoの情報を効率的に収集し、それをGoogleスプレッドシートに書き出したい
→書き出したものを見やすくして、画像にしたい
→画像にしたものをテキスト付きで、TwitterやInstagramに投稿したい
→コレクションが増えたらすぐに追加できるようにしたい
などなど、、、なので、全ての源泉は「作りたい・やりたい・解決したい」であり、ここが一番大事だったなと思った次第です。
まとめ
余談ですが、昨日、知り合いのエンジニアの方に勉強方法やモチベについて聞いて見たのですが、同じでした。「作りたいもの」「興味があるもの」があって、それを作る、ということが勉強にもなり、モチベーションにもなると。自分でも同じ結論につながっていて嬉しかったです。
というわけで、あくまで私の体験談になりますが、まとめてみました。
どなたかの参考になったら幸いです。
コメント