〜プログラミングの前提知識を身につけよう②〜

ITエンジニア
この記事は約12分で読めます。
Ryo's Blog - にほんブログ村
Ryo's Blog - にほんブログ村
ブログサークル
ブログにフォーカスしたコミュニティーサービス(SNS)。同じ趣味の仲間とつながろう!
Ryo's Blog - にほんブログ村
Ryo's Blog - にほんブログ村
ブログサークル
ブログにフォーカスしたコミュニティーサービス(SNS)。同じ趣味の仲間とつながろう!

※まずはじめに

未経験から一人前のエンジニアになる為に一番やってはいけない事は、「闇雲にプログラミング学習をしてしまう」事です。正しい前提情報を知らないままプログラミング学習を始めてしまうと、エンジニアになるまでに何倍もの時間がかかってしまいます。プログラミングを始める前に必ず知っておくべき情報を網羅的にインプットする事で、正しい手順と正しい心構えでプログラミングに臨める状態を目指して下さい。

  • 「どのようにプログラミング学習を
    進めればよいのだろう」
  • 「エンジニアになるためには
    どのような手順が必要なのか」
  • 「最速でプログラミングを
    身につけるためのコツが知りたい」

上記のような疑問がまだ残っている方は必読です。

そして何ができるようになるか?

  • 最短でプログラミングを習得できるようになる
  • プログラミングでどんなモノを
    作れるようになるのかイメージが湧く
  • エラーの解決方法がわかる
  • オリジナルアプリの開発工程がわかる

プログラミングの概念

  • 「プログラミング」とは何か
  • プログラミングで何ができるのか
  • プログラミングを学ぶ本当のメリット

①「プログラミング」とは何か

そもそも「プログラミング」とは何なのでしょうか?最近よく耳にするプログラミングというワードですが、聞いたことがあってもきちんと説明できる人は多くないです。プログラミングを理解するには、身近なところからイメージするのがポイントです。そこでまずは、以下の3点について解説します。

  • なぜプログラミングが必要なのか?
  • プログラムが使われている身近な製品
  • Webサイトのプログラムを見る方法

なぜプログラミングが必要なのか?

プログラミングを一言で表すと、「コンピュータへの指示を書くこと」です。「コンピュータは何でも勝手にやってくれる」と思われがちですが、それはすべて人間が指示をしているからこそ実現出来ています。コンピュータは人間のように自分で考えたり、知識や経験が蓄積されたりすることはありません。

AIなどの技術は例外です

コンピュータはまるで、何も知らない子供のようなものです。親が子供に様々な事を教えてあげるように、プログラマーがコンピュータに一つ一つプログラミング言語を使って指示をしています。これらの指示がなければコンピュータは何をすべきかわからず、動くことさえ出来ません。

身近にあるプログラミングの世界

実は、プログラムは身近な
製品にたくさん使われています。

  • パソコン
  • スマホ
  • 生活家電
  • 自動販売機

上記のような電動の製品には、大抵プログラムが組み込まれています。
例えば自動販売機であれば、以下のようなプログラムです。

  1. お金を投入する
  2. いくら投入されたのかを計算する
  3. 飲み物の在庫を確認する
  4. 在庫がある飲み物のボタンが点灯する
  5. ボタンが押されると、その飲み物を排出する

このように、プログラミングをすれば販売も自動化出来てしまいます。

Webサイトのプログラムを実際に見てみよう

プログラムは身近に存在するものの、プログラムの中身を見るのは難しいと思います。Webサイトのプログラムであれば無料でいつでも見られるのをご存知でしょうか?今すぐに見てみたい方は、画面上で右クリックしたあと、「検証」をクリックして下さい。プログラムを動かすための命令(コード)が表示されます。現時点ではコードの意味がわからなくても、プログラミングによってWebサイトが動いている事が理解できればOKです。
ぜひお気に入りのWebサイトで検証してみて下さい。

②プログラミングで何ができるのか

「プログラミングで何ができるのか」が気になる方も多いはずです。プログラミングで「できること」と「できないこと」を知っておくことは大切です。そこで次は、以下の2点について解説します。

  • プログラミングによって作られているモノ
  • プログラミングの基本「入力・処理・出力」

プログラミングによって作られているモノ

