cacaponがプログラムをより良く作る為に考えている事【2021年版】

この記事は、cacaponがプログラムを

より良く作るために気を付けていることをまとめたものです😃

大まかに考えると…

私の場合、インプットとアウトプットの質が上がれば

プログラムのコードの質も良くなると考えています😃


ここでいう質というのは

  • 早く作れる*1
  • 拡張性がしやすい*2
  • 読みやすい*3

といった面を重視しています

他の面は現在挑戦中ですが、

  • 遊んで楽しい・面白いゲームとなっている
  • より売れるゲーム
  • ユーザーと共に成長できるようなゲーム

といった視点でもインプット、アウトプットを進めています😃

インプット編

プログラムを作るうえで

きれいに書けて、短く、そして実行が早い書き方があるとしましょう🙄

そのことを知っているプログラマはそれを書けばいいですが、

知らない人は0から考えなければいけません。


そしてその考えたところで

そのコードは前者のコードに比べて、

きれいか、短いか、あるいは実行が早いかは保証されていません💦


知識が増えるほど質の良いプログラムを作れる可能性が上がります

故に、私はインプットは重要視しているのです。


それでは、私がどのようにインプットしているか紹介したいと思います。

①ネットでワードを調べる

まず、どの質を向上させるにしても

向上に関わるワードを知らないといけません💦


そこで、私は「○○ 初心者」「○○ ベストプラクティス」

といった形で検索し、新しい情報を手に入れています😃


○○の部分の例ですと…

最近はより良いUI/UXの作り方を知りたかったので

UI/UXのベストプラクティスとして検索しました。

そこで「Human Interface Guidelines」と「Material Design」というものを知り、

さらにそれらを作るためのツールとして

Adobe XD」というものが無料*4で使えることを知ることが出来ました😄

developer.apple.com

material.io

では、UI/UXという言葉はどうやって知るのでしょう?

これは、さらに大きな概念 例えば設計とかプログラムの

ベストプラクティスで検索します。


そうすると、他の方が親切にタメになるであろう各種ワードについて

ブログに残して頂いているので、

そこから気になったワードを知っていくことができるでしょう😄

②本を読む

本はある事柄を体系的に学習するのに非常に向いていると私は思います😄

コードをきれいに書きたいならこちらのような本がありますし

自分が知らないけどより効率的なコードの書き方なら

こちらのようなTIPS集があります

コードを書くのに慣れてきたら

視点を広げて開発手法の本を読むのもいいかと😄

手元にお勧めの本が無かったのでリンクは載せてませんが、

アジャイルウォーターフォールモデルなどの開発手法全般の入門書から

学んでみると良いかもしれません😄


開発手法を学んでいくと、実装以外の部分も求められることが分かります。

要求分析、設計、テスト、保守など開発に関わりがある内容を学ぶことで

質の良いプログラムを作るヒントになるかと思います😄


ところで、プログラムは何のために作るのでしょうか?🙄

私の中の答えとしては

「誰かが今より楽になってもらいたい・良くなってもらいたい」

という為に作っているのではないかと考えました。


この考えが合っているかはわかりませんが、

合っていると仮定するなら、

プログラムよりも問いに対する答えが多くある分野があります。


それはビジネスです。


プログラムに限らず経済活動にずぶずぶに関わっている私たちは

成功したビジネス事例やお金稼ぎについて学ぶことは

ユーザー視点で考えるための重要なヒントになるでしょう

私はこれらの本で、その大切さを学びました😄

他にも教養書だったり、思想書だったり読んだりしていますが、

新しいことを知るという事は、関連分野でもそうでなくても

自分の視野が広がり成長に繋がります😄

視野が広がれば、新しいコードの書き方や応用も出来るので

より良いプログラムを作れるようになると、私は思います😆

③公式ドキュメントを読む

私がよくお世話になっているツールとしてGithub*5、Unity*6、Docker*7があります。

最近はPlayfab*8やGodot engine*9 なども使い始めています😆


これらには各種機能の使い方や設計思想などをまとめた公式ドキュメントがあります🙄

それらは初心者にとっては少しくせがあって読みづらいものも多い*10ですが、

読むことで、そのツールの一次情報を得ることができます。


