この記事で解決できる悩み
- プログラミングの基礎を理解するには?
- プログラミングの考え方のコツとは?
- プログラミングの勉強法とは?
編集部: 荒木
編集部の荒木です!こんな事柄がわかる記事をご用意しました。
これから紹介する「プログラミングを構成する2つの要素」を把握すれば、制作物を作るために必要な考え方が理解できます。
なぜなら、考え方には決まった方法があるからです。
この記事では、実際にエンジニアの大塚さんに監修いただきながら、プログラミングの構成に必要なものについてまとめています!
現役エンジニアの大塚です。皆さんのプログラミングライフに役立つ記事をご案内いたします!
大塚
また、まとめるにあたって以下のような情報も参照しましたよ!
この記事で参照している情報
- 現役エンジニアの解説
- 行政法人発行のデータ
- 言語の公式リファレンス
でははじめに、「最初にチェックすべき!プログラミングの基礎用語2つ」について解説していきますね!
最初にチェック!プログラミングの基礎用語2つ
はじめにプログラミングの基礎2つを解説します。
プログラミングの基礎を理解できていないと、プログラムの構成を考えるのも難しいです。
構成を考える際につまずかないためにも、あらかじめ確認しておきましょうね!
基礎用語2つ
- プログラミングとは
- プログラミング言語とは
1. プログラミングとは
プログラミングとは、意図した処理を行うように人間がコンピューターに指示を出す行為です。
仕組みの例として、以下のようになります。
プログラミングの仕組み
【目的】画面上の赤いボタンを押すと、びっくり箱が表示されて開く
<まず条件Aと行動Bを設定>
条件A:画面上に表示されるボタンをクリックしたとき
行動B:びっくり箱が表示されて開く
【命令】条件Aを満たした時→行動Bを実行
基礎部分を理解したい方は、まずプログラミングが動く仕組みから理解していきましょうね!
2. プログラミング言語とは
プログラミング言語とは、コンピューターが使用している「機械語」を、人間にもわかりやすいように言語化したものです。
プログラミング言語は複数あり、目的によって使用する言語は変わってきます。
たとえばスマホアプリでは、「Java」「Kotlin(Android向け)」「Swift(iOS向け)」と呼ばれるプログラミング言語が必要となります。
プログラミング言語の種類については、のちほど詳しく紹介しますね!
また以下の専門用語も頻繁に使うので、あらかじめチェックしておきましょう。
チェックしておくべき基礎用語
- テキストエディタ:プログラムを編集するためのツール
- 高級言語:人間が理解しやすいプログラミング言語
- 低級言語:コンピュータがそのまま解釈して処理できるプログラミング言語
- ソースコード:プログラムの文字列
- 実行形式:コンピュータが解釈して実行できる形式
- ビルド:コンピューターが実行できる最終的なファイルを作成
- ラッパー:ソフトウェアやプログラムのクラスなどを、異なる環境で利用できるようにする
- コミット:変更の確定
- デバッグ:プログラムのバグを発見して修正する作業
- バグ:プログラムのエラー
- 例外:バグとは異なる想定されたエラー
- ファイルパス:パソコンやインターネット上のファイルやフォルダの場所の指定方法
プログラムを構成する2つの要素
プログラムを構成するためには、2つの要素についても把握しておきましょうね。
要素を理解すれば、プログラミングの構成を考えやすくなりますよ!
2つの要素
- 命令5つを理解する
- アルゴリズムを考える
1. 命令5つを理解する
コンピューターには以下のように5種類の装置があり、それぞれに命令して動すことで機能します。
装置5種類
- 入力装置:コンピュータにデータや情報などを送るための装置。
- 出力装置:コンピュータ機器からデータを受け取って、人間にも認識できる形に提示する装置。(プリンターなど)
- 演算装置:制御装置からの命令で四則演算や論理演算を行う装置。
- 制御装置:システム全体、または一部の制御を行う装置。
- 記憶装置:データやプログラムの記憶を行う装置。
そして5つの命令をそれぞれ対応する装置に送れば、コンピューターを動作させられますよ!
装置への命令
- 入力しなさい→入力装置
- 出力しなさい→出力装置
- 計算しなさい→演算装置
- 処理を制御しなさい→制御装置
- 記憶しなさい→記憶装置
2. アルゴリズムを考える
プログラミングのアルゴリズムとは、問題解決するための手順のことです。
プログラミングでは、大量のデータを取り扱わなければなりません。
そのためデータを整理するために、アルゴリズムを使います。
ここからは、データを昇順・降順に整列させるソートアルゴリズム3種類について解説しますね。
1. バブルソート
バブルソートとは、隣同士の数字と比べて、小さい方を左側に寄せて並べ替えする仕組みです。
軽い方を上に浮かせる(左に寄せる)ことから、名前の由来が『バブルソート』となりました。
たとえば隣同士の数字を大小比較して、小さい数字を左に、大きい数字を右に持っていく処理方法ですよ。
処理方法の例
[10,7,3,5,1,8]の番号の並びを降順にソート
→[10,7,3,5,8,1](1と8を交換)
→[10,7,3,8,5,1](5と8を交換)
→[10,7,8,3,5,1](3と8を交換)
→[10,7,8,3,5,1](3と8を交換)
→[10,8,7,3,5,1](7と8を交換)
→[10,8,7,5,3,1](3と5を交換)
2. クイックソート
クイックソートとは、他のソートと比べて高速なソート(並び替え)が実現可能なアルゴリズムです。
クイックソートの仕組みは、「ピボット」と呼ばれる基準値を決めてコンピューターのデータをグループごとに分割します。
そして基準値以上と基準値未満でグループを分けます。
同じ処理を繰り返し、そのあとに要素を入れ替えるのです。
引用元:鹿児島大学
クイックソートのやり方
- はじめに基準値を選びます(ここでは3に設定します)
- 数値との差が大きくつく手前で分けます。
- ラインから左に3以上の最も大きい数字、ライン右側は3未満の最も小さい数字を見つけます。
- 見つけたらその数字を入れ替え、同じように左に3以上で右に3未満の数字が他にもないか探します。
- ない場合は、ラインを引いた左の数字と右の数字でグループを分けます。
- 分けられたら、またグループごとに同じ手順で入れ替えましょう。
- 最後1234…という順番になっていたら成功です。
このとき基準値の取り方はさまざまありますが、クイックソートが必ずしも早いわけではありませんよ!
大塚
3. マージソート
マージソートとは、データの分割を繰り返してバラバラになった要素を整列します。
そして新しい配列を生成して、数値の大小の順序に気をつけながらマージ(併合)していくやり方です。
やり方の例は、以下の通りです。
マージソートのやり方
[9, 3, 4, 7, 5, 2, 8, 1]を昇順にソートした場合
[9,3,4,7] [5,2,8,1]
↓[9][3][4][7][5][2][8][1]
↓[3,9][4,7][2,5][1,8]
↓[3,4,9,7][1,2,5,8]
↓[1,2,3,4,5,7,8,9]
データを処理するときに、データの並びに影響がない点がメリットですね!
大塚
プログラミングで作れるものと必要な言語5つ
プログラミングで作れるものと必要な言語については、知識として最初に確認しておきましょうね。
プログラミングで「どんな事柄が可能なのか」「どんな言語が必要になるのか」を把握しておけば、学習プランも立てやすくなりますよ!
作れるもの5つと言語
- Webサイト:HTML/CSS/JavaScript
- アプリ
→Webアプリ:Ruby/Python
→スマホアプリ:Java/Kotlin/Swift/Objective-C - ゲーム
→フロントエンド:C++/C#/Java/JavaScript
→バックエンド:Python/PHP/Ruby/Perl - AI(人工知能):Python
- システム:Java/Python
HTML・CSSはプログラミング言語ではない!
Webサイト制作で使う言語は、HTMLがマークアップ言語、CSSがスタイルシートと言われるものなので、プログラミング言語とは異なります。
以下の記事に『プログラミング言語の難易度』について詳しく記載しているので、ぜひ読んでみてくださいね!
大塚
難易度で決める!11種類のプログラミング言語と挫折回避のコツ4つ
プログラミングで作りたいものを完成させるステップ4つ
プログラミングを完成させるステップ4つについて紹介しますね。
学習プランを立てておかけば、計画的に制作物を完成させられますよ!
完成させるステップ4つ
- プログラミングを学ぶ目的を明確にする
- 学習サイトで基礎を学ぶ
- 参考書で磨きをかける
- 成果物を作る
1. プログラミングを学ぶ目的を明確にする
プログラミングでは、学ぶ目的を明確にしておきましょうね。
なぜなら学ぶ目的が明確でないと、モチベーションが下がるうえに、挫折する可能性も高くなってしまうからです。
目的の設定については、以下を参考にしてくださいね。
目的の例
- 自分専用のアプリを2年以内に完成させる
- 1年以内に学習含めて自分の趣味のサイトを作ってみる
プログラミングのモチベーションを維持し続けるためにも、「どんなものを作りたいのか」「いつまでに目的を達成させるのか」は決めておきましょうね。
2. 学習サイトで基礎を学ぶ
次に学習サイトで基礎を学びましょうね。
理由はプログラミングは基礎が重要だとわかっていても、一人で学習するのは難しいからです。
学習サイトなら指示にしたがってコードを打つだけで、実践での基礎学習ができます。
とくに「Progate」や「ドットインストール」は基本無料で学べるため、初心者にオススメですよ!
そのほかのWebサイトについては、以下の記事に詳しく記載してあるので、ぜひ読んでみてくださいね!
大塚
Webで学べる!プログラミング学習サイト16選と活用すべき理由
3. 参考書で磨きをかける
基礎を勉強したら、参考書を使い実際にコードを打って学習しましょう。
なぜならプログラミングの学習サイトで学べるのは、基礎のみだからです。
参考書を使った学習法として、以下の例を繰り返してみましょうね!
参考書を使った学習法
- 最初のページから一ページずつ読んでいく
- 解説を読んだら、実践してみる(コードを打つ)
- 一区切り打ったら、実際に動かしてみる
- 次の一区切りを入力する
上記方法での勉強が難しい方は、下記の「プログラミングの学習法」をぜひ読んでみてくださいね!
大塚
プログラミングの勉強法は3つ!Web教材を使い効率的に学ぼう
4. 成果物を作る
プログラミングスキルの基本が身についたら、成果物を実際に作りましょう!
なぜならプログラミングは、インプットよりも成果物を実際に作ってアウトプットする方が頭に定着しやすいからです。
プログラミングで成果物を多く作っておくと実績になり、企業での書類選考や面接時でも有利になります。
そのため将来プログラミングの仕事をしたいと思っている方は、成果物を作っておきましょうね!
成果物の例
- 自分専用のスケジュール管理アプリ
- 撮った写真を掲載するサイト
プログラミングをするのに必要な素養3つ
プログラミングをするには、欠かせない素養が3つあります。
プログラマーを目指している方のためにも、以下で素養3つについてそれぞれ解説しますね。
必要な素養3つ
- 論理的思考力
- 問題解決力
- 忍耐力
1. 論理的思考力
1つ目に必要な素養は、論理的思考力です。
なぜなら論理的思考力があれば、一つの問題も細分化して原因を見つけ出せるからです。
たとえば「夏に汗をかくのはなぜ」と質問をされたとしましょう。
このとき論理的思考力があれば、「温度が高い」→「体に熱がこもる」→「汗をかいて体を冷ます」と考えられますね。
道筋を立てて構成しなければならないプログラミングには、欠かせない能力ですよ!
2. 問題解決力
必要な素養2つ目は、問題解決力です。
理由はコーディングやエラーが発生したとき、原因を探す工程は避けては通れないからです。
そのため原因を見つけ、解決策を導き出すことで、「なぜそのエラーが出たのか?」「エラーを解決させるには?」と考えられますね。
迅速に対応するためにも、問題解決力は必要になってきますよ!
3. 忍耐力
3つ目に必要な素養は、忍耐力です。
なぜならプログラミングは、学習内容が多く、耐え抜くための力が必要だからです。
たとえば受験勉強でいくら学習スケジュールが決まっていても、ツライがためにくじけてしまったら、受験も成し遂げられれません。
プログラミングを上達させるためにも、忍耐力は身につけておきましょうね!
プログラミングをする際の注意点2つ
プログラミングをする際の注意点2つについても把握しておきましょう。
あらかじめ注意点を確認しておけば、失敗なくプログラミングを行えますよ!
1. エラーは起きるものだと理解する
プログラミングは、はじめのうちはエラーが出るケースが多いことを理解しておきましょう。
なぜなら初心者のうちは、知識が浅いため、エラーが出てもおかしくないからです。
エラーが発生したとき、発生した原因がわからない場合には、ネットで検索して解決策を記載している記事を探しましょう。
調べてもわからない場合は、独学の人はプログラミングに詳しい人に聞き、スクールに通っている人は先生に質問しましょうね。
2. 同じことを何個も書かない
プログラミングをするときは、同じ事柄を何個も書かないようにしましょう。
理由は同じ事柄を何個も書くと、バグやエラーが発生した際にすべて直さなければならないからです。
たとえばWebサイトのフォントすべてを同じ書式にしようと思った時に、タイトル、見出し、文章など一つひとつに書式を変えるコーディングをするのは大変です。
手間やリスクを減らすためにも、同じ命令を何個も書かないよう意識しましょうね。
考え方を理解してプログラミングスキルを高めよう!
上記で紹介した『プログラミングを構成する2つの要素』を把握していただくと、構成する際のポイントが理解できるようになります。
そしてプログラミングをする際にも意識できるようになりますよ!
最後にもう一度内容を確認しましょう。
構成する2つの要素
- 5つの命令を理解する
- アルゴリズムを考える
プログラミング初心者のうちに、基礎だけでなく考え方も学習しておきましょう。
基礎や考え方が理解できれば、言語ごとのスキル習得もスムーズに進められますよ!
焦らず自分のペースでの学習を心がけましょうね。
『プログラミングを構成する2つの要素』について理解できたら、次に『プログラミングで何を作る?できることと趣味にするメリット3つ』の記事をぜひ読んでみてください。
「プログラミングで何を作ってみようか」「自分に向いているジャンルは何だろう」と悩んでいる方の手助けができる内容になっています!