先ほど、私たちの身近には、プログラミングによって作られている、製品がたくさんあることを解説しました。それらの製品を思い出してみて下さい。また、他にも想像できる範囲でどんなモノが、プログラミングによって作られているか、考えてみて下さい。何か1つでも思い浮かびましたか?パソコン・スマホ・ゲームなどを想像した方が多いのではないでしょうか?もちろん、それら全てはプログラミングによって作られています。

プログラミングの基本は「入力・処理・出力」

これまでに紹介した具体例の中には、使ったことがあるモノもあったのではないでしょうか。これらの他には電子レンジや炊飯器などの家電製品も、プログラムによって動いています。そして、これらのプログラミングによって作られたモノにはある共通点があります。例えばTwitterであれば、文章を入力すると、それに合わせてその文章がタイムラインに表示されます。また、ゲームであればキャラクターがコマンド通りに動くはずです。これらの共通点とは、入力・処理・出力がセットになって動作するという点です。

  • 入力:コンピュータが受け取る情報
  • 処理:受け取った情報をもとに行われる動作
  • 出力:処理をおこなった結果

入力は、twitterであれば文字の入力、ゲームであればコマンドの操作です。

処理は、入力に対し、コンピュータがプログラムに書かれた指示通りに動きます。
プログラミングとは、この指示を書く事です。なお、この処理は私たちの目には見えません。

出力は、twitterであればタイムラインへの表示、ゲームであればキャラクターの動きです。
これらの入力・処理・出力はプログラミングの基本であり、とても大切な考え方です。
ぜひ頭の片隅に留めておいて下さい。

③プログラミングを
学ぶ本当のメリット

「プログラミングを学べば収入がアップする」上記のメリットに魅力を感じ、プログラミングを学び始めた方も多いかと思います。しかし、多くの方がプログラミングを学ぶ本当のメリットを勘違いしています。
そこで次に、プログラミングの学ぶ本当のメリットをお伝えします。

プログラミング学習のメリットを考えてみよう

まずはあなたが考える、プログラミング学習のメリットを書き出してみて下さい。
思いつく限り、メリットを書き出してみてください。どんなメリットが思い浮かんだでしょうか?

  • 収入が増える
  • 地方でも職に困らない
  • ライフスタイルが選べる

例えば上記のようなメリットは全て、あくまでプログラミングスキルを身につけることによって得られる副産物です。プログラミング学習で得られる本当のメリットではありません。

プログラミングを学ぶ事で得られる本当のメリットとは、論理的思考(ロジカルシンキング)ができるようになるという点です。論理的思考は、必須のビジネススキルとして大きな注目を集めています。ビジネス書籍でも、以下のように論理的思考に関するものがたくさん出版されています。論理的思考ができるようになると、以下のようなメリットがあります。

  • 物事を客観的に捉えられる
  • 情報を適切に分類・分析できる
  • 効率的に仕事ができるようになる
  • 適切に問題を解決できるようになる

これらを見ると、プログラミングとはまったく関係がないように感じるかもしれません。
そこで、プログラミング学習によってなぜ論理的思考ができるようになるのか解説します。

プログラミング学習によって論理的思考ができるようになる理由

プログラミングとは、やりたいこと(ゴール)を達成する為に、正しい手順や順序(ロジック)をコンピュータに指示する事です。コンピュータはまるで何も知らない子供と同じです。

一つ一つ丁寧に何をどうすべきか教えてあげなければなりません。ただしコンピュータはとても従順で、あなたの指示通りに動いてくれます。一方で、あなたが教える内容が間違っていると、コンピュータも間違ってしまいます。例えば、子供の頃に以下のような体験をした事はないでしょうか?

  1. お母さんに、「学校から帰ったら洗濯物を取り込んで」と頼まれました
  2. お母さんの言いつけ通りに、学校から帰ると洗濯物を取り込みました
  3. お母さんは帰ってくると、「もっと考えなさい!」と叱られました

「ありがとう」と感謝されるならまだしも、なぜあなたは叱られたのでしょうか?実はこのお母さんは、洗濯物を取り込むだけでなく、たたんで片付けてほしかったということです。人間は阿吽(あうん)の呼吸、つまり相手の気持ちを察することが出来るので、必ずしも全てを言葉にする必要はありません。

