プログラミングを学び始めよう!と思い立つと、世の中一般にはHTMLとCSSから学習をスタートする方が多いようで。
何から始めようと自由なので、別に順序なんてないよっていうのが前提としてあるけれど、プログラミング=Web制作と捉えるかたが一定いるので、そういった状態でHTMLスタートするとぶつかる壁が多いように思っています。
固定のポストを深掘りしていくと色々書いているのですが、今自分で取り組んできた経験を振り返ると初学者こそ『Typescript』に手を出すのが良いように思う。
そしてTypescriptを扱って何をするかっていうところで、スプレッドシートを利用した業務効率化、自動化といったことに取り組むのがいいんじゃないかなーって思っている。
プログラミングにもいろいろな種類がある
HTMLとかCSSってブラウザで簡単に確認できるし、環境構築もそんな必要ないし即座に反映されるしエラーがあっても表示が崩れるだけっていう状態だから、プログラミング=PCでカタカタやることとイメージすれば結構合ってるようにも思う。
でも(自分がそうだったけど)、HTML・CSSを扱ってWordPressでサイト制作できるようになってきても、致命的にデザインができなかったり、コーディングしようと思ってもAIで結構成り立つしな…なんて思い始めるとなかなか突き詰められません。
プログラミングの本質は問題・課題を見つけ解決していく能力
基本的にはプログラミングを学ぶことで得られるものって、世の中をちょびっとでも便利にできるということだと僕は思っていて。
そう考えるとこれまで印刷物としてでしか自分の事業とか活動内容を表現できなかったことがWebを使って(ホームページとして)公開できるようになるっていうのは、これはプログラミングしているって言えそうで。
とは言え、すべてのプログラミングユーザーがWebサイト持ちたいかって言われたらそうでもないし。
でも毎日やっている特定の作業を時短したり自動化したりして時間を創出して、生産性を上げるでもいいし余暇を楽しむでもいいんだけど、そういったところにプログラミングの本質があるように考えています。
となるとブラウザで表示される見た目を整えることに注力するよりも、日々時間のかかっていることや面倒なことを洗い出して効率化していくことの方がとっつきやすいのでは?と思うわけです。
業務効率化を考えた時にスプレッドシートは便利なツールの一つ
表計算ツール・ソフトって色々あるけれど、ウェブに繋がれば使うことができて、特別な環境構築なくプログラミングを始めることができるという点でスプレッドシートって優れたツールだと思います。
家計簿みたいなことからタスク管理・プロジェクト管理みたいなところだったり色々できますよね。
ここだけ切り取るとじゃあNotionの方がいいぜよとかいう声も聞こえてきそうだけど、この議論は本質からズレるので一旦スプレッドシート「も」いいツールってことが伝わればOKです。
そして効率化のための開発(プログラミング)をボタンひとつで始められるようになるGoogle apps scriptも非常に有用だと思っています。
Javascriptベースでかけるとかもあるけど、そこは一旦置いといて、開発始めるまでのハードルが低い、とりあえずやってみることができるというのって非常に重要です。
ただ、GASだけで頑張り続けると出てくるのが、(その時はよくわからん)エラーの頻出です。
プログラミングする上で『型』を意識することがすごく重要だと知る
ここでいう型は作法という意味よりも、実際にどんなデータを扱うことができるかという器の種類みたいなもんです。
例えば平たい皿にラーメン入れたら汁溢れるから良くないよね、とか深皿に焼き魚置いたとしたら食べるの苦労するよね、だから適材適所で扱おうねっていうのがプログラミングにおける『型』です(少なくともここではそのくらいの感じで捉えてほしい)。
スプレッドシートに関して、GASで開発を続けていると文字列でも数字だとしても実行自体はできてしまうことがほとんどです。これって実はよろしくなくて、意図しない挙動に繋がります。
プログラミングのもう一つの良さは偶然の産物が作られるわけではなく、(ほとんどの場合)上から下まで理論だって進めることができて整然とさせられることだと思っています。
この時に、書いているコードがどんなデータを扱えるのか、どんなデータとして変換される(返る)のか示せるのが『型』になります。
GAS自体には型を書くことはできないのですが、ここで冒頭のTypescriptにつながってくるわけです。
Typescriptで書きGASに変換して実行する
Typescriptを使うとひとつ一つに型を定義しながら進めることになるので、意味不明なエラーが出なくなってきます。あ、このコードだと配列を扱うべきなのに今は文字列を入れようとしてたのねとかそういったことがつかめてきます。
こうなるとプログラミングの道が整備されてくる感覚なのですが、問題がひとつあってTypsescriptだけだとスプレッドシートを操作することってできないんですよね。
Javascriptに変換してNode.jsを入れて実行するか、GASに変換して実行するかになります。
もちろんNode.jsを入れて実行しても良いのですが、『初学者がハードル低くスタートできてプログラミングとはどんなものか体験を通じて理解していくことができる』と考えた時に、Typescriptベースで開発してGASに変換して実行するっていうのは結構理にかなっているのではないかと感じるわけです。
そんなわけでこれを読んでからプログラミングを学習する方はまずスプレッドシートを開いてみて、GASの実行からスタートしてみましょう。
スプレッドシートからデータを取得してどこか別の場所に表示させるでもいいし、興味があればXなどの自動投稿ツールにチャレンジしてみてもいいし。
そしてぜひTypescriptについても学びながらプログラミングの楽しさを感じてもらえると嬉しいです。