プログラミングって知識がついてきたけど、イマイチ動きがわからないな?
わかりやすいロジックを組みたいけど、何に気をつければいいのだろう?
この記事はこんな疑問にお答えします。
本記事の内容
・プログラムの動き方がわかるようになる
・ロジックを組んでいくときに気をつけなければいけないこと
・他人が見るものだという意識を持つこと
■プログラムの動き方がわかるようになる
「プログラミングを勉強し始めたんだけど、イマイチプログラムってわからないよ」
「本やネットではプログラミングっていきなり使い方から解説が始まるからね」
「プログラムで大切なことってなんだろう?」
「プログラムのことだけを考えるよりシステムとしての位置づけから理解した方がいいと思うよ」
プログラミングを勉強しようとして、本やネットで情報を集めてきて始めることはとても良いことだと思います。
大半の人は、プログラミングを勉強し始めると、そのプログラミング言語のルールやロジックの組み方といった、いきなり具体的で細かい話から入ってしまいがちですね。
決して間違いではないのですが、やはり全体像を押さえてから理解した方が良いと思います。
プログラムって、それ単体ではあまり意味のあるものではありません。
通常、企業の中でのプログラムはシステムの中の構成要素の一つにしかすぎません。
ある業務(仕事)をするのに、システムを作って動かした方が効率的・正確・大量処理といったことが可能になるからです。
システムとは、以下の最小単位の塊がたくさん集まって、ある特定の業務をするものを通常言います。
・インプット
・プログラム
・アウトプット
インプットとは、以下の3点から入力されるものを言います。
・画面入力のデータ
・ファイルのデータ
・データベースのデータ
プログラムはそのインプットを受け取って、なんらかの処理を行います。
処理されたデータは、以下の3点のどこかに出力されます。
・画面出力のデータ
・出力ファイルのデータ
・データベースに更新するデータ
プログラミングとは、このインプットデータを元にどのような処理をするのかを
指示するものです。
例えば、計算したり、項目と項目をくっつけたり、条件によってこの処理をしたり、といった具合です。
プログラミング言語は人間とコンピュータとのコミュニケーション手段ですから、コンピュータにやってもらいたい処理をわかりやすく伝えてあげることが大切です。
よく障害が起きます(コンピュータの不正な処理によりトラブルが発生すること)が、コンピュータが原因ではありません。
あくまでもコンピュータに誤った指示を伝えてしまった人間の問題です。
コンピュータは指示されたことを正確に素早く大量に処理してくれますが、指示したこと以外のことは一切できません。
間違えるのは常に人間です。
脱線してしまいましたが、要は以下のような動きをします。
インプット → プログラム → アウトプット
■ロジックを組んでいくときに気をつけなければいけないこと
プログラムの動きはわかったところで、次にではどのようなプログラムが良いプログラムなのかを考えてみたいと思います。
自分以外の人が作ったプログラムを見たことがありますか。
たくさんのプログラムを見てくると、わかりやすいロジックのものとわかりづらいロジックのプログラムがわかるようになってきます。
わかりやすいプログラムというか、プログラムの構造はこうあるべきというものがあります。
それが「構造化プログラミング」と呼ばれるものです。
プログラムの細かいロジックは以下の3つしかありません。
・順次
・反復
・分岐
この3つがいろいろ組み合わさっているだけです。
順番に見ていきましょう。
・順次
プログラムは書かれているロジックを上から順番に処理をしていきます。
つまり順次処理を行う、ということです。
処理の順番の番号が割り振ってあって、その番号順に行うわけではありません。
単純に上から下に処理をしていくだけです。
・反復
上から順番に処理するだけなのですが、同じ処理を繰り返すことがあります。
それが反復です。
どういうことかといいますと、宛先ファイルという10人の人の名前や住所が
入っているデータを処理してハガキに印刷する処理があった場合、
データを入力する
住所を印刷する
名前を印刷する
といった処理は10人同じ処理をすることになりますよね。
そういった場合に、同じ処理を繰り返すという意味で反復というわけです。
・分岐
分岐は、ある条件があった場合に判断し条件にあった処理をするためのものです。
例えば、先ほどの10人の宛先ファイルのうち、東京都の住所の人だけ印刷するという条件があった場合、東京都の住所の人は印刷するけど、それ以外の住所の人は印刷しない、という判断が必要になります。それが分岐です。
ロジックはこの3つですが、プログラム全体の構造としては、構造化プログラミングというものがあります。
大きく3つに処理の塊に分けます。
・初期処理
・主処理
・終了処理
初期処理は、そのプログラムの中で最初の1回しか処理をしないものを集めた塊です。
例えば、ファイルを開くことやデータベースへの接続といったようなことです。
主処理は、そのプログラムの目的である処理を集めた塊です。
終了処理は、そのプログラムの中で最後に処理するものを集めた塊です。
例えば、ファイルを閉じることやデータベースへの接続を切ることなどです。
3つのロジックと3つの処理の塊をちゃんと意識して、ロジックを組んでいるプログラムはとても美しくわかりやすいプログラムになっています。
こういったことを理解していない人が書いたプログラムは、とてもわかりづらく
処理も非効率であることが多いです。
プログラムを見る時に、上記の点を意識してロジックを追っていくとプログラムを理解しやすくなります。

■他人が見るものだという意識を持つこと
プログラムを自分の趣味としてやっていて、自分以外の誰にもプログラムを見せないということであれば、以下のことは気にしなくてもよいでしょう。
そうではなくなんらかの仕事に使うプログラムでかつ他の人が見る可能性がちょっとでもあるのなら、以下のことは頭の片隅に置いておくべきポイントになります。
一度作ったプログラムがその後一切手を加えない、ということはまずありません。
法律が変わったり、ファイルのフォーマットが変わったり、OSの変更があったり、など何かしら修正することがあります。
その時に他人の書いたプログラムを見ることになるわけですが、上記の視点を思い浮かべながらロジックを追うと、わかりやすくものとわかりづらいものが出てきます。
当然、わかりやすいプログラムは、どこをどう直せばよいかわかるのですが、わかりづらいプログラムは理解できないうえに、どう直したらよいかわかない場合もあります。
そうすると、時間や工数に影響が出て、金額が高くなってしまいます。
ですので、自分がプログラミングする際は、他人が見るものである、という意識とできるだけわかりやすいロジックにすることがとても大事になってきます。
優秀なプログラマー、システムエンジニアは、総じてこうしたことがキチンとできています。
イマイチなプログラマーやシステムエンジニアほど、こうした点がいいかげんだったりします。
みなさんが、優秀なプログラマーを目指すのであれば、繰り返しになりますが、以下の点を意識してください。
・プログラムはインプットとアウトプットが必ずある
・順次、反復、分岐がロジックとしてある
・初期処理、主処理、終了処理にわける
ここをわかった上でプログラミングをすると格段にレベルアップが図れると思います。
スポンサードサーチ退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング