新しい言語やサービスなどを学び始めるにあたって

どうもmrです

皆さんは、新しいプログラミング言語を学び始めることはありますか?

自分はUnity(C#)がメイン言語ですが、
最近の業務や趣味ではJavaScriptやGoogle Apps Script(GAS)などを触れることも多いです。

しかし、メインであるC#でさえ、
何年もやっているのに、実は単純な落とし穴や、バッドプラクティスな処理をしていた、
なんてことがよくあります。

しかもそれが、プロジェクトの終盤でボトルネックになりうる負債になることもあります。

そんなことを防ぐためにも、新しいものを学び始めるにあたってオススメしたいことがあります。

それは学習初期から以下のワードについても調べることです。

・ベストプラクティス
・Tips
・注意
・最適化
・非推奨
・心得
・マナー

などの中級者向けの単語たちです。

例えばUnity開発において、入門サイトや書籍にはしばしば、GameObject.Find(“string”)が使われます。
これは、生成済みのオブジェクトを名前で参照できるというとても使いやすい関数です。

画面上にいる、”Player”という名前のオブジェクトを探したりできます。

しかし、この関数はあまりおすすめできるものではありません。
なぜなら、生成済みのオブジェクトを全て検索してしまうので、
オブジェクト数に比例して処理が遅くなってしまいます。

しかしそれに触れているサイトなどはあまり多くはありません。

GASでも同じようなことはあります。
最近のGASは2月ごろにV8ランタイムをサポートし、よりJavaScriptに近い書き方のできるECMAScriptに対応しました。

このような、進化が早い言語だと、入門系のサイトではそれらの情報を扱っていないせいで、
簡単な落とし穴にはまってしまうこともよくあります。

このアップデートにより、既存のプロジェクトに含まれているGASの処理で動かなくなってしまうものなどもありました。

と言った具合に、初学者にはとても難しいですが、
第2、第3の言語として学び始めている方は特に、入門のタイミングから、
少し先を見越して中級者向けのドキュメントも見ておく方がいいと思います。

mr