資料ダウンロード WEB説明会申込

2024.02.29

コラム

 

発達障害(ADHD、ASD)のある人がプログラミングで輝く理由

発達障害の中でも、ASD(自閉症スペクトラム障害)やADHD(注意欠如・多動症)のポジティブな特性としみられる「集中」「論理的思考」「物事を突き詰める」などの能力は、プログラミングにおいて重要な要素といわれています。その特性を活かし、どのプログラミング言語を習得すればよいのでしょうか?今回は目指したい職業ごとに言語をいくつか紹介します。

なぜ発達障害(ADHD、ASD)のある人がプログラミングに適性があるのか

発達障害のある人のどのような特性がプログラミングとマッチするのでしょうか。ASD、ADHDのある方の場合について、プログラミングを行う際に強みとなり得る特性を表にまとめました。

プログラミングにマッチする発達障害の特性例

ASDの方の場合 ADHDの方の場合
特性 ●規則に忠実で、規範意識が高い
●特定の事柄に徹底的にこだわる
●関心のある分野に高い集中力を発揮する
●数学やロジカルシンキングが得意
●創造的なアイデアが豊富
●好奇心が強く、行動力がある
●関心がある分野に高い集中力を発揮する
●視覚や色彩感覚などの感性に優れている

ASDの方の場合、ある一定の規則性に強くこだわる傾向にある点が、プログラムをつくる上で有利にはたらくと考えられています。ここでいう規則性とは、「一つの出来事が起こるともう一つの決まった出来事が起こる」というようなことです。プログラミングは、論理的かつ規則性に沿ったルールの中で構築していくため、その作業や思考は、ASDの特徴を活かせる可能性があります。また、一つの物事を追求することにより、よりよいプログラムをつくろうとする人もいるでしょう。
 
ADHDの方の場合は、関心のある分野において高い集中力を発揮する点が、プログラミングに向いている可能性があります。適度な休憩を取りながら高い集中力をうまく利用できれば、「プログラミング言語を通常よりも短期間でマスターできる」「短時間により多くのコードを作成できる」といった、強みにつながる場合もあるでしょう。
 
ASD、ADHDのいずれにおいても特性のあらわれ方には個人差があります。そもそもプログラミングを楽しいと思えるかどうかも重要です。プログラミングを仕事にする場合は、本当にプログラミングに興味があるか検討するとともに、自身の特性をよく見極めるところから始めましょう。

発達障害の特性を活かしてIT系職種で活躍している人は多い

現在、多くの企業がDX(デジタル・トランスフォーメーション)への取り組みを検討しています。企業がDXを推進しようと考えた場合、自社の業務に最適化されたシステムや仕組みを構築する必要があるため、プログラマーをはじめとするIT人材の需要は常に高い状態にあるといえるでしょう。

米・シリコンバレーのIT業界では、発達障害のある方が多大な成果を挙げていることで知られており、近年では発達障害と先端IT分野の親和性にも関心が寄せられています。日本でも発達障害のある方に見られる特徴に着目し、その特徴を活かせる職種への就職支援が少しずつ広がっています。

実際に発達障害のある方がIT業界で活躍するケースも少なくありません。今後はIT業界にとどまらず、製造業や建設業、金融業など幅広い業界でIT人材が求められるようになると予想されています。これらの背景から、発達障害のある人がその特性を活かし、活躍できる職場は増えていくと期待できるでしょう。

プログラミングスキルを活かせる領域や職種

プログラミングとは、コンピュータを命令通りに動かすために、プログラミング言語を用いてソースコードを作成する作業のことをいいます。プログラミングスキルを身につけると、どのような仕事で活かせるのでしょうか。プログラミングスキルを活かせる領域や職種を紹介します。

ソフトウェア開発

ソフトウェア開発とは、コンピュータ上で動作するプログラムを開発すること。顧客やユーザーのニーズを分析してソフトウェアを設計、開発、評価・検証し、製品をリリースするまでのプロセスを指します。ソフトウェア開発に携わる主な職種は、エンジニア、プログラマー、営業担当者です。中でも、プログラマーはさまざまなプログラミング言語やフレームワークを使って、コンピュータを命令通りに動かすためのソースコードを作成し、ソフトウェアを完成させる役割を担います。 なお、ソフトウェア開発に含まれるものとして、「Webシステム開発」「アプリケーション開発」があります。それぞれの特徴や主に使用されるプログラミング言語を見ていきましょう。

Webシステム開発

Webシステム開発とは、Webサイト上で動くソフトウェアを開発すること。Webサイトという特徴から、プログラミングスキルに加えて、通信技術に精通していることが求められるでしょう。職種としては、Webプログラマーなどが該当します。

Webシステム開発で使用されるプログラミング言語例