一次情報はほかのブログとは違い、情報の鮮度が高く正確なため

そのツールを使っていく際には、公式ドキュメントを基準に調べていくといいでしょう😄


ただ、読みにくいものもありますので、

読みづらかったら分かりやすく解説しているブログや書籍を参考に

公式ドキュメントを読み解く方が精神衛生上良いかと思われます💦

アウトプット編

インプットした情報はどんな形であれアウトプットするのが望ましいです🙄

それはなぜか?


まず、アウトプットすることで

情報が言葉として編集され知識自体の質が上がります*11😄


また、アウトプットする際にもう一度その情報に触れる為

インプットだけよりも学習効果がありそうです。*12


つぎに、アウトプットした内容が誰かの目に留まるのなら、他の人の役に立つ可能性があります*13

つまり、その人の為になるのです✨

人の為になることは、自分にとっても嬉しいものです

自分の為にも、相手の為にも積極的にアウトプットしてみましょう

Twitterで勉強メモをつぶやく

個人的にアウトプットのとっかかりとしてお勧めなのがTwitterです

Twitterのつぶやきは一回につき140文字という制限があり、

不特定多数が閲覧できるという特徴があるSNSです。


その特性から文字数が限られるので手軽にアウトプットしやすいと私は感じます

また、文字数を減らす意識が働くので、情報の本質が現れやすいのもいいかと😄

さらに、アナリティクスを見ることでつぶやきのフィードバックがどうなっているか

手軽に調べられるのもいいと思います✨


勉強で学んだ事を呟くというのは、かなりお勧めなので

Twitterをまだやってない人は取りあえず試してみてはいかがでしょうか?

②実際に作ってみる

プログラムの質を高めるのに効果的なやり方なのは「実際に作ってみる」ことでしょう

頭の中だけで考えていても、一部がプログラム化出来なかったり、

エラーで止まったりしてうまく行かない事など多々あります💦

コードに出すことで、その考えが現実的か検証できるようになるのです😄

机上の空論より、拙くてもコード化することをお勧めします😆

③ブログにまとめる

こちらは余裕が出てきたらでいいと思うのですが、

ある程度つぶやきが溜まったら、その内容を元にブログに書いてみると良いでしょう😆


Twitterは手軽にアウトプットできるのが魅力的ですが

情報の流れが速すぎるので、検索性はあまりよくないと私は思います😅


ですので、未来の自分や他の人の為に

検索しやすい残るアウトプットを残すと良いかと私は考えています😄

Twitterから残すアウトプットにするのでしたら

同じ文で構成されているブログが適切かと思います🙄


ブログにまとめることで、情報の再整理できますし

後で困った時に、「そういえばブログに残してた」と検索することも可能です


未来の自分や他の人の役に立つブログを残しておきましょう😎

まとめ

質の良いインプット、アウトプットでさらに情報の質を高めていくことで

自分の知識の幅が広がります😆

知識の幅を広げることで、より良いプログラムを作れるようになるでしょう✨


今回は2021年度版という事ですが、来年は

今より知識の質が上がり、もっとより良いブログを作れるようになっている事でしょう

それが楽しみでもあります😎


という訳で今回はここまで

またお会いしましょう😄

*1:新しく書くコードが短い、再利用しやすいなど

*2:Ver.0.0.1→Ver0.0.2にするときに手直しが少ない、追加で他に影響が少ないなど

*3:適切なインデント、コメント、変数名など

*4:Adobe XDのダウンロードは公式から直接出来なかったので、下の記事を参考にしてダウンロードしました。 kata-tip.com

*5:バージョン管理ツール

*6:著名なゲームエンジン

*7:環境構築しなくてもコンテナという単位で環境を用意できる仮想環境

*8:ゲームのバックエンドをほぼ担当できそうなバックエンドサービス 最近ランキング実装で使った

*9:無料で使えるゲームエンジン Unityとは設計思想が異なり個人的には面白いです

*10:もともと英語のドキュメントが多いので翻訳すると変になったりなど

*11:個人の見解ですが、間違ってないとは思います

*12:こちらも個人的な見解になります

*13:実際に私のTweetを見て、そのことを試してみようとコメントをくれた方がおりました。