文系だけどコミュニケーションが得意じゃない。ひとりで黙々と作業ができる仕事の方が向いている。手に職をつけたい。という理由で文系出身でIT業界でソフトウェアエンジニアとして働きたいと考える方は多いようです。
でも文系出身だし、数学は勉強してないし理系科目もさっぱり。プログラマーは理系バリバリの職種だし。
絶対ムリ・・・。
そう思っている方。本当に文系の人はプログラマーになれなのでしょうか。その疑問にお答えします。
プログラミングで数学を使ったこと、一度もないです
私、ろんろんろっきーは20年間ソフトウエアの仕事をしてきました。組み込みソフト(家電などのハードを制御をするソフト)、PCアプリケーションソフト、スマホアプリ、社内Webシステムと、かなり幅広いジャンルのソフトウェア開発に携わりプログラミングを行ってきましたが、、
数学使ったことないです!
微分、積分、やったことないです。方程式使って何か数値を求めたこと、一度もありません。
ウソだー!ほらほら、プログラムのソースコード、理系が使っている黒い画面のアレ!数式じゃん、数式がたくさんじゃん!
あれは数式ではなく、手続きなんです。きまったルールにのっとって命令を並べて指示しているだけなんです。
プログラミングは数学というよりパズル
プログラミングは数学というよりもパズルに近いです。
決められたパーツをくみ上げて、最終的に求められた形に作り上げる行為です。
ある制限の下で、いかに要求された形にくみ上げられるか、いかに少ないパーツでくみ上げられるか、そんなことをひたすらやっていく作業です。
たくさん頭を使う作業ではありますが、数学は使いません。もちろん物理や化学などの理系科目も使いません。
パズルは学校の授業で習うものではないです。お勉強するものではなく、遊びやゲームを通じて行う培う嗜好のようなもの。そういうものに近いんです。
数学は嫌いだけど、パズルなら嫌いじゃない。そういう人、結構いるのではないでしょうか?
理系出身もほとんどがプログラミング初心者
情報系の学生を除いては理系出身者でもほとんどがプログラミング初心者です。
私は会社に在籍しているとき、新人教育講師や、チューター、リクルーターを何度もやったことがありますが、プログラミング経験者は少なかったです。
実は理系と一言でいってもその幅は広く、専攻科目や研究室で学ぶ内容は全然異なります。研究装置の前でひたすらパラメータを打ち込んでいたり、化学薬品の調合をして変化を観察したりと。
なので、理系出身はみんなプログラミングを学んでみんなが経験者 というとそうでもないです。
必要なのは論理的思考力
では、プログラミングにはどんな能力が必要なのか?
それは論理的思考力です。
難しく聞こえますが、それほど難しい話ではないです。
例えば、以下のような2つの文章があったとします。
1.人間は動物だ。
2.動物は人間だ。
2番目の文に違和感を感じますか?違和感を感じられたなら、あなたは十分論理的に考えることができる力を持ち合わせています。
この論理的な感性って、文章を読んだり、物事を考えたりするなかで身に付けられていくものです。
理系だからできる、文系だからできない、そういう話ではないんです。
多くの文章をよんできた文系の皆さんなんかは特にしっかりと持ち得ている力ではないでしょうか。
理系出身者との差はほとんどない
これまで見てきたように、プログラミングは、勉強で学ぶ理系の科目とはあまり関係なく、バックグラウンドの差はないように思います。
仮にあっても半年~1年の時間の差だと思います。というのも、理系の大学の講義では、プログラミング教育というものが確かにあるからです。
でもこの大学の講義、プログラミングの初歩を浅く学ぶというというもので、あまり身に付きません。
僕自身も大学の授業で数コマうけましたが、意味もよくわからず、内容も頭に残っていませんでした。
結局、本格的にプログラミングを学んだのは入社して行われた研修でした・・・。
なので、理系の人は少し先行しているだけ、それも基礎をちょっと学んでいるくらい。期間にして半年~1年くらい。そう思っていいです。
これであればすぐ追いつけます。
学生さんであれば、まとまった期間に集中して勉強してみる、働いている人のであれば、帰宅後の数時間、土日の数時間、ちょっとずつでも勉強していけばすぐに追いつけます。
文系・理系という誤った線引きで選択肢を狭めるのはもったいない
文系だからこの仕事、理系だからこの仕事と決めつけて選択肢を狭めるのはとてももったいないことです。
文系だからといって、人と絡む仕事を選び、苦手なコミュニケーションを無理して行うような仕事を選ぼうとしてませんか?
それよりも自分が得意なこと、苦手なこと、自分の適性をしっかり踏まえて本当に自分に合った仕事に就くことが一番いいです。
プログラミングに関しては理系/文系といった出身のバックグラウンドに関しては全く関係ないです。
もし、文系だけどプログラマーという職種に興味がある方がいたら、この私の意見を参考にしてほしいと思います。
まったくプログラミングをやったことがない人が、どのように学んでいったらよいかについては、また別の機会にお話しします。
では。