匠の相駕籠

ソフトウェア開発者の日常

プログラミングの練習に向いているテーマ

 かつて、知人がプログラミングの能力を評価したり、またはプログラミングのトレーニングには、ゲームを作らせるのがよいという話をしていた。

 

 わたしも、なんとなく同じことを思っていたけど、その理由については、なんでだろうなーと、じっくり考えたことはなかった。

 

 

 最近、React というウェブフレームワークの勉強をしていたのだけど、一番最初のチュートリアルが、簡単なマルバツゲームを作るという題材だった。

 

 このチュートリアルをやっていて、なんでゲームを作ってみると良いのか、やっと答えが見つかった。

 

 

 

 わたしがプログラミングを学び始めたのは20歳のころだから、10年以上も前だけど、プログラムというのは「アルゴリズムとデータ構造」であると、一番最初に教わった。

 

 知り合いの大学生の方に、この話をすると、まったく聞いたことがないと言う。いまは、もうそういうふうに教えられていないのかもしれない。

 

 

 HTML や CSS だけを書くエンジニアは、すこし前まで「マークアップエンジニア」と呼ばれていた。なぜかというと HTML や CSS は、プログラミング言語ではなく、マークアップ言語と呼ばれている。

 

 HTML や CSS はプログラミング言語ではない。なぜかというと、これらはデータ構造を持っていないからだ。

 

 

 ゲームを作ってみるとわかるのだけど、そこはデータ構造の塊で、データ構造によってアルゴリズムの筋が良くなったり、悪くなったりすることが実感できる。

 

 悪いデータ構造をしていると、簡単なことが簡単に実装できない。

 

 腕のよいプログラマーならば 100 行で実現できることが、腕の悪いプログラマーにかかれば 10000 行になったりする。

 

 

 エンジニアと呼ばれる人たちの人口がどんどん増えてきて、活動の幅も広がり続けている。現場で経験を積んできたエンジニアなのに、ちょっと複雑なプログラムになると変なコードを書くようなこともある。

 

 データ構造について、しっかりと向き合ったことがある人と、そうでない人の間には、すごく大きな溝があると思う。長く活躍できるプログラマーというのも、どちらかと言うと、やはりデータ構造を学んできた人だろう。

 

 

 もし、これからプログラマーの研修などを引き受けることがあるとすれば、いまの若い人たちにこそ、ゲームを作ってもらうというエクササイズが、必要なのかもしれない。