気付き

 L坊です。今回は、趣味の学習について書きたいと思います。

 最近、日々の学習で悩む中、ふとあることに気付き実感し始めました。
 色々なことを学習したり経験したりしていると、全く別の分野に見えていたものが実はつながっていることに気付いたり、思いも寄らないところで経験が活きたりすることがあります。
 今回のテーマは「分野をまたぐ気付き」です。分野と言っても今回の話は IT に限られますが、日々の活動の中で感じた私の気付きの断片を、つらつらと書いていきたいと思います。本当にばらばらな話ばかりですが、お付き合いいただけると嬉しいです。

 ※登場するプログラム言語名や規格名、製品名はいずれも個人で学習・活動しているものであり、弊社のプロダクトとは関係がありません。

 最近はよくウェブデザインを勉強しています。Adobe XD や Photoshop でカンプを起こし、HTML や CSS 、JavaScript などで形にしていきます。これは一見、よくあるただのウェブ制作の手順ですが、実はこれだけでも他の開発分野に道が通じているのです。
 ウェブで採用されているパディングやマージンといった概念、これは Xamarin や WPF などで UI をレイアウトする際にも大いに役立ちますし、JavaScript の async/await が書けるようになると、C# でも同じ要領で非同期処理を実装できたりします。非同期処理の歴史は長く、その表現も実装も言語によって多彩なので、近い書き方が出来るのはとても嬉しいことです。

 また、少し前から Rust というプログラム言語を使用するようになりました。Rust では ownership という概念の下、メモリ安全なプログラミングを行います。この経験が、C++11 以降で(ちゃんと)導入されたムーブセマンティクスを正しく運用する助けになっています。(私が一番使用する言語が C++ だったりします)

 Docker イメージを作るようになると、システムの設計思想がアプリケーションパッケージの範囲を飛び出して、もっと広い範囲に及ぶようになりました。どんな変数や設定ファイル、ポート番号でアプリケーションをカスタマイズ可能にするかというのは、ある意味大きな依存性注入です。ボリュームの切り方はミュータブルとイミュータブルの切り分けです。

……という感じで色々なことをやっていると、「これ、別のところでやったことがあるな、何かに似ているな」というものがどんどん増えていきます。

 話がばらばらで、何を言ってるんだろうと思うかもしれませんが、私にもよくわかりません。でもそれは本当で、その場面に自分で直面して実感しなければ、「気付き」にはならないのです。そしてその「気付き」を得たときに、これまでの活動や勉学の時間が尊く感じられます。

 一芸は道に通ずるといいますが、たとえ浅くても多芸を探究すると、最終的には本当の一芸が見つかるかもしれません。これからも学習を続けて、いつの日か、「道」に辿り着きたいと思います。

前の記事

猟銃を手放す。

次の記事

リベンジ