コンピュータのプログラミングってんなんだ?基本的なことを一通りまとめてみました。

こんにちわ。

今回はプログラミングの話です。

ちなみにぼくは10代、20代の頃は、趣味でプログラミングをやっていました。

サンデープログラマー。。。かな?

社会人としても、しばらくはプログラムを書いたりもしていました。

前回、プログラムやソフトウェアについての記事を書きました。

コンピュータのプログラムってなんだ? ソフトウェアとは?
こんにちわ。 今回は、コンピュータのプログラム(以下、プログラム)についての基本的なお話です。 さて、コンピュー...

簡単に言うとプログラミングとはプログラムを作ることです。

ちなみにプログラミングですが、

コンピュータのプログラミング(英: programming)とは、コンピュータプログラムを作成することにより、人間の意図した処理を行うようにコンピュータに指示を与える行為である。

ー出典:ウィキペディア

と定義されています。

コンピュータは指示された通りの事しか出来ません。

コンピュータに対してやってほしいことを、コンピュータが理解できるように正確に伝える事が必要です。

その手段がプログラミングですね。

スポンサーリンク
スポンサーリンク




プログラムをする人をプログラマーと言う

プログラミングをする人をプログラマと言います。

プログラマーは、上記のようにプログラミングをするのですが実際のところプログラムを書けるだけではダメです。

プログラミングそれ自体についての能力や知識に加えて、プログラムが対象とする問題領域などについての知識やスキルも必要になります。

また、職業としてプログラミングを行う場合、要件定義、基本設計、プログラム設計、プログラミング、デバッグ、テストなどの作業が工程をこなすことができないといけません。

また、その前提としてコンピュータアーキテクチャの理解も必要です。

ただ、日本の場合は分業化が進んでいるので、設計はシステムエンジニア、プログラミングはプログラマーといった役割分担がされることが多いですね。

プログラミングの作業

人間が行いたい作業をコンピューターにもわかるように伝えるのがプログラミングですが、コードを書くだけがプログラミングではありません。

プログラミングの作業は大きく分けると、

  1. 目的の明確化(要件定義)
  2. 設計
  3. 実装(コーディング)
  4. 修正(テストとデバッグ)

の4つに分かれるといっていいでしょう。

プログラムを作るのは何かの問題を解決するためですので、最初にやるべきことは問題を解決するために、必要十分な仕様を決めることとなります。

そして次に、その目的を果たすために、仕事をどのような手順でこなすべきなのかを設計します。

そして、その設計に沿って実装(コーディング)していきます。

設計した内容をコンピューターにもわかるように狭義のプログラミングという作業をここでやります。

最後に、プログラムのテストと修正(デバッグ)を繰り返します。

仮に、設計通りに正しくプログラミングされたとしても、実際には目的を満たしていない場合があります。

その場合は、どこかの作業に誤りや過不足があるので、前の段階にさかのぼって作業をやり直すこともあります。

プログラミングにおいてはこのような作業段階を意識し、適切な順序で作業することで効率的なプログラミングをすることができます。

仕事ではなくて、趣味や勉強でやる場合も、これらの段階を踏まえてやる方が効率的なプログラミングができるということは言うまでもありません。

プログラミングを学ぶメリット

ところで、IT業界といいますか、プログラマがたくさん属しているシステム開発業界は日本では今や3K業界です。

ちなみにこの業界の3Kは、「きつい」、「帰れない」、「厳しい」ですかね。

ですが、プログラミングということだけに関して言いますと、プログラミングを学ぶことは一種の流行のようになっていますし、小学生や中学生向けの「プログラミング教室」は盛況のようです。

いったいプログラミングを学ぶメリットって何なんでしょうね?

とにかくプログラミングができるようになる

まずは、プログラムが書けるようになる。。。というのが最初のメリットです。

いくら3Kと言えども、手に職を付けるという意味でのハードルは比較的低いですね。

また、実際、プログラマーになるつもりがなくても、ITとビジネスはいまや密接な関係にあります。

プログラミングはできなくとも、プログラミングに対する知見が深ければ活躍できる場所はこれからもたくさん用意されると思います。

論理思考能力が身に着く

プログラムを作成するためには、論理的に考える力が必要不可欠です。

プログラムは論理的に完結でないと動かなかったり、動いたとしても意図する動きをしないことが多いです。

そのため、どういった処理をさせたいのかを考え、その考えを具体化し、必要な処理を一つ一つ積み上げていくことが必要ですし、その際に条件分岐や繰り返しなども考慮し、処理に漏れやダブりがないようしないといけません。

その過程で、論理的な思考能力が徐々に身について行きます。

問題解決能力

プログラミングにおいて、バグ(不具合)はいつもついてまわります。

意図したとおりに動かない、エラーが発生してもなかなかその原因がわからない。。。そんな事態が度々起こります。

こうしたトラブルに対して、自分の頭で考えて試行錯誤し、原因と対応策を突き止めることは問題解決能力を育むことにつながります。

創造力や自己実現能力

プログラミングは、考えたことを具体化する手段としてはとても優れたものです。

仕事にしても遊び(ゲーム)にしても、思い浮かんだアイディアをどんどん形にすることができます。

そういった活動の中で創造力と自己実現能力を伸すきっかけになります。

自発的な学習能力の育成

プログラミングは、インターネット上にたくさんの情報があり、最初にきっかけさえ教えてもらえば、あとはどんどん、自発的に学ぶことができます。

そして、特に子供などであれば、プログラミングから始まって、算数や理科、社会など他の教科も自発的に学習するきっかけにもなります。




他にも色々メリットはあると思いますが、ぼく自身はどう思っているかというと、

何事もほどほどが大事

ということです。

既にほかでこれらのメリットを取得してしまっていたり、取得する手段を持っている人はプログラミングを学んでも仕方がありませんし、特に趣味や仕事でプログラマーにならない人には必要ないと思います。

大人になったら、もちろん論理的な思考は大事ですし、ITリテラシーがある方が世の中、生活しやすいのは事実ですが、プログラミングを学ぶ以外の方法でもけっこう身に着くと思います。

特にお子さんをプログラミング教室に通わせるのであれば、あんまり将来、こんなスキルが身につくから。。。とかそういったことを重視しない方がいいと思います。

あえて言うなら、将来、ロボットをつくるとか、人工知能をつくるとかそういった夢を持てたり、より創造力を磨いたり、そういうことができればいいんじゃないかなって思います。

あんまり子供のうちから理屈っぽくなると、ちょっと嫌ですしね。(笑)

最後までおつきあい、ありがとうございました。

スポンサーリンク
スポンサーリンク




スポンサーリンク




シェアする

  • このエントリーをはてなブックマークに追加

フォローする