「文系だとプログラミングができない」と考えている人は多いようだ。
気持ちはとてもよくわかる。二進法がどうとか、処理速度がどうとか言われると理系の香りがするのは確かだ。
では、プログラマーの大半は理系出身者なのだろうか? そんなことはなく、文系出身者もいるどころか、3分の1は文系だ。目指す人の割合を考えれば、理系でも文系でもさして変わりがないことがわかるだろう。
このページでは文系でもプログラミングができる10の理由と問題への対処法をご紹介する。
もし、あなたが「文系出身だけどプログラミングを勉強したい」「プログラマーを目指したい」と思っているのであれば参考にしてほしい。
文系でもプログラミングができる10の理由
理由1. 現実的に文系出身のプログラマーは多い
実際、文系出身のプログラマーはIT業界に大勢いる。少数を指して「いる」と言っている訳ではなく、文系理系を気にする必要がないほど一般的にいる。
現実的にたくさんいるのだから、もちろん文系出身者でもプログラマーにはなれる。
統計データを見てみよう。プログラマー単体ではなくエンジニア全体の数字だが、参考データとしては使えるはずだ。
出典:IT人材白書
全体で言うと、3分の1は文系出身者だ。このように文系出身のエンジニアは想像以上に多い。
車や家電などを扱う組込み系技術者に関しては、専門職の意味合いが強く理系出身者が多くなっている。しかし、その他のIT技術者は文系の割合が意外と高いのがよくわかるだろう。
これだけいるのだから、「文系だからプログラミングはできない」というのは勘違いだ。実際いるわけだけだから。
理由2. プログラミングに数学は必要無い
プログラミングには数学の知識が必要だと思っている人は多い。勉強を始める前は「コンピュータ=数学」というなんとなくのイメージがあるのだろう。
だが、実際には、数学の知識や能力はプログラミングにほとんど必要ない。もっと言ってしまえば四則演算程度ができればとりあえず十分だ。あとは少数を使えるといい程度である。
虚数だったり、行列だったりといった高等数学を実務で使うタイミングは皆無だ。
そういった知識が必要となるプログラマーも存在するのは事実だが、そういった職場にはそういった知識を持った人が入っていく。宇宙開発のJAXAや大学の研究室や数値解析のシミュレーションソフトを作っている職場などだ。
専門的な職場では、もともと高度な数学知識を使うことが前提で、プログラミング云々はもはや関係ない。
ここまで来ると文系か理系かではなく、数学を専門に勉強してきたか否かだ。
理由3. 理数系知識も使わない
IT企業のほとんどの職場では、高度な数学だけではなく、理数系の知識もほとんど使わない。
熱力学を使うこともなければ、材料力学を使うこともない。化学式も出てこなければ、イオン式も出てこない。電磁気学が出てくることもなければF=maも見たことがない。
今、プログラマーがしている仕事のほとんどは、「少し前まで人間がやっていたことの自動化」だ。例えば、帳簿で管理していた売上を自動計算できるようにしたり、授業の出欠席を自動的に記録したりという仕事がほとんどだ。
「物理が苦手だったから・・・」
「化学が苦手だったから・・・」
という理由で文系に進んだ人もいるだろう。安心してほしい。そういった職場をわざわざ選ばない限り、プログラマーであっても出会うことはない。
理由4. 「プログラミング = 翻訳」だ
プログラミングのメインの仕事はなにやら難しい理屈を捏ねて、記号を打ち込んでいくことではない。
やりたいことをコンピュータに伝える翻訳作業をしていると思うのが、一番わかりやすいだろう。
もともと人間がやっていた業務をコンピュータにさせるのがプログラミングだ。
1〜10000を順番に足し算してください、と言われたら人間は悲鳴をあげる。しかし、コンピュータであれば一瞬で計算ができてしまう。
500ある支店の売上を商品ごとに分けて全て計算しろと言われたら、電卓を使ってもミスが出るだろう。しかし、コンピュータであればすぐに完了し、ミスもない。
このようにコンピュータは優秀だが、ひとつだけ欠点がある。それは「日本語を理解してくれない」ということだ。そのうちSiriやOk Googleがやってくれるようになるかもしれないが、現状では正確に日本語を理解してくれることはない。
プログラマーの仕事は、やってほしい作業を日本語からコンピュータ用語に翻訳するという仕事だ。翻訳に理系も文系もない。翻訳というと、むしろ文系の方が得意そうですらある。
理由5. 読解力が大切
プログラマーには読解力が必要な場面が多い。作って欲しいシステムのイメージを渡されたとき、相手の意図を読み取ってシステムを構築していくことが必要だ。
何から何まで指定をしてくれればいいが、そんなことはない。程度の差はあれ、大枠の状態で渡される。
そんなとき必要なのは読解力だ。相手が何をしたいと思っているのか、どうなったらベストなのかを考えて作業をする必要がある。こういった能力は、一般的に文系の方が得意と言われている能力だろう。
また、スキルを上げるには技術書を読むことも大切だ。文系であっても苦手な人はいるだろうが、本や文章量の多いドキュメントへの抵抗感のなさは大切だ。
理由6. 英語を読む力が大切
プログラミングの先進国はアメリカだ。最新の情報はすべてアメリカから入ってくる。もちろん言語は英語だ。有用な情報や新しい情報を必要とするなら、英語の情報も探さなければならない瞬間は必ず起こる。
この英語の記事や情報を探すというところも、プログラミング初心者が挫折しやすいポイントの1つだ。
日本は恵まれた国なので日本語ドキュメントも充実はしている。しかし、プログラミングの能力を上げるならどうにかしなければならない課題になっている。
文系はそういう意味で恵まれている。英語の勉強の比重は理系よりも高いだろうし、言語への感受性も高い部分もあるはずだ。
英語を話せる必要はないが、読む能力は必要だ。文系・理系を問わず覚えておいて欲しい。
理由7. 話す相手は技術がわからないことが多い
プログラマーはプログラマー同士で会話をしていればいいわけではない。技術がわからない人と会話ができないと何も仕事が進まなくなってしまう。また、そもそも仕事の依頼が来なくなってしまう。
相手がわからないことを噛み砕いて説明する能力がプログラマーには必要だ。そんなとき「まったくわからない状態から成長した」というのは大きい。
相手がわからないことに対して腹を立てずに、「そうですよね、わからないですよね。すみません。私も文系だったのでお気持ちよくわかります」と素直に言えるからだ。これは意外と大きな能力だ。
全般的なコミュニケーション能力とも言えるが、これも一般的には理系より文系の領域に入る分野だろう。
理由8. 経営的な視点を持ってくれている人は重宝される
プログラミングは何をするためにするのか? もちろん趣味でやっている人もいるが、当然働いてお金を稼ぐためだ。
案件を他の会社から貰ってプログラミングをするのも、自社でなにかのサービスを作っている場合も同じことだ。利益を得るために事業があると言っていい。
プログラミングを極めることや技術屋として素晴らしいものを作るのがゴールではなく、必要な機能を期日までに完成させる方が重要だ。
しかし、スキルに誇りを持っていればいるほどそういう視点がなくなってきてしまう。顧客目線ではなく、技術からの発送になってしまう。
そういう意味で経営的な視点を持ってくれやすい、経済学科や経営学科出身の文系エンジニアは重宝される。
理由9. 情報学科以外プログラミングの勉強はほとんどやらない
そもそも論の話でもあるのだが、理系であってもプログラミングの授業がほとんどない学部というのはたくさんある。
情報学科はそれが専門だから別だが、他の学科では勉強しないことも多い。あっても体験で3,4時間というところだ。意味はない。
また、大学で学ぶプログラミングと現場で使うプログラミングは毛色が異なる。使い方が違うのだ。大学では難しい問題を解くことが目的で、難しいプログラムを書く。しかし現場ではとにかくシンプルにメンテナンスしやすく、誰にでもわかるプログラムを書くことが求められる。
大学でプログラミングを勉強したことがないからといって、引け目を感じる必要はない。
理由10. 論理的思考能力に文系とか理系とか関係ない
それでも理系がプログラマーに向いているという話が出るのは論理的思考能力を使う場面が多いからだ。
「論理的な思考力」を鍛える場面が多いのが理数系であるために、理数系の方がプログラマー向きという言い方をされるのだろう。本質的には、論理的な思考力は誰もが持ち合わせている能力だ。理系文系は関係ない。
また、論理的な思考と言っても、難しいものではない。例えば次のような文章を、図にできるような能力だ。
「コンビニに行っておでんのセールをしていたらおでんを買う。それ以外ならおにぎりを買う」
このように図示ができれば問題ない。これを繰り返し構築していくのが、プログラマーに必要な能力だ。こういった論理的思考能力に文系や理系は関係がない。
「文系だから・・・」への対処法
プログラミングは難しいものだと誤解しない
確かに初めてコードを見た初心者なら難しそうに見えるかもしれないだろうし、実際プログラムを書くことは簡単ではないだろう。これは当たり前だ。
英語を見たことがない人が、英語を見たら「無理!」となる。勉強すると少しずつ読めるようになる。プログラミングも同じだ。コンピュータ言葉への翻訳作業だから、はじめからできるわけもない。
プログラミングは決して難しくなく、日々の積み重ねでできるようになる。加えて英語よりも間違いなく簡単だ。
プログラミングのはじめ方
プログラマーは「何の言語でもいいから本買って勉強してみなよ」というだろうが、やはり初心者向けの方法はある。
Webサービス、もしくはもっと簡単にWebサイトを作ることをまずはオススメする。他のプログラムより簡単だし、すぐに結果が出て面白いはずだ。次の記事を読んでみてほしい。
5分で理解!Web開発初心者におすすめするプログラミング言語
勉強したらわからなくなった
勉強したらわからなくなったという人は次の記事をお勧めする。
ぜひ参考にしてほしい。
まとめ
文系でもプログラミングができる理由についてまとめてみた。
文系だからプログラミングができないというのは、誤解なのだということがは伝わっただろうか? 難しい数学を理解しないとプログラミングができないというのは40年以上前の話だ。
あなたが「文系だ」ということからプログラミングを勉強することに躊躇しているのであれば、このページを元に一歩踏み出して頂ければと思う。
プログラミングをするにはオブジェクト指向も理解して欲しい気がしますが、文系の方に理解してもらえそうでしょうか?
オブジェクト指向を理解していなくてもプログラミングは出来ますが、品質(凝集度、結合度)に差が出てくると思います。
オブジェクト思考の理解にも理系と文系はあまり関係がないようです。能力の違いというのはもちろん影響しますが、言語でも構造的な文章がかける方はオブジェクト指向が得意な傾向にあります。
ありがとうございます。