最近、こんなことを感じています。
「プログラミングを学ぶことは、人生を豊かにする。」
「プログラマーは、偉大だ。」
今回の記事では、このように感じる根拠の概念的な部分である、プログラミングの本質などについて書いていきたいと思います。
プログラミングって何なの?という方から、
・プログラミング学習をスムーズに進めたい
・未経験でのプログラマー転職を成功させたい
といった人にも参考になる内容です。
プログラミングとは、何か
「そもそもプログラミングって何なの?」
プログラミングを勉強し始めた当初はよくわかっていませんでした。
そんな時に読んだ「教えてプログラミング」には、プログラミングをこのように定義しています。
目標達成のために
アルゴリズムを作り、
そのためのデータを扱うためのもの
より具体的に表現すると、
目的達成のために
順次、繰り返し、条件分岐という制御方法で処理手順を作り、
データの生成、参照、更新、削除といった処理を扱うツール
です。
私は”目的を達成すること”を大別すると、既存の何かを解決することと、新しい何かを創造することに分かれると考えています。
つまり、プログラミングの本質には課題解決と創造という2つの要素があるということです。
プログラミングの本質は、課題解決と創造
「じゃあ、課題解決や創造って何?」
ってところが次の疑問です。
課題解決とは
人間や動物が課題状況,すなわちある特定の目標を達成する手段が明らかでない状況に当面したとき,新しい反応様式を見出したり,課題に対する新しい見方を獲得し,その目標を達成する過程。
出典:課題解決 - コトバンク
と、出てきました。
「プログラムはこうして作られる」では、プログラミングを
与えられた課題を理解・分析し、それを手順に分解・詳細化し、プログラムとして記述可能なアルゴリズム(処理手順)として組み立てること。
と、定義しています。(もしかしたら少し意訳しているかも・・・)
これは、プログラミングの本質の一つである”課題解決”の要素が強いですが、結構納得できます。
ここで思うのが、課題解決は、情報処理的な立ち位置にあるということです。
処理は、
物事を取りさばいて始末をつけること。
出典:処理 - コトバンク
です。
一方、”創造”は・・・
創造とは
新しいものを初めてつくり出すこと。
出典:創造 - コトバンク
と、出てきました。
”創造”は、特に本からの引用は無いんですが、単語の意味から、どちらかというとクリエイティブな、情報編集的な立ち位置にあると考えられます。
ちなみに、”編集”はこんな感じ。
一定の志向性をもって情報を収集,整理,構成し,一定の形態にまとめあげる過程,またその行動や技術。
出典:編集 - コトバンク
”創造”と意味が似ているのがなんとなく感じられると思います。
思考が分散していると感じたら、基礎基本の「キ」を思い出す
プログラミングに関わらずですが、何事も基礎基本は大切ですよね。
たま〜に基礎基本の「キ」を思い出すと、目的と目標(手段)をゴチャゴチャにせずに済むかと思います。プログラミング学習やプログラマー転職活動においても。
2020年には義務教育課程でのプログラミング必修化がありますし、プログラミング基礎基本の「キ」は、これから益々注目されていくでしょう。