2021年4月7日
|2022年7月4日
この記事の目次
プログラミングとは、コンピュータに作業の指令書を作ることです。たとえるなら「やることリスト」を作るようなもの。コンピュータは、人間の命令通りに動いてくれますが、逆に言えば、命令がなければ何もできません。命令を1つずつ書いて、コンピュータに何をすればよいか教える必要があります。
この命令を並べたものを「プログラム」と呼び、プログラムを書く作業を「プログラミング」と呼びます。
コンピュータが読めるのは、機械語という専用の言語だけ。残念ながら、日本語や英語といった人間の言葉は通じません。機械語は、”0”と”1”の並びで構成される電気信号です。たとえば、「0+1は?」と聞いても答えてくれませんが、「00110 000 00000001」と聞くと「1」と素早く答えてくれます。けれど、人間が”0”と”1”しか使わないで読み書きすることは至難の業であり、機械語を人間が普段使っている言葉に近づけた「プログラミング言語」が生まれました。
人間の言葉を機械語に翻訳するのは不可能ですが、プログラミング言語は機械語に翻訳することが可能であり、プログラミング言語から機械語に変換する作業を「コンパイル」と呼びます。
プログラミング言語には、アプリ開発をするための言語やWeb開発をするための言語、人工知能(AI)開発をするための言語など、様々な種類があります。ここでは、いくつかの言語を目的別にご紹介します。
アルゴリズムとは、ある問題を解決するために、「何を」「どのような順番で」「どう動かすか」という解決手順・やり方をまとめて示したものです。
プログラミングをする際は、なるべく処理の時間が短く、作業の量が少ないプログラムを書くのが理想です。たとえば、家に帰るとき、最短かつ少ない動きで帰れた方がいいですよね。渋滞状況や信号、帰るまでの寄り道など、様々な条件を踏まえたうえで、一番スムーズに帰れるルートを行く方が、使う時間も体力も節約できます。プログラミングも同じです。実行速度が遅かったり、メモリを大量消費をしたりするプログラムを書くと、正しく動いても燃費が悪いため、実用的ではありません。
そんな時に活躍するのがアルゴリズムです。簡潔で処理の時間が短いアルゴリズムを組めれば、高速かつメモリを節約できる効率的なプログラムを作れるので、優れたプログラミングと言えるわけです。
アルゴリズムを組むときに使うのは、たった3つの構造だけ。複雑なプログラムも、元を辿れば、3つの構造を組み合わせたアルゴリズムで出来ています。その3つの構造とは次のようなものです。
● 順 次
1つの処理が終わったら、次の処理に進むといった論理構造
● 分 岐
ある条件に従い、2つの処理のどちらかを選択して実行するといった論理構造
● 繰り返し
ある条件を満たすまで処理を繰り返し実行し、条件を満たしたら次の処理に進む論理構造
アルゴリズムの順次・分岐・繰り返しの3つの構造をフローチャートで説明します。ここでは、カレーを作る手順をアルゴリズムで表現してみましょう。
・順次
順次とは、1つの処理が終わったら、次の処理に進むといった論理構造のことです。カレー作りをフローチャートで表すと、次のようになります。
・分岐
分岐とは、ある条件に従い、2つの処理のどちらかを選択して実行するといった論理構造のことです。カレー作りでは「子どもが食べるか」を条件にして、子どもが食べるなら甘口のカレー粉を入れるようにしました。フローチャートで表すと、次のようになります。
・繰り返し
繰り返しとは、ある条件を満たすまで処理を繰り返し実行し、条件を満たしたら次の処理に進む論理構造のことです。カレー作りでは「全ての具材が切れているか」を条件にして、全ての具材を切り終わるまで作業を繰り返しました。フローチャートで表すと、次のようになります。
ここまでの説明で、プログラミングの考え方がなんとなく分かってきたのではないでしょうか。この先は、実際にプログラミングをしていく大まかな流れを見ていきましょう。
プログラミングは、まずプログラムで「何を作りたいか」を決めることから始まります。たとえば、「生活に便利なスマホアプリが作りたい」「入力欄は分かりやすくしたい」「シンプルなコードで構築したい」などです。これを要求といいます。プログラミングの背景には、要求を満たすという明確な意図が存在します。
要求が整理できると、次に要求を満たすための準備物を決めます。要求に合ったプログラミング言語や技術、機材、大まかな工程といった内容です。これを要件といいます。システム開発のプロジェクトでは、時間・予算・人員も要件として見積もっていきます。
要件を明確に決めることで、完成に向けて必要なものがまとまり、プログラミングを計画的に進めることができます。
何を作りたいか要件を決めたら、次はユーザーの視点から「どんなシステムを作るか」といった外部設計を決めます。具体的には、操作画面や操作方法といった、ユーザーから見える部分の仕様を設計します。つまり、「これを作りたい」に対して「それじゃあこんなシステムを作ろう」とシステムの基本をおおまかに考えることです。
「どんなシステムを作るか」が決まったら、次はコンピュータで「どんなプログラムを組むか」を細かく決めていきます。これを内部設計といいます。外部設計はユーザー視点で作られますが、内部設計は開発者視点で作られるのが特徴です。どんなプログラムを組めばいいのか、効率的なアルゴリズムが組めるようにフローチャートを使いながら、必要な機能や項目を考えていきます。
ただ文章を並べていくだけでは理解しづらい流れも、フローチャートで全体像を見やすくすることで、スムーズにプログラミングを行うことが可能です。また、作業が複雑になると、自然と抜け漏れが出てきます。フローチャートは、そういった仕事のミスを防ぐのにも役立ちます。
プログラムの設計が終わったら、いよいよプログラムを組んでいきます。プログラミング言語を使ってコードを書く作業をコーディングと呼びます。コーディング作業だけがプログラミングと思われがちですが、設計~テストまでがプログラミング作業で、コーディングはプログラミングの作業の一部です。プログラミング=コーディングではないので注意しましょう。
プログラムを組んだら、最後に正しく動くかテストを行います。テストには、次のような種類があります。
システムは複数のプログラムで出来ています。1つ1つのプログラムが正しく動くか(単体テスト)、プログラムを複数つなげても正しく動くか(統合テスト)、プログラムを全部つなげても正しく動くか(システムテスト)、ユーザーが実際に使っても正しく動くか(運用テスト)といった多くのテストが行われます。
テストを行うことで、正しく動かないプログラムやシステムを見つけることができます。プログラムやシステムにエラーが発生した場合、組んだコードに欠陥(バグ)があるので、バグを取り除かないといけません。このバグを取り除く作業をデバッグと呼びます。
テストが完了したら、ようやくプログラムの完成です。このようにテスト環境を経て、システムが実際に動く本番環境へ納品することが出来ます。
ここまで、プログラミングの考え方と大まかな流れをご紹介してきました。しかし独学では、実際にプログラムを組んでいく作業でつまづいてしまう方も多いのではないでしょうか。効率的に学習を進めるためには、プログラミングスクールも候補に入れてみましょう。
たとえば、学舎さくらでは、就職やキャリアアップなど、目的に合わせて丁寧かつ無料でサポートしてくれます。基礎的な知識から実践的な実力まで身に付くので、プログラミングを体系的に学ぶにはプログラミングスクールもおすすめです。
プログラミングの考え方や全体の流れを理解しないまま勉強を始めてしまうと、せっかく覚えた知識を上手くつなげられず、プログラムを組むときに戸惑ってしまうこともあるでしょう。プログラミングは、アルゴリズムで構造を作ったり、フローチャートで流れを整えたりするなど、俯瞰的に見ることも大切です。基本の考え方が理解できれば、プログラミング作業を何のためにしているのか意図を明確に持って、全体的なイメージを掴むことから始めていきましょう。
最新記事
プログラミング学習に暗記は不要!未経験から効率的に学習する方法
2024年4月18日
この記事の目次1 【結論】プログラミング学習に暗記は必要ない1.1 【理由1】すべて暗記するのは不可能なため1.2 【理由2】カンニングしてもいいため1.3 【
プログラミングに必要なパソコンのスペックとは?初心者向けの選び方
2024年4月18日
プログラミングには、最低限のスペックを備えたパソコンが必須です。とはいえ、初心者の人は「プログラミングに必要なパソコンのスペック」を把握していないでしょう。今回
インフラエンジニアのやりがい5選!向いている人や一日の仕事の流れも解説
2023年10月20日
ITエンジニアのなかでもインフラエンジニアに興味を持っており、「どのようなやりがいがあるのだろう?」と気になっている人もいるのではないでしょうか。 type転職