見出し画像

【React.jsで、BlackJackを作る】:まえがき

「私の選択」を紹介したい

このマガジンでは、React.jsでトランプゲームのBlackJackを作る過程を投稿していきます。
そして、その中で生じた「私の選択」を投稿していきたいと思います。

ときに孤独なプログラミング

プログラミングは、ときに孤独な作業です。
プログラミングを勉強しているときに、こんなことを思ったことはありませんか?

このコードでいいのかな?
他の人だったらどう書くんだろう?

チームで開発しているならともかく、そうではなく一人でもくもくと勉強していると、自分の書いたコードが「これでいいのかな?」と不安になることってありますよね。

なぜ不安になるのか?

それはきっと、プログラミングが自由だからなのだと思います。

「自由」ってどういうこと?

何かプログラムを作ろうとしたとき、それを実現するための方法は何通りも存在します。

例えば「画面にトランプのカードを表示する」ということ一つとってみても、考えることは以下のようにたくさんあります。
・カードの大きさはどうするか?
・画面幅によってカードの大きさは変える?
・データの持ち方はどうするか?
・パーツ化する際の API はどうするか?

プログラミングは「選択の連続」なのです。

「選択」のない学習環境

プログラミングを勉強するときは、教本を買ったり、スクールの教材を使用したりということがほとんどだと思います。
でもそれらにはサンプルコードとして「出来上がったもの」しか書かれていません。
読者が道に迷わぬよう、選択をスキップさせてくれるのです。

初心者を脱するためには?

一つのことを実現するだけでも選択は無数にある、と先に述べました。
一方で、初心者向けの教本ではその選択をさせないようにしている。

初心者を脱するための鍵はここにあるのではないでしょうか。

選択できるようになる

数多くある選択ですが、もちろんベターな解というものは存在します。
それは以下の三つのバランスによります。

・パフォーマンス
・可読性
・保守性

要するに「速くて読みやすくて直しやすいか」ということですね。

「バランス」と書いたのは、三つすべてが共存できない場合があるからです。
速い書き方でも読みにくければ、少し遅くても読みやすい書き方にするほうが保守性にも繋がってよいかもしれません。もちろんその逆も。

そこらへんを選択できるようになるということが、初心者を脱せたということなのではないでしょうか。

どうすれば選択できる?

では、具体的にはどうしたらよいのでしょうか。
教本を読んで「作り方」を知るように、「選択」を知ればいいのだと思います。

企業に就職したら、まず新人研修として教本が支給されたり、外部のスクールを受講させられることになるでしょう。
そして「作り方」を知った後は、OJTでプログラミングをしていきます。
実務になるので、そこでは書いたコードを評価してもらう「レビュー」が行われます。

上司は新人のコードに対して、「こっちの書き方のほうが速いし簡潔だから」という理由付きで指摘をします。
そう、新人はこの「理由」から選択を知るのです。

「へ〜、そうやって選択してるんだ」という発見の場になればいいな

この連載では、私が BlackJack ゲームを作る上で「なんでこのように書いたか」という選択について、投稿していきたいと思います。

この連載が、少しでもあなたの発見に繋がり、あなたのプログラミングの助けになることを願って、まえがきとします。

はこだてたろう

この記事があなたのお役に立ちましたら、よろしければサポートをお願いいたします! より良い記事をお届けできるよう、活動費に充てさせていただきます。