何となくプログラミングを勉強したくなったけど、作りたいものが特にない人は多いと思います。たまに作りたいものがないのにプログラミングを始めるのはおかしい的な意見を見かけますが、私はそうは思いません。ただ勉強をするうえで小さな目標はあったほうがいいので私なりに勉強になった「作るもの」を提案します。教える側の立場の人で悩んでいる人も参考にしてみてください。
プログラミングにおいて「特に作りたいもの(目的)がない」という状態
この状態は、学習を始めようか迷ってる人・始めたての人がなりやすいです。
理由は単純で、そもそもソフトウェアがどのようなことができるか・どのように使われているかを把握していないからです。
1回でもプログラミングを仕事や趣味で十分したことあれば、必要になりそうな機能や便利そうな機能を想像できるようになるのでこの状態にはなりません。
逆に学習を始めたての人はこの状態になるのも珍しくないと思うので、ある意味普通です。
おススメの作るべきもの
プログラミング初級者・初心者に人に教えた経験も踏まえて2つ提案します。
電卓
ぶっちぎりの1位は電卓です。
初学者はとりあえず電卓を作成みてほしいです。
「え?四則演算の機能を実装するだけじゃん?楽勝でしょ?」
と思った方こそ、ぜひ続きを読んでほしいです。
例えば以下操作があった場合、数字表示部に表示する値はどのように作成すればよいでしょうか?
- 「1」を押す
- 「1」を押す
表示部には「11」が表示されますが、その際の処理(コード)は想像できますか?
また似たような操作ですが、以下操作の場合はどのような処理を書くべきでしょうか?
- 「0」を押す
- 「0」を押す
「1」を連続して押す場合と、同じではダメですよね?表示部に「00」とは表示しないので。
このようにプログラムを作ろうとすると0(ゼロ)という数字の扱いをじっくり考えることになります。
電卓を作成する前には、仕様(主にどれくらいの機能を実装するか)を自分なりに考えて決めてみましょう。
例えば
- 表示部は、入力中の数値のみを表示するのか?式全体を表示するのか?
- 小数点ボタンを実装するか?
- 他機能(ルートなど)をどこまで実装するか?
あと電卓はボタンの配置がおおよそ決まっていますね。
UIパーツの配置方法も色々あるのですが、その中でもグリッド(格子)状の配置は基本になるので、是非こだわってください。
スロット・ルーレット
2つ目はスロット(ルーレット)です。
電卓との違いは何でしょうか?
ボタンを押すときのみに表示が更新される電卓ですが、スロットは、止めるボタンを押されるまでルーレット表示を自動で更新し続けなければなりません。
3つルーレットがあった場合、3つ目(最後)のボタンが特別なのは想像できますね。
また揃った出目に応じたスコアを算出する処理が必要です。どのような条件成立に配点するかでプログラムの難易度も変わります。以下を参考に仕様を決めてみてください。
- すべて同じ数字
- 2つ同じ数字
- 全て偶数/奇数
- 連番 etc
このように条件を増やすことで、プログラミングについていろいろ学べそうでもありますね。
まとめ
プログラミングで作るべきものがない方・悩む方は、電卓とルーレットを作ってみてください。
簡単そうに思えてやってみると、結構悩むと思います。
「分かるとできるは違う」というのを実感してもらえたらと思います。
もしプログラミングをどの言語で始めるかを迷っている方は、「C#」をおススメします。
開発環境も使いやすく、GUI(画面)の作成もしやすいです。
以下記事で始め方を紹介しています。
コメント