プログラミング言語 用途
Javascript ●Webサイト上でのポップアップの表示やアニメーションなど、ブラウザを動かす
●汎用性が高く、Webページの表現に関わる「フロントサイド」と、データベース管理などを行う「サーバーサイド」の両方で使用できる
PHP ●Webサイト上での動作を指示する
●仕様や文法が簡単なため比較的習得しやすく、Webアプリケーションの開発にも多用される
HTML ●テキストや画像の配置、装飾を指示して、Webサイトの見た目を整える
●Web制作ツールがなくてもWebサイトを作成できる

アプリケーション開発

アプリケーション開発とは、スマートフォンやタブレットで利用できるソフトウェアを開発すること。プログラミングスキルを活かせる職種としてはアプリケーションプログラマーがあり、表計算や画像編集、プレゼンテーションなど、特定の目的に応じてプログラムを作成します。なお、「iOS」と「Android」それぞれのOSで、異なるプログラミング言語や開発環境を用いるのが一般的です。

アプリケーション開発で使用されるプログラミング言語例

プログラミング言語 用途
Swift ●iOS用のアプリを開発できる
●開発初心者にも学習しやすいようにつくられており、他の言語との相互性も高い
Kotlin ●Android用のアプリを開発できる
●フレームワークを活用することでWebアプリケーションやサーバーサイドの開発も可能
Go ●iOS、Android両方のアプリ開発に対応
●シンプルかつ高速な処理を得意とし、用途を問わず規模の大きいシステム開発に適している

システム開発

システム開発とは、企業や組織の業務をより効率化するために、業務を改善する仕組みを開発すること。例えば、従業員の勤怠管理システムや顧客情報管理システムなどを作成することが該当します。システム開発に携わるプログラマーの主な役割は、要件定義に基づいてプログラミングを行うことです。また、プログラムを正常に作動させるのに必要な「単体テスト」や、プログラム内の誤り(バグ)を見つけて修正する「デバッグ」も担います。

システム開発で使用されるプログラミング言語例

プログラミング言語 用途
Java ●企業システムや金融機関の会計システムを開発する
●汎用性の高い言語で、大規模なシステムをはじめ多種多様な開発に適している
C言語 ●OS開発、基幹システムを開発する
●汎用性の高さや実行速度の速さ、フレームワークの豊富さなどから既存システムの保守運用だけでなく、広範囲な最先端分野で採用されている

ゲーム開発

ゲーム開発とは、家庭用ゲームやソーシャルゲーム、スマホゲームなどを開発すること。ディレクターやプランナー、プログラマーが開発に携わり、ゲームの企画や設計、制作、テストなどを行います。ゲーム開発で必ず使用するのがプログラミングスキルです。ゲームの進行やキャラクターの動き、背景、効果音などをプログラミングすることで、ゲームの世界観をつくりあげます。

ゲーム開発で使用されるプログラミング言語例

プログラミング言語 用途
C# ●ゲーム開発用の環境で動作する
●マルチプラットフォーム対応のため、さまざまな環境・分野に対応した開発が可能
C++ ●ゲーム開発用の環境で動作する
●C言語の機能に加えてオブジェクト指向をサポート
●実行速度が速く、高性能なゲーム(アプリケーション)開発に適している

AI(機械学習モデル)開発

AI(人工知能)を保有するコンピュータシステムを開発することをAI開発といいます。さまざまな分野で活用されているAIですが、近年では音声での家電製品の遠隔操作や、オンライン広告のパーソナライズなど、日常生活の中でも触れる機会が多くなりました。なお、AI開発にはプログラミングスキルが欠かせません。加えて、高品質かつ膨大なデータを収集・処理するスキルや、数学、統計学の知識が求められます。

AI(機械学習モデル)開発で使用されるプログラミング言語例

プログラミング言語 用途
Python ●データ分析や収集といったデータ処理を行う
●シンプルで読みやすい構文をもち、数値計算からWebアプリ開発、AI開発など幅広い用途で利用できる
●ライブラリやフレームワークが豊富で活用しやすい
R言語 ●統計やデータ解析に特化しており、短いコードで統計処理を実施できる
●統計データを可視化・グラフ化する
●データの内容・形を整えるデータ前処理やデータクレンジングも得意

データサイエンス

データサイエンスとは、統計学的な考え方を用いて課題の分析と仮説による検証を行い、業務上有益な知見などを得る手法のこと。データサイエンスを実現するには大量のデータから傾向や関係性を見出す必要があるため、AIや機械学習を活用する効率的な処理でなければ困難な作業になるでしょう。

データサイエンティストは、企業がデータ活用するための基盤づくりとして、データベースの構築や、データ収集や分析を効率化するためのシステム開発を担います。データ分析や基盤づくりにおいてプログラミングスキルは必須スキルといえます。

データサイエンスで使用されるプログラミング言語例

プログラミング言語 用途
Python ●データ分析、自動化、統計解析といったデータ処理を行う
●シンプルで読みやすい構文をもち、数値計算からWebアプリ開発、AI開発など幅広い用途で利用できる
●ライブラリやフレームワークが豊富で活用しやすい
R言語 ●統計やデータ解析に特化しており、短いコードで統計処理を実施できる
●統計データを可視化・グラフ化する
●データの内容・形を整えるデータ前処理やデータクレンジングも得意

関連記事:『データサイエンティストとは?仕事内容や活躍するために必要な3つのスキルをご紹介

プログラミングスキルとともに身につけたいスキル

プログラミングスキルとともに身につけておきたいのが、「コミュニケーションスキル」「論理的思考力」「問題解決力」の3つです。各スキルのポイントを解説します。

コミュニケーションスキル

プログラムは通常チームで開発されることが多いため、コミュニケーションスキルも欠かせない要素の一つです。プログラマーであれば、プログラムの設計者や要件を出した人の意図をプログラムに反映する必要があるため、設計書から意図が読み取れない場合は対話によって話を引き出す必要があります。また、複数のプログラムを組み合わせて利用するケースでは、各プログラムの設計者間で意思疎通を図ることが重要です。そのため、「相手の意見や主張を正しく理解する力」や「相手にわかりやすく説明する力」といったコミュニケーションスキルが求められます。

論理的思考力

論理的思考力とは、「ある成果を出すために最も効率的かつ安全な方法とは何か」を筋道立てて考えられる能力のことです。プログラミングはコンピュータに対する命令を順序立てて、論理的に構築していきます。特にコーディングの際は、目的に合わせて順序立ててコードを作成しなければ、エラーにつながる恐れがあるため、論理的思考力が役立つでしょう。

問題解決力

問題解決力とは、問題を分析して原因を突き止め、適切な解決策を導き出して解決しようとする能力です。頭で考えるだけではなく、解決に向けた実行力がポイントとなるでしょう。効果的な問題解決力があれば、動作確認時のエラーや新しい課題への対応がスムーズになり、業務を円滑に進行できます。

AI開発やデータサイエンスなどの「先端IT人材」を目指すならR言語やPythonの学習がおすすめ

経済産業省が公表しているIT人材数の推計では、IT関連産業への入職者は2019年をピークに減少し、2030年には最大約79万人もの人材が不足すると予測されています。一方で、AIやIoT、ビッグデータなどに対応できる人材が多くの分野で求められていることから、「先端IT人材」のニーズがより高まっています。

AI(機械学習モデル)は、R言語やPythonなどのプログラミング言語を用いて開発されています。R言語は統計やデータ解析に特化したもので、Pythonは数値計算からWebアプリ開発、AI開発など幅広い用途で利用できるのが特徴です。また、Pythonの機械学習ライブラリ「Pandas」を使うと、予測モデルを作成できます。例えば、過去の気温データから未来の気温を予測できたり、過去の売上から未来の売上を予測したりすることも可能です。 どちらもシンプルな文法で理解しやすいため人気が高く、企業ニーズもあることから、今後ますます需要が高まるでしょう。先端IT人材を目指すなら、R言語やPythonの学習がおすすめです。

参考:経済産業省 商務情報政策局 情報処理振興課「IT人材育成の状況等について

先端ITスキル向上を目指すあなたへ。

就労移行支援「Neuro Dive」は、IT系職種に必要なスキルを身に着け活躍を目指す就労移行支援サービスです。無料のダウンロード資料でサービスの特徴をチェック!

まずは資料請求から資料をダウンロードする

Neuro Diveなら、データサイエンスに必要なデータ分析や機械学習のスキルを身につけ、エンジニアとして活躍できる職場がきっと見つかります。

希望者向けの個別面談付きWEB説明会に申し込む

就労移行支援Neuro Diveではプログラミング習得をサポート

Neuro Diveでは、先端IT領域の中でもAIや機械学習・データサイエンス・RPAに特化した学びを用意しています。プログラミングスキルとしては、RやPythonなどのツール・言語の習得を目指しています。

発達障害のある方がプログラミングスキルを身につけるために必要なことは、「個々に合った学習計画」と「適切なサポート体制」です。Neuro Diveでのプログラミングスキル習得のポイントをご紹介します。

個々に合った学習計画

発達障害の特性により、一般的な勉強方法が合わない人もいるでしょう。その場合、自分に合った勉強方法を見つける際に、アドバイザーや専門の支援員、メンターの存在が重要になります。就労移行支援事業所では、個別の「支援計画」と「学習計画」をもとに、専門スキルやはたらく上で必要な職業準備性の習得を目指せます。

適切なサポート体制

一人ひとりの特性に合わせた適切なサポートを受けられる環境も、プログラミングスキル習得に欠かせない要素といえるでしょう。適切なサポート体制があれば、興味関心をさらに伸ばし、自信が持てるきっかけにもなり得ます。また、就労移行支援事業所では、同じ目標を持って学ぶ仲間の存在が励みになることもメリットです。

「プログラミングや数学が比較的好き、興味がある」「AIやデータサイエンスなどの分野を学んでみたい」という方は、ぜひNeuro DiveのWEB説明会にご参加ください。