プログラマーの中には文系出身者も数多く存在しているということを知っていますか?
プログラマーは「理系」というイメージが強い職業です。しかし、IT技術の進歩は、コンピューター内部の演算処理を包み隠し、機械語からより人間の言葉に近い言語での開発を可能にしました。
多くの人々が開発に携わることができるように開発環境も進化し続けているのです。
文系からでもプログラマーにはなれるのか
IT先進国であるアメリカには「文系」「理系」という括りは存在しません。日本でも数年前から「文系」「理系」という区別自体の不要論が取りざたされることも増えてきましたが、実際に最終学歴の専攻分野が技術者になるための足枷になることがあるのでしょうか?
情報処理推進機構(IPA)が発表したIT人材白書2017によると、“IT企業のIT技術者の最終学歴での専攻”は「情報系」が38.9%、「理学系」が7.9%、「工学系」が14.9%、「その他の理系」が2.2%で、残りの36.1%は「経済学(14.7%)」や「文学系(5.9%)」、「法学系(4.1%)」その他などでした。
また、“新卒IT人材を採用した際に重点的に採用した学生の割合”は、「情報系」が32.0%、「理系」が13.5%で、残りの54.5%は「文系(1.2%)」および「こだわらない(53.3%)」というものでした。
つまり、実際の現場で活躍している技術者のうち約3分の1はいわゆる「文系」という括りの出身者であり、また、新卒採用の際にも「情報系」に優位はあるものの、半数以上の企業が最終的な専攻分野にはこだわらないという傾向が見られます。
コンピューターの専門的な知識を学べるのは「情報系」と言われる専攻分野であり、「理系」ではプログラミングを勉強する機会はほとんどありません。そういう意味では、プログラマーとしてのスタート地点は「文系」も「理系」も同じ位置であると言えます。
文系でもプログラミングができる理由
人工知能(AI)の分野や数理モデルなどを扱うコンピューターシミュレーションなどにおいては、微積分学、線形代数学、確率・統計学など、大学レベルの数学の知識が前提として必要です。また、組み込み開発においても、扱う言語が機械語に近いことが多いため、数学的な知識が必要になる場合があります。これらの現場で文系出身者がプログラマーとして活躍するのは少し難しそうです。
しかし、上記以外であれば、専門的な数学の知識がなくても十分にプログラミング作業を行うことが可能な開発現場は多く存在します。
数十年ほど前までは高級言語の中でも比較的低水準と言われるC言語が主流であり、コンピューターのメモリに影響するような記述やビット演算なども直接扱えたため、プログラミング作業中に数学的な知識を必要とする場合もありました。
しかし、それ以降、プログラミング言語はコンピューターの内部を意識する必要のない、より高水準なものへと進化し続け、現在のプログラミング作業というのは、細かい内部の計算を意識しなくとも、論理を組み立てていくことで完成できるようになりました。
そもそも、プログラミングとは、実行したい動作の手順をコンピューターに一つ一つ教え込んでいく作業です。例えば、『朝起きて学校に行く』という動作をプログラミングしてみると、目を覚ます → 体を起こす → ベッドから降りる → … などという細かい手続きの連続になります。このような手続きの中で、何度も顔を洗ったり、必要な荷物を忘れたりしないように、道を誤ったり、通れない道が存在した場合なども考慮しつつ、確実に一番早く学校に行ける手順を組み立てます。この作業を行う上で「文系」「理系」の違いでどちらが優位ということはありません。
更に、技術者は合理的なことが大好きなので、できるだけ効率の良い開発環境を目指してきました。例えば、頻繁に使われる機能を部品化したり、システム全体の標準的な部分を統一させ、機械に近いレベルの部分をできるだけ意識せずに、ユーザー要求のみを論理的に検討できるようにしたりするためのフレームワークも生まれました。
基本的に人材が不足しがちなため、上級プログラマーではない一般的なプログラマーでも気軽に開発に参加できるように、開発環境が整えられてきたのです。
一方で、プロジェクトを組んでチームで行うことが多いシステム開発の現場では、開発者同志のコミュニケーションは何よりも重要です。
円滑に開発を進めていくためには、チーム内で技術や作業進捗などの情報を共有することが必須になりますが、そのためのコミュニケーション能力は「文系」「理系」という括りで区別されるものではありません。
また、同様に重要であるユーザーとのコミュニケーションにおいては、技術を全く知らない立場からスタートした文系出身の技術者の方が、ユーザーの気持ちを理解し易いと言えます。システムを利用するのはあくまでも一般ユーザーです。一般ユーザーと技術者の常識には大きな隔たりがあり、技術に精通している時間が長いほどその溝は深くなります。
ユーザーの気持ちを推し量り、できるだけ理解しやすい言葉で会話をしたり、ユーザーにとって分かり易い仕様を提案したりできるのは、技術を客観視し、ユーザーの立場に立ってシステムを見ることができる、文系出身の技術者のメリットです。
文系からプログラマーになるためのポイント
英語が得意な場合、そのスキルはとても役に立ちます。IT先進国はアメリカです。そこから発信される新しい技術文書を、翻訳を待つことなくいち早く読み解くことが出来れば、現場でも重宝されるでしょう。
加えて、新しい技術の習得に誰よりも早く着手できることは、かなりのアドバンテージになります。また、経営学を学んだプログラマーは、プログラミングという作業からシステム全体を把握し、プロジェクトという単位でそれらを事業として捉えることができるでしょう。企業の視点に立つと、プログラミングという作業はあくまでも手段でしかなく、重要なのはそれを通して展開している事業です。それを自然と意識できる経営感覚に優れたプログラマーも重宝されます。
現在、IT業界は変革の入り口に立っていると言われています。今までも社会全体に影響を与え続けてきたIT技術ですが、今後、更に進化し、産業の在り方や人の働き方などにも大きな変化が訪れると言われています。世の中の流れを変えるターニングポイントとなり得る新しいサービスの萌芽は既に潜んでいます。
文系出身のプログラマーがプログラミングという技術を習得した上で、「人文学」や「経営学」、「社会学」などの得意分野を出発点として、そこから自分なりに社会を洞察し、その中で新しいサービスの可能性に気付くこと、それはとても理想的な姿です。
文系からでも挑戦できる!
IT技術が進歩した現在では、AI技術開発などの現場を除けば、特に専門的な数学の知識を必要としなくともプログラミングを行うことが可能なため、文系出身者でも十分にプログラマーになることができます。
中でも英語や経営学などが得意なプログラマーは重宝される可能性が高いでしょう。
また、今後のIT業界の変革は社会全体にまで影響を及ぼすものであり、プログラマーに求められるものは、「文系」や「理系」といった括りの中で収まるものではなくなっています。
社会を洞察し、ビジネスとデジタルの在り方を常に模索し続け、新たなデジタル時代を切り拓いていくことが、これからのプログラマーが担っていく役割なのです。
もし、本気でプログラマーを目指すなら、プログラミングスクールに通うことも検討しましょう!
ポテパンが提供するサービスについて
本メディア「ポテパンスタイル」を運営する株式会社ポテパンは、エンジニアキャリア領域で複数サービスを提供しています。
・ポテパンフリーランス
フリーエンジニア向けの案件紹介サービス
・ポテパンキャリア
エンジニア職専門の転職エージェント
・ポテパンキャンプ
転職サポート付きプログラミングスクール
株式会社ポテパンは、企業とエンジニアの最適なマッチングを追求しています。気になるサービスがあれば、ぜひ覗いてみてください!