プログラミングって何から学べばいいのだろう?何か効率的な勉強方法ないかな?
このような疑問に答えていきます。
本記事のテーマ
本記事を読むと、次のようになります。
- プログラミングの概念を理解できる
結論
プログラミング的思考を学ぶ上で重要な概念は、下記の3点になります。
- 変数
- 条件分岐
- 繰り返し
記事の信頼性
私は新卒でSIerという「対企業向けにシステムを開発する企業」に就職しました。エンジニアとして、システム開発の全工程(要件定義や設計、開発、テスト、リリース、保守まで)を担当してきましたし、現在はAndroidのアプリも作成していますので、経験者の視点からお話ししていきます。
プログラミング的思考の重要性
プログラミングを学ぶ上で最初に学ぶべきものが、「プログラミング的思考」です。ここをマスターしていない状態で他の知識を学んでも、ただ知っているだけで使える状態にはなりません。
プログラミング的思考というのは、「目の前の課題を解決するために、ITという道具をどのように活用するか」を考える思考法です。つまり、自分が実現したい事柄を実現するための手段を考えるということです。
プログラミング的思考を学ばない状態でプログラミングを学ぶのは、「英単語ばかり覚えて文法を全く学んでいない」状態のようなものです。「プログラミング学んだけど、目の前の課題をどのように解決すればいいかわからない」という本末転倒な状態を避けるためにも、「プログラミング的思考」を学ぶことが重要なのです。
◆プログラミング的思考が重要な理由
- 「目の前の課題をどのように解決するか」を考えられるようにならないと、独力でシステム開発ができないから
- 様々な言語で使える、汎用的なスキルだから
プログラミング的思考の基本的な考え方
人間は人間の思考プロセスがありますが、機械には機械の思考プロセスがあり、これを「プログラミング的思考」と呼びます。
例えば、「ポットのお湯をコップに注ぐ」という動作を例にとってみましょう。人間であれば、「お湯を注ぐ」と捉えている動作も、機械に指示するには次のように分解してあげる必要があります。
- 右手でポットを掴む
- 掴んだポットを持ち上げる
- ポットをコップに近づける
- ポットの注ぎ口をコップに向けて傾ける
- コップに規定量が注がれたら、ポットを地面と水平の状態に戻す
あくまでも1例ですが、このように細かく分解してあげる必要があります。これらの作業指示をするために重要なのが、これからご紹介する「変数・条件分岐・繰り返し」という考え方です。
変数
変数とは、日本語で言うところの「あれ」、「これ」、「それ」といった指示代名詞と思ってください。
会話の中で「これ」とか「それ」とか使いますが、人間の場合は共通認識があるので伝わりますが、機械にはそんな機能は無いので伝わりません。
そのため、「a=10」や「b=名前」といったように、事前に定義してあげる必要があります。
この「a」や「b」を「変数」と呼びます。変数は処理の中で変更可能なものです。
また、変数には「型」と呼ばれる、どのような値を格納するか示す情報も一緒に定義する必要があります。
型の代表格としては数字、文字列、日付があります。プログラミング言語によって呼び方が若干変わるケースもありますが、考え方に大きなズレはありません。
条件分岐
条件分岐とは、ExcelのIF関数と似たようなもので、「条件に合致するときは処理A、そうではないときは処理B」といったように処理を分岐させる考え方です。
プログラミング言語にも依りますが、「一致、不一致、含む」など条件は柔軟に設定することができます。
繰り返し
繰り返しとは、その名の通り「同じ処理を繰り返し行うこと」です。
プログラムを作成していると似ている処理を複数回実行することがあります。その回数分処理を書いていては時間もかかりますし、変更が発生した場合も修正が難しくなります。そのような事象を避けるために繰り返しを利用します。
繰り返しには、「指定した回数」繰り返す形式と、「条件を満たす間ずっと」繰り返す形式があります。用途に合わせて使い分けます。
練習問題
さて、それではプログラミング思考の基本を学んだところで、練習問題に取り組んでみましょう。今回は「1から10までのうち、2で割り切れる数字を出力する」というプログラムを例に考えてみましょう。
日本語で構いませんので、処理の流れを考えてみましょう。数行開けて答えを書いていきますが、まずはご自身で考えてみましょう。
回答はこちらになります
- 変数「開始値(数値)」、「終了値(数値)」、「現在値(数値)」「表示文字列(文字列)」を定義する
- 「開始値」に1を、「終了値」に10を、「表示文字列」に空文字を設定する
- 「現在値」に「開始値」の設定内容をコピーする【開始値から終了値まで繰り返し-ここから】
- 「現在値」を2で割って割り切れた場合、「表示文字列」に「現在値」の値を追加し、改行も設定する。2で割り切れない場合は本処理をスキップ
- 「現在値」に1を加算する
【開始値から終了値まで繰り返し-ここまで】 - 「表示文字列」の内容を表示する
まとめ
プログラミング的思考、いかがでしたでしょうか?
他に練習問題が欲しい方は下記に参考記事を用意したので、ぜひご覧ください。
paizaは様々な問題が用意されており、プログラミング思考を学ぶのに非常に役立ちます。就職への流れも用意されているので、腕試しとしてトライするともしかしたら企業からオファーが来るかもしれません。
稚拙ではありますが、過去に私がまとめた電子書籍もありますのでご紹介させていただきます。また、こちらの内容はYouTubeでも公開していますので、ご興味があればぜひご視聴ください。
本記事が皆様のお役に立てば幸いです。ではでは
コメント