しかし、コンピュータは人間のように察することが出来ません。必ず、結果・ゴールとそれに至るまでの手順をしっかり伝える必要があります。その為には、どの手順が最適なのか考えなくてはなりません。上記の例であれば、もし「たたむ」というプロセスを省いてしまうと、取り込んだ状態のままの洗濯物がクローゼットに押し込まれるわけです。これは極端な例ですが、プログラミングは正しい手順で正しい処理を行わなければ、望んだ結果が得られません。

また、プログラミング学習者の悩みのタネが「エラー」です。エラーが発生したら、どこに問題があってどうすれば解決出来るのかを考える必要があります。記述したコードを一つ一つ追っていき、エラーの原因になっている箇所を特定します。

そして、どのように解決するかを考え、実行します。このプロセスによって、プログラミングのエラー解決だけでなく、あらゆる課題に対する問題解決能力が養われるます。

つまり、プログラミング学習によって、自然な流れで論理的思考と問題解決の練習をしている。それだけでなく、もちろんプログラミングスキルも身につきます。だからこそ、プログラミング学習が注目されています。

論理的思考ができるようになるとどうなるか

これまで説明したように、論理的思考ができるようになると問題解決能力が養われ、より効率的に仕事ができるようになります。ここで、先ほどの例をもう一度考えてみましょう。

あなたはお母さんの言いつけ通りに洗濯物を取り込みました。このように、言われたことはできるのです。

しかし、「たたんで片付ける」という行動は、自ら考えて行う必要があったということです。

  • 「頑張ってるのに思ったように結果が出ない」
  • 「上司からダメ出しされる」

上記のような悩みを抱えている人は、「論理的に物事を考え、ゴールを達成するための手順や順序を導き出して実行する」という事が出来ていない場合が多いです。
学生時代は先生や大人が教えてくれて、その通りにやっていれば問題はありませんでした。

しかし、社会に出てからは自分の頭で考えて行動しなければなりません。そして、それを手助けしてくれるのが論理的思考です。「収入が増える」といったメリットは、プログラミングを学ぶ事で得られる副産物だとお話ししました。ではなぜ、このような副産物が生まれるのでしょうか。

それは、ゴール(収入アップ)を達成する為に、論理的に考えて最適な手順を導き出し、実行できるようになるからです。プログラミングも所詮はツールの1つでしかありません。ただプログラミングをしているだけでは、あなたが叶えたい夢や願望は実現できません。繰り返しになりますが、大切なのは、あなた自身の頭で考え、実行する事です。それを手助けしてくれるのが、論理的思考です。

書籍・本

出典:小・中・高等学校でのプログラミング教育実践 ─問題解決を目的とした論理的思考力の育成─

インターネットを介した仮想空間と生活における現実空間が融合した新たな社会 (Society5.0) が始まろうとしています。それに伴って新しい社会に合わせた情報教育が社会的に必要となり、2020年度から学校教育においてプログラミング教育が必修化されます。これまで主に中学校の技術・家庭科 (技術分野) と高等学校の情報科で行われていたプログラミング教育ですが、これからは小学校から高等学校まで一貫した教育が行われます。本書は、小・中・高等学校を通したプログラミング教育実践を扱う最初の書籍であり、学校種や教科を超えた幅広い方々にとって必携の書です。

出典:パソコンなしで学べる! 思考法が楽しく身につく! プログラミングあそび101

「問題解決能力」「発想力」などのプログラミング的思考が、楽しみながら身につくあそび集!いまだ学校現場では手探り状態のプログラミング教育ですが、本書の「プログラミングあそび」なら、すべてワークシート形式&パズル感覚で楽しく取り組みながら、無理なく体験的に思考法を養うことができます。すべてパソコン不要のため、各教科の授業ではもちろんのこと、特別活動や宿題などさまざまに活用しやすいのはもちろんのこと、子どもたちが思わず夢中になってしまう「あそび」が盛りだくさんに詰まった一冊です!

以上が私のオススメ本になります。気になる方や読んでみたいと思っている方は、
参考になりますので、ぜひ読んでみて下さい。

まとめ

  • 私たちの身近には、プログラミングによって作られているモノがたくさんある
  • プログラミングの基本は「入力・処理・出力」である
  • プログラミングを学ぶ本当のメリットは、論理的思考ができるようになることである

次回は、プログラミングの前提知識を身につけよう③を記事にしますので、お楽しみを!!