超初心者向け!プログラミングを勉強するきっかけ作り

プログラミング プログラミング

こんにちは、すきま堂プログラマーです。

漠然と”プログラムを覚えたい!”と思ったことはありませんか?

プログラミングのとらえ方

大工

私は、プログラミング(プログラマー)は大工さんと一緒だと思っています。
プログラマーだけでは、プログラムは完成しません。

C言語で”hello world!”を画面に出す方法がよく取り上げられていますが、
それは、「画面にhello world!を表示する仕様を実現したプログラムです。

家を建てる技術を持っていても、設計図が無ければ、家は建ちません
建てられても、ツギハギの家が完成します。

もちろん、仕様を考えてプログラミングができる人もいます。
頭の中に設計図があり、家を建てる大工さんもいます。

ですが、私もよくやりますが、結構大変です。
結局、一度紙に書いたりして整理することもしばしば。

というわけで、今回は仕様を考えることについて書いていきたいと思います。

プログラムの仕様とは

プログラム仕様(プログラムしよう、: Program specification)は、プログラムに求められることを定義したものである。プログラムの設計図や開発者から見たユーザーマニュアルの元となる文書のような「非形式的」な形態の場合と、数学的に厳密に動作を定義する「形式的」な形態の場合がある。
出典: フリー百科事典『ウィキペディア(Wikipedia)』

プログラム仕様 - Wikipedia

一人で作る場合は、簡単に言うと「やりたいこと=プログラム仕様」ですね。

具体的にプログラムでやりたいことを考える

困っている人

知人からプログラミングって何から覚えたらいいの?という相談がありました。
話を聞いてみると、倉庫の中の商品を管理するシステムを作りたいようです。

思いつくのは「在庫管理システム」あたりでしょうか。

ただし、このままだと話が大きすぎるので、少しずつ分解していきたいと思います。

プログラムでやりたいことを分解して考える

まずは在庫管理システムという大きな話を、連想ゲームのように内容を分解して並べてみます。

  1. 倉庫の地図を表示したい
  2. 地図上のどこに何が何個あるのかが一目でわかる
  3. “どこに何が何個”を、自由に編集したい
  4. 倉庫は広いのでタブレット端末やスマホで移動しながら見たい
  5. 従業員同士で共有したい

こんな感じでしょうか。
最初は、「在庫管理システム」という大きな話でしたが、連想ゲームで分解することによって、一つ一つが少しだけ簡単に見えてきました。

どのプログラム言語で実現するか

仕事

ここまではプログラムの話は全く出てきませんでしたが、ここからはシステムを実現するためのプログラムについて具体的に考えていきます。

まずはシステムを作るために、どのプログラム言語で作成するかを考えます。
とはいっても、極論ほぼほぼどのような言語でもできてしまうと思います。

「プログラムといえばC言語かな」とか、
「Javaって名前聞いたことあるからJavaにしよう」とか、
「html(マークアップ言語ですが…)は触ったことあるからhtmlにしよう」とか
なんでもいいのです。勉強ですので。

ただし、はじめに決めたら、最後まで完成させることが重要です。

色々な壁がありますが、それを乗り越えるたびに感動や達成感があります。
そのあたりがプログラミングの楽しいところでもありますからね、ぜひ味わっていただきたいです。

プログラミング実行の流れ

どの言語で作るか決めたら、まずは画面に表を表示させるコードを書いて、表示させてみましょう。

表を表示できたら、下記表に名前を表示させ、次に商品名や在庫数も表示させます。

そうすると、内容を編集する必要が出てくるので、固定表示ではなく何かに記憶させる必要があります。

端末のテキストに保存しても他の人と共有できなさそうなので、共有のデータベースが必要そうです。

・・・という感じで、色々と必要に応じた流れで技術を学んでいきましょう。

(おまけ)プログラミングには目標があるといい

目標

初心者のうちに参考にする学習本やウェブサイトは、その一冊、もしくは一シリーズで一つのシステムやゲームなどが完成するものが一番参考になると思います。

“ゲームを作る” “〇〇のシステムを作る”という目標に向かって、コーディングを勉強していくわけですね。

一通りシステムやゲームが完成したら、完成したコードを見返したり、自分なりに改造したりしてより理解を深めていくと良いと思います。