プログラミングこんにちは、てぃってぃ(嫁)の夫です。2020年度よりプログラミングの教育が必修化されるそうですね。本記事では、教育の内容については、文科省の手引きを参考にしていますが、実際に私は教育現場にいるわけではないので、すみませんが詳しくは知りませんし書けません。本記事では「プログラミングの授業で良い成績を残す方法」等は、説明できません。現役のITエンジニアとして、「プログラミング」について説明することは出来ます。・プログラミングって何??・社会ではどのような力が必要なの??・教育内容は、現場(会社)で役に立つの??などといった観点について、記事にしてみようと思います。身近に溢れかえっているプログラム私達の身の回りにある、ありとあらゆる電子機器、例えば今あなたが使っているスマートフォン、パソコン等もそうですが、これらを制御しているのが「プログラム」であり、「プログラミング」とは、それらを開発する手段だと思ってください。電子機器は、プログラムを読み取り、プログラムの通りに機械を制御します。エアコンは、リモコンで26度と設定されると、出力を26度になるように制御します。プログラムが間違えて「設定温度×10倍」を出力するようになっていたら、26度の設定で「260度」を出力しようとします(恐ろしいですね)。そのような意図していない動きは「バグ」「不具合」と呼ばれます。人命に関わるようなプログラムほど、バグが無いようにしっかりと製品化テストがされていて、現場で間違った動きをしないようにできています。1-2.プログラミングってどうやってやるの?簡単に言うと、以下のような流れになります。いう文言が出てくるため、考える力、おそらく1についての教育が重点的に行われるのだろうと思います。ちなみにIT業界では、1~3を仕事にする人を「SE(システムエンジニア)」と呼び、23だけする人を「PG(プログラマー)」と呼びます。上流工程の、「どのような物を作るか考える」人が、皆さんご存じの家電メーカ(Panasonic、SHARP、等々)だったりします。1(設計)の作業は、昔は紙で手描きで作っていたみたいですが、最近ではMicrosoftOfficeのExcelやWordで設計書を作成することが多いです。(要望があれば、現場の設計書風のものをサンプルで書いて参考に載せてもいいですが。)2(実装)の作業は、ほぼパソコンです。「コンパイラ」と呼ばれるアプリケーションを使用して、テキストでプログラミング言語にて作成した「ソースコード」を、プログラムモジュールと呼ばれる形式に変換します。1-3.「プログラミング的思考」とは?では、「プログラミング的思考」とは何なのでしょうか。文科省の資料にもたびたび出てきますが、「論理的に物事を考える力」と考えてよさそうです。・・・で、論理的ってなんだよ、って思いますよね。簡単に言ってしまうと、合理的で、「筋が通っている」と考えてもらっていいです。試しに、次の例題でイメージをつかんでみて下さい。例題あなたは「ベビーカー」が欲しいです。ベビーカーが売っているお店は、近所に5店あります。ムダが無く、ベビーカーを買うにはどうしたらいいでしょう?回答例は大きくは2パターンあると思います。確実な方法ではありますが、かなりムダがありますよね。5店ならまだ何とかなるけど、これがもっと珍しい商品だったりしたら、もうやってられないです。(ちなみにプログラミングの現場では、こういう手法を「ゴリラ」とか読んだりしますw)点数をつけるなら、0点となります。「電話で在庫を確認してから行く」こちらにすると、回答1に対して「売っていない店に行く時間・労力」が省けるので、合理的ですよね。このようなことを「考える力」を「プログラミング的思考」と考えていいと思います。「1-3」で説明した、設計する(考える)難しさと、実装する(作る)難しさを別々に考えないといけません。設計する(考える)とは、どのようにプログラムを作成するのか考える作業になります。料理で言えば、レシピを考えることになります。例えるならば『美味しいサンドイッチを作るにはどうすればいいか?を考える』、これが設計です。それには、サンドイッチ生地の選定から、材料の選定(卵を入れるなら相性のいいケチャップ、マスタードを入れる、など)、料理工程の段取り(卵を焼くのは何分、など)となります。実装する(作る)とは、設計した内容を実現、作り上げる作業になります。料理で言うならば、実際に手足を動かして卵を時間通りに焼いたり、マスタードを適量入れたりする力ですね。義務教育で求められるのは「設計する(考える)」力でしょうから、国語や数学といった知識的な力よりは、なぞなぞを解いたり、遊びを企画・段取りしたり、チームリーダーとして皆を動かしたりすることのできる、地頭の良さや要領の良さが求められると思います。「1-2」に記載した通り、大企業のシステム開発を請け負うことも多いため、必然的にたくさんお金が入ることは多いです。業界平均のお給料は良い方だと言われています。・・・ですが、気を付けて下さい、それは大企業のお客様が多い会社や、自社製品が好調な会社の話です。中にはIT業界の下請けの下請けのさらに下請けの...といった会社も存在します。いった会社では「実装(作る)」しかすることが出来ず、しかも薄給といった可能性もあります。(興味のある方は「請負」「派遣」で調べてみてください。)また、仕事の需要ですが、皆さんが今使われているスマートフォンや家電製品などが日に日に進化していっているのは、それらを設計している家電メーカーと、それらを実現するSE・PGの頑張りがあるからこそなのです。これからも電子機器はますます進化していくと思われるので、SE・PGの需要もドンドン高まると思います。昨日の技術が今日では通用しないぐらい、毎日新しい技術が生まれるような忙しい業界でもあります。常に新しい技術・環境に適応できるように、「プログラミング」とはただの「実現手段」であることを理解しておかねければなりません。いう風に、教えておいてほしいな...。今覚えた実装技術は、子どもたちが社会に出る頃にはきっと古いものになっているのです。技術より設計(考え方)を教育するというのは、いいことだと思います。会社にもよりますが、残念ながら、「テストで高得点を出せる子」が欲しいわけではないです。いざ現場で仕事をしていると分かるのですが、「設計する(考える)力」、「実装する(つくる)力」は、やる気があれば、だれでも社会に出てからでも、十分に身につけられます。それより圧倒的に大事なのは、以下のような力です。チームをまとめる力(リーダー力)社外、社内と仲良くなる力(コミュニケーション能力)厳しいスケジュールでもこなす力(体力、根性)最近の(仕事面が微妙な)新入社員さんは、「実装する(つくる)力」が最も重要だと思っている人が多いです。プログラミング=PCと向き合って1人で黙々とおこなう仕事だと思っているのでしょうが、1人で完遂させられる仕事などありません。いうIT業界の仕事のイメージを、おそらくプログラミングを教える教育現場の先生方も知らないでしょうから、最初に書いた、「テストで高得点を出せる子」が欲しいわけではない、につながるのです。そのような子より、「生徒会長をやってました!」という人や、「クラブで優勝しました!」といった子の方が、確実に活躍できるのです。(この業界に限らないことだと思いますけどね。)2-3.IT業界の良いところ、悪いところその他に、私が実際にIT企業に勤めていて感じる「良いところ」「悪いところ」をざっくばらんに書いておきます。人付き合いの悪い人、オタク率が高い3.まとめ現場の意見をリアルに書いてみました。他にも聞きたいことがあれば何でも答えますので、お気軽にお聞きください。本記事が皆様のお役に立てばと願うばかりです。ご購読、ありがとうございました。現役ITエンジニアTweet関連記事2020-02-05C#で「TCPサーバー」を実装する(ルーティング[TTL]対応版)C#でTCPサーバーを安定して動作出来るように実装したので、その...2020-01-10【筋トレ】自宅で胸・背中・腹筋を鍛えるためのおすすめ器具4選!こんにちは、てぃってい(嫁)の夫です。本記事では自宅筋トレ歴...2020-01-09【懸賞・副業/入門編】ネットで「月1万円」を確実に稼ぐ5STEPこんにちは、てぃってぃ(夫)です。ネット副業で収入を得たい...2020-01-062020年の抱負。DISCAS」の登録・解約方法を画像解説こんにちは、てぃってぃ(嫁)の夫です。Unity/ゲームプログラミング】初心者向け画面処理のメモ【右肩下がり】アクセス数(PV)、アドセンス収益が急減したので分析してみた【Unity】Androidビルドが突然できなくなった場合の対処法(SDKの設定項目が消えた)最近は通販で買うほうが安い時代。マップ自動生成のアルゴリズムリンクてぃってぃのゲームチャンネル月別アーカイブ検索にほんブログ村ブログパーツにほんブログ村はてなブログをはじめよう!kktt0312さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。