🐯

新しい言語を始めた時にスキルアップを測るための課題

2024/11/14に公開

対象とする読者

新しいプログラミング言語の学習を行う人。

新しいプログラミング言語を学ぶ

趣味としてプログラミングを人も仕事としてプログラミングを行う人も新しい課題やプロジェクトのために今まで触れたことがないようなプログラミング言語を始めるといった経験があるだろう。その時、どのようにして新しい言語を習得するだろうか。

本記事では新しいプログラミング言語を学習する際の到達度合いを把握できる課題の例を紹介する。

一般的な課題

Hello, world!

Hello, world!は言わずと知れたプログラミング課題であろう。何をするにも基本は結果の出力が必要である。したがって、端的に出力の方法を確認できるHello, world!は最初の課題として適当である。

https://ja.wikipedia.org/wiki/Hello_world

FizzBuzz

FizzBuzzは言葉遊びの一種であり、3の倍数のときFizz、5の倍数のときBuzz、15の倍数のときFizzBuzz、そのどれでもないとき数字をそのまま言っていく遊びである。
この課題では、プログラミングに必要な条件分岐や繰り返しの課題として適当である。

https://ja.wikipedia.org/wiki/Fizz_Buzz

四則演算可能なCLI電卓

対話型インタプリタ環境があるプログラミング言語はしばしば電卓のように使うことが可能である[1]。そのため、CLI(コマンドラインインターフェース)で動く電卓は一種の対話型インタプリタと考えても良いだろう。CLI電卓の作成は構文解析や再帰的処理など、応用的なソフトウェア開発の足掛かりとなる技術を身につけることができる。

電卓の機能としては以下のようなものが考えられる。

  • 数値
  • 加算(+)
  • 減算(-)
  • 積算(*)
  • 除算(/)
  • 剰余算(%)
  • 適用順序(())

Brainfuckのインタプリタ

Brainfuckは最も有名な難解プログラミング言語の一つだろう[2]。Brainfuckというプログラミング言語それ自体はソフトウェアの開発に到底利用できるものではない。しかしながら、その言語のインタプリタの実装は比較的容易であり、そして多くのことを学ぶことができる。具体的にはここまでの内容に加え、ファイルの入力などの操作を身につけることが可能である。

https://ja.wikibooks.org/wiki/Brainfuck

特殊な課題

クワイン

クワインはプログラミングにおいて挑戦的な課題の一つである。クワインとはプログラムを記述するソースコードそれ自身を出力するプログラムを意味する。つまり、クワインのソースコードとクワインの出力は文字列として比較した時に一致することを意味している。クワインの記述の方法は言語によって大きく異なるがほとんどの言語で難易度が高い課題となっている。

https://ja.wikipedia.org/wiki/クワイン_(プログラミング)

最後に

何か思いつけばその都度追加する。

脚注
  1. https://docs.python.org/3/tutorial/introduction.html#using-python-as-a-calculator ↩︎

  2. https://esolangs.org/wiki/Esoteric_programming_language#:~:text=the most popular esoteric languages are probably Brainfuck and Befunge ↩︎

Discussion