小学生からプログラミングの授業が必修になり、プログラミング講座を展開する学習塾も増えていますね。でも、すでに社会人として働いている人や、ITエンジニアに転身したいと考えている人のなかには、小中学校でプログラム言語を学べなかったため、独学できちんとプログラミングのスキルを養ったほうがよいかと悩んでいる人も多いようです。
2030年以降は簡単なプログラミングができて当たり前の社会になっていることからも、プログラミングのスキルを養いたいと思っている人は、一日も早くスキルを習得するための行動を起こして損はないといえるでしょう。
そこで今回は、プログラム言語を学ぶことで身につく「プログラミング的思考」や、5つのメリットを解説します。「IT業界に転職したい」「専門性の高いIT技術を身につけてグローバルに活躍したい」「エンジニアとしての価値を高めたい」……という意欲に満ちた人は、早速今日から行動を起こしましょう!
小学生や中学生の授業でプログラミングの内容が拡充されていますが、この背景にはプログラミングや情報セキュリティでの文字入力などの基本操作だけでなく、プログラミング的思考を育成することが目的に掲げられています。こうした背景から「プログラム言語的思考」というキーワードが最近注目されるようになっていますが、「プログラム言語的思考」って、どのような思考なのでしょうか?
プログラミング教育を推奨・導入する文部科学省は、プログラミング的思考の定義を以下のように定めています。
プログラミング的思考の定義
自分が意図する一連の活動を実現するために、どのような動きの組合せが必要であり、一つ一つの動きに対応した記号を、どのように組み合わせたらいいのか、記号の組合せをどのように改善していけば、より意図した活動に近づくのか、といったことを論理的に考えていく力。
出典:文部科学省「小学校プログラミング教育の手引(第三版)」
文部科学省が定める「プログラム言語的思考」の定義や考え方はまだ広く浸透していないこともあり、現段階ではプログラム言語的思考を構成する要素は、スイング(揺れ動く)状態にあるようです。
なかには、プログラム言語的思考と聞いて難解なイメージを抱く人がいますが、実はコンピュータやテクノロジーに限らず、日常生活でもプログラム言語的思考は活用されていて、料理上手な人、片付け上手な人、時間や約束を守る人、組織内でリーダーを務める有能な人の脳内では、プログラム言語的思考が発揮されているといえます。
例えば料理上手な人であれば、ひとつの料理を作るときに、下記のような段取りを脳内で組み立て、材料、手順、時間等を計算しながら、完成に向けて手を動かしていきます。
① 冷蔵庫の中身(材料の状態)を確認する
②下ごしらえの段取りや、所要時間を考える
③足りない食材などをスーパーやネットで購入して準備を整える
④食材の傷みを最小限におさえるため適切な順序で調理していく
⑤調理の合間に使用済みの器具を洗ったり、ゴミをまとめたりする
⑥火加減・時間を調節しながら、食べるタイミングにあわせて完成させる
このように段取りや手順を整理していくと、手早く、ササッと、美味しいものを作れる料理上手な人ほど、プログラム言語的思考に長けているといることがわかります。
では実際に、「プログラム言語的思考」にはどのような要素があるのか、5つにまとめてみましょう。
① 分解力
複雑な問題に直面したとき、問題を小さくグループごとに分解して、問題を解決しやすくする方法をつかみます。あるいは、全体像を形づくっている異なるモノ、コト、ヒトを分解して、どのような部品や要素でそれが構成されているのかを正しく見分けます。ひとつの事象の全体と細部をおおまかに把握する思考力が、「プログラム言語的思考」の一要素である「分解力」です。
② 組み合わせ力
目的に向かって適切な側面や性質を取り出しながら不要な部分を排除し、異なるモノ、コト、ヒトのなかから共通点を発見します。さらにそこから共通点を記号化し、再び元の状態に組み合わせていく思考力も「プログラム言語的思考」の一要素です。
③ 順序立て
②で顕在化した要らないモノ、違うモノ、共通したモノを整理することで、最もよい手順や状態を明確にしながら、モノ、コト、ヒトの最善の状態を順序立てる思考力も「プログラム言語的思考」の一要素です。
④分析力
②〜④の完成品をバラバラにする、そのバラバラなものを元に戻すというサイクルをベースに、どうすれば最も早く、最もむだなく最善のモノ、コト、ヒトを完成させられるか、あるいは、元の状態のモノ、コト、ヒトをさらによくする方法を導き出す思考力も「プログラム言語的思考」の一要素です。
⑤ 一般化
①〜④の手順で導き出したモノ、コト、ヒトの順序立てや規則性、属性情報などの類似性や関係性をもとに問題を解く方法を編み出し、その最善の方法を他者(一般)にも理解・共有しやすく表現する思考力も「プログラム言語的思考」の一要素です。
「プログラム言語的思考」を整理すると、「プログラム言語的思考」を構成する要素(思考力)は、ビジネスシーンや日常シーンでも発揮されている“人としての素養”であることがわかりますし、理系の人だけがもつ思考力ではないことになります。
もしあなたが、部屋がきれいで整理されていて、時間や約束を守るきちんとした人であれば、プログラム言語的思考を備えている人といえるでしょうし、逆に、部屋のなかに衣類やゴミが散乱している人や、約束や時間が守れない人、お金にだらしない人は、プログラム言語的思考力が低いことになります。
ひとつのコトを分解したり、組み立てたり、共通点を見出して整理する「プログラム言語的思考」は、プログラム言語のスキルを身につけることで磨きがかかるとされますが、これからIT業界で活躍したい人がプログラム言語のスキルを身につけ、プログラム言語的思考を養うと、どのようなメリットを得られるのでしょうか。ここからは、プログラム言語的思考から得られるメリットを5つ解説します。
プログラム言語を学ぶことで得られるプログラム言語的思考の最大のメリットは、論理的思考が身につくことといわれています。
論理的の対語には、「非論理的」「直感的」「感情的」などがありますが、もし自分が、問題やトラブルに直面したときに、「泣き出したり怒り出す」「うろたえて思考が停止してしまう」「暴力や暴言でまわりに当たり散らす」などの言動に思い当たる節がある場合、あなたはプログラム言語的思考や論理性に乏しい人といえるかもしれません。
組織でも、「ルーチンワークをダラダラとこなす環境が常態化している」「生産性が低い」「長い時間働く人が評価される」「年齢や性別で業務内容や待遇に隔たりがある」といった慣習がある職場では、経営者やリーダーのプログラム言語的思考や論理性が乏しいがゆえ、いつまで経っても、年齢・性別、労働時間に関係なく、生産性の高い人が評価される職場に生まれ変わらせることができません。
逆に、プログラム言語的思考や論に長けた経営者やリーダーがいれば「どこ・何がむだか」「人員は適切か」「手順、プロセス、指示系統のロスはないか」等の事象を細分化しながら全体を見渡すことで、常に10時間かかっていた業務も、より短い時間で同量を効率的にこなすことが可能になります。
社会人のなかには、名刺交換の場面で相手の特徴や自分と相手の違いを瞬時につかんで会話を弾ませるコミュニケーション上手な人がいますが、スムーズなやりとり(コミュニケーション)ができる人ほど脳内でプログラム言語的思考の要素である「分解」「組み合わせ力」「順序立て」「分析力」「一般化」の思考力(プログラム言語的思考)が働いているといえます。
同様に慢性的な人手不足状態にあるIT業界で働くプログラマは、単にプログラミング言語のスキルがあればよいわけではなく、パソコンや関連テクノロジーの仕組みはもちろん、プロジェクトの全体像、メンバーの役割や特徴などの、自分が携わる業務内容を体系的に理解している人ほど、コミュニケーション能力が高く、その存在価値が評価されることになります。
また、少子高齢社会が今後ますます進化する日本では労働人口(人手)を確保するため、店舗、企業などでテクノロジー(AI、ロボット、デジタル化)の活用が進んでいますが、こうした変化・進化に伴い、今後はビジネスシーンをはじめとするあらゆるシーンで、テクノロジースキルとプログラム言語的思考をもった人が重用され、価値が高まることになるでしょう。
働き方改革やコロナ禍によるリモートスタイルの定着に伴い、時間と場所を選ばない働き方が一般的になったことで、プログラミングスキルを武器とするフリーランサーのITエンジニアも増えています。
実際に、膨大な残業をこなしながら企業に勤めていたプログラマのなかには、「プログラミングスキルを活かして、「ネット環境でつながった遠隔地からウェブデザインやアプリ開発に携わる」という働き方を選択する人も増えていますし、「高いスキルをもつエンジニアやクリエイターがリゾート地や観光地の一角に移住して共同プロジェクトを立ち上げた」というケースも、最近はメディアなどでも話題になっています。
こうした働き方の変化はITエンジニアに限ったことではなく、プログラム言語的思考力をもつビジネスパーソンのなかには、満員電車で毎日会社に通勤することなく、自宅で好きな時間に好きなだけ仕事をする自由度の高いフレキシブルな働き方を自ら選択する人も増えています。
日常生活にテクノロジーが浸透したことで、社会インフラ、企業、日常のシーンといったあらゆる場面でIT技術が活用されています。このことから、プログラミングスキルをもつITエンジニアのニーズは今後ますます高まると予測されています。
汎用性の高いプログラミングスキルがあれば、自分のやりたい仕事を選択できるうえ、高い収入を得ることも夢ではありません。さらには、プログラミングスキルに付随したシステム、ネットワーク・通信、IoT、AI・ロボット、精密機器、ハード・ソフトウェアなどの多領域のスキル(武器)をもつ人ほど、活躍フィールドは広がることになります。
プログラミングスキルをこれから身につけ、エンジニアとしての自由度の高い働き方や高収入など様々なメリットを享受したいと考えている人は、人気が高いひとつのプログラミングスキルだけでなく、他の言語にも挑戦して、体系的にプログラム言語を学んでおくことが、キャリアアップ、高収入に直結する有効な手段になるはずです。
高い実績をもつITエンジニアやプロクラマのなかには、プログラミングスキルを武器に起業・独立した人も数多くいます。なかには、フリーランスのプロクラマとして、行政のインフラシステムの開発プロジェクトや、大手企業のプロジェクトに参加し、高収入を得ている人もいます。
ITエンジニアやプロクラマが独立・起業したフリーランサーのなかには、複数のプロジェクトに同時に参加しているケースも珍しくありません。あるいは、決まった期間に高収入のプロジェクトに参加して、趣味や旅行をオフタイムに堪能する自由度の高い生活を送っている人も多くいます。
何より、会社勤めのときに感じていた上司や会社の命令に従わなければならないストレスやプレッシャー、寝る間を惜しんで頑張っても給料は同じというジレンマを感じることもなく、プログラミングのスキルや実績を買われて高案件のオファーに取り組むやりがいは、起業・独立者だけが味わえる“うまみ”ともいえるでしょう。
—— 今回は、これから重要視される「プログラム言語的思考」について解説しました。 小学生や中学生がプログラミングを学ぶことは、論理的思考力や問題解決能力、創造性などの能力を育むだけでなく、社会生活に必要な基礎教養など、様々な武器と自信が身につくことがわかっています。ITエンジニアやプロクラマとして活躍したい人は、プログラム言語のスキルとともにプログラム言語的思考を養い、高価値をもつ人材として大いに活躍してくださいね。
日総グループではITエンジニアのお仕事も多数掲載中!
「新たな技術フィールドで活躍したい」、「自らの可能性をもっと追求したい」、「エンジニアとしてキャリアアップを図りたい」と考えている皆さんを、全力でサポートいたします。詳しくは「エンジニア求人ナビ」をご覧ください。
© NISSO CORPORATION All Rights Reserved.