公開日:
更新日:
15 min read
エンジニアリング日本のIT人材育成の現状と構造的問題 [第1回]
![日本のIT人材育成の現状と構造的問題 [第1回]のイメージ](/_astro/tech052-1-hero.BiygyIYo_ZFmIbV.webp)
ソフトウェア開発には、3つの異なる知識体系が必要です。
まず、「なぜそうなるのか」という理論的基盤を提供する計算機科学(CS)があります。 アルゴリズムやデータ構造、計算理論といった基礎概念がここに含まれます。
次に、「どのように作るべきか」という方法論を扱うソフトウェアエンジニアリング(SE)があります。 要求分析から設計、品質保証まで、開発の全工程を支える知識体系です。
そして「具体的にどう実現するか」という実装技術を提供する情報通信技術(ICT)があります。 プログラミング言語やツールの実践的な活用が、ここでの主題となります。
これら3つの要素は密接に関連しています。 理論的な理解なしには適切な設計はできず、方法論がなければ理論を実践に活かせません。 また、実装技術がなければ、どれほど優れた理論や方法論も机上の空論となってしまいます。
最新の調査(ヒューマンリソシア、2024年3月)によれば、新卒ITエンジニアにおいて、 文系など理系以外の学部出身者が6割を超え、理系出身者は4割未満に低下しています。 またプログラマーのうち2割が新卒以外でした。
プログラミングスクール受講者の調査(SAMURAI、2023年)からは、 受講者の90%が実務経験のない状態でスキル習得を目指しており、その64%が30代であることが分かっています。 受講目的も、キャリアアップ(37%)、就転職(32%)、副業(24%)と多様化しています。
さらに、IT人材の働き方も大きく変化しており、フリーランス人口は2021年時点で23.1万人(前年比15.1%増)に達し、 2024年には40万人を超えると予測されています(Brocante、2022年)。
40年前の教育現場
大学における実習教育の実態
私自身の大学時代の経験は、情報教育の問題を如実に表しています。 計算機実習の授業で、教授陣は学生からの質問に一切答えることができませんでした。 実際の指導は助手や大学院生が担当していたのです。 その理由は単純でした。 担当教授たちは全員がプログラミングについては素人同然だったのです。 彼らが実習を担当することになったのは、単にシラバスでそう定められていたからに過ぎません。
これは珍しい事例ではなく、多くの工学部で見られる光景でした。 この状況は複数の問題を示唆しています。 まず、情報教育が形式的なカリキュラムの一部として扱われ、その本質的な重要性が理解されていないこと。 次に、適切な指導者の不在という深刻な問題。 そして、実習教育が実質的に非常勤スタッフや院生任せになっているという構造的な歪み。
特に深刻なのは、このような状況で行われる実習が、単なるプログラミング言語の文法学習に終始してしまうことです。 本来、プログラミング教育はICTスキルの習得に留まらず、問題解決能力の育成やソフトウェア設計の考え方の習得まで含むべきものです。 しかし、指導者自身がそのような視点を持ち合わせていない状況では、それは望むべくもありません。
ビジネスを拒否するアカデミック至上主義
これは20年前にもありましたが「教育で金を稼ぐな!」という考え方です。
- 大学は研究機関であり、職業訓練所ではない。 (何度も言われた)
- まして大学は勉強するところであり、学生の本分は勉強である。 (何度か言われた)
- 大学教員は研究職であるべきで、技術職などは不要だ。 (暗に言われた)
大学では研究職がホワイトカラーで、技術職がブルーカラーである。 だから、技術者は格下であり、大学にふさわしくない。 このような空気を痛切に感じました。 おりしも、2002年に小柴教授と田中耕一氏(島津製作所)がノーベル賞を受賞しました。 その記念写真を新聞で目にしたとき、小柴教授の顔が非常に不満げに見えました。 エンジニア風情と並べられたのが気に入らないように、私には見えてしまいました。
まさに白い巨塔とも言える強烈な大学のアカデミック至上主義は、今でも少々私のトラウマになっています。
大学教育の閉鎖性と海外との差
一方、海外では状況が大きく異なります。 米国のスタンフォード大学やMITの研究室は企業との共同研究を活発に行い、学生たちは実践的なプロジェクトに参加しています。 教授自身が起業家やエンジニアとしての経験を持つことも珍しくありません。 中国でも、清華大学や北京大学が積極的に企業と連携し、研究室が受託開発を行うことで、学生たちに実践的な経験を積ませています。
卒論を書かずに、システム開発を経験します。 それによりスキルを身に着け、卒業時には即戦力です。 教授が金を稼げば、大学は大きな部屋どころかビルのワンフロアも割り当ててくれました。 日本では慶応大学SFCが似たようなスキームだったと思います。
20年前の教育現場の問題
少子化がもたらす負の連鎖
20年前、ある情報系専門学校の事務局長から衝撃的な話を聞きました。
大学進学率が50%を超え、少子化と相まって、従来なら大学に進学できなかった学力層の生徒が大学に進学するようになったといいます。 その結果、専門学校は以前なら不合格としていたレベルの生徒も受け入れざるを得なくなりました。
出席しない、課題をしないといった問題行動が増加し、担任教員が毎朝、学生の自宅まで登校を促しに行くという異常事態が日常化。 さらに「手伝う」という名目で、実質的に教員が卒業制作を行うケースも出てきました。 皮肉なことに、卒業式で最も安堵の表情を浮かべるのは、学生ではなく教員だったというのです。
支援体制の不備
ある地方大学の情報系学部では、高校からの推薦入学者において、重度の発達障害を持つ学生が増加していました。 内申書には「軽度」と記載されているにもかかわらず、実際には重度の支援が必要なケースが多く、 教員会議では発達障害を持つ学生への対応が主要な議題となっていました。 しかし、大学は教育機関であって支援機関ではありません。 専門知識を持つ人材が不在のまま、素人である教員たちが手探りで対応を議論する状況が続き、負担だけが増加していく一方でした。
深刻化する教育現場の課題
ある地方大学の情報学科で教鞭を取る元IBMのエンジニアの話も印象的でした。 メインフレーム時代からダウンサイジングの波を経て大学教員となった彼は、「学生にUMLを教えるのですが、私自身が知らないのですよ。 勉強しながら学生に教えています」と語っていました。
これは特異な事例ではありません。 メインフレーム全盛期の20世紀と、オブジェクト指向が一般的となった21世紀では、システム設計の手法は大きく異なります。 しかし、その変化に教育現場が追いついていない現状を示していました。
専門学校におけるIT教育の構造的問題
専門学校は実務に直結するICT教育を担う存在として期待されており、プログラミング言語の使い方やツールの操作方法など、 具体的な技術の習得に特化したカリキュラムを提供しています。 しかし、その教育現場には深刻な問題が存在します。
多くの専門学校では、優秀な卒業生を講師として採用する慣習があります。 成績優秀で、カリキュラムを熟知し、学生の立場も理解できる人材を教壇に立たせるという発想は、 ICTスキルの伝達という観点では理にかなっているように見えます。
しかし、この方針には重大な欠陥があります。 専門学校のカリキュラムを完璧にこなせたとしても、それはソフトウェア開発の一側面に過ぎません。 現場経験のない講師は、プログラミング言語の文法は教えられても、なぜその技術を使うのか(CS的な視点)や、 どのように使えば良いソフトウェアが作れるのか(SE的な視点)を教えることができません。
これは、料理の手順書を暗記しただけの人が料理人を育てようとするようなものです。 包丁の使い方や調理器具の操作は教えられても、食材の選び方や料理の組み立て方、 そして何より「なぜそうするのか」という本質的な理解を伝えることはできません。
結果として、専門学校の教育は往々にしてICTスキルの表面的な習得に留まってしまいます。 システム開発の複雑さ、チーム開発における様々な課題、顧客との関係性、納期や品質のバランス、 そしてトラブル対応など、実務で直面する本質的な問題に対応できる人材の育成までには至らないのです。
さらに、経営面での課題も存在します。 プログラミング教育の水準を上げれば必然的に脱落者が増加し、死活問題となります。 そのため、市場価値の低い資格の大量取得に活路を見出そうとします。 プログラミングもITも理解していない学生の両親に対して、多くの資格取得は強力なアピールポイントとなるからです。
なぜ40年にわたって解決されないのか?
その構造的要因と対策について、次回以降の記事で深掘りしていきます。