AMBLの日々

文系学生がプログラミングの苦手意識をなくすコツ

この記事は、文系の学生の方で、IT業界への就職を考えている方向けの記事です。
エム・フィールドの高橋裕之です。好きな色は瑠璃紺です。私が文系の学部を卒業し、IT業界に身を投じてから早くも30年になります。ほとんどの間、「基幹業務システム」と呼ばれる企業の業務遂行に欠かせない経理や生産管理システムなど大掛かりなシステムの主にサーバサイドの開発を行ってきました。
私が大学を卒業した30年前と現在では社会状況はまるで変っていますが、当時IT企業はどんな学生でも採用するバブルの残り香が漂う時代でした。自前のPCも持ってなかったIT弱者だった私がなぜIT企業に身を投じたのか謎です。

それはさておき、30年の間にIT業界は成長し、プログラミング教育が小学生から必修になるなど、これからはネイティブ・プログラマー的な人材が多数を占める世の中になっていくでしょう。

2021年現在の大学生の方は、プログラミングを習得している方もいれば、文系でプログラミングは難しそうだけど、IT業界に興味があって就職先として興味を持っている方もいらっしゃるでしょう。当社に2021年に入社した新入社員21名のうち、文系は7名でした。(今年は理系が多かった!)
4月に入社して今では全員各部署でプログラミングやデータ解析など、大学生時代に経験がない分野で活躍しています。しかし、多くの文系学生は最初にプログラミング言語と向き合う時に壁と感じるようなので、私が考えるプログラミング言語との上手な接し方をお伝えしたいと思います。

文系学生がプログラミングで苦労すること

文系(プログラミング経験ゼロ)でも、就職してから学べば間に合うのか?、不安に思う方もいると思います。しかし、心配は無用です。弊社はもちろんですが多くのIT企業が新入社員の初期教育に力を入れています。

3か月から半年の研修を経て、各現場に配属されると、最初はテストの実施(先輩たちが作ったシステムがきちんと動くかの検証)からスタートし、エンジニアやプロジェクトマネージャーなどに進むことになります。
そもそも「3か月から半年の研修で開発ができるようになるなら、学生のうちに事前に学んでおけばよいのでは?」と思うかもしれませんが、IT業界の環境は日々新しいアーキテクチャや思考が導入されるため、2〜3年で技術や手法が置き換わってしまうことが多々あります。(そうでない分野もあります)だから、もし今プログラミングが未経験の方は、入社の後の研修で十分キャッチアップすることができると思います。

もし、大学でプログラミングの授業がないのであれば、あえて外部でプログラミングを学ぶよりも論理的な思考、文章力、表現力を十分に身に着けたほうが、将来的に役に立つと思っています。
とはいえ、入社後の研修期間において、プログラミング経験がゼロの方はそれなりに苦労し、追いつくのが精いっぱいかもしれません。プログラミングに不慣れな方は、なぜ苦労するのでしょうか?何がプログラミングを会得する際の壁になっているのでしょうか?私は、多くの人が「プログラミング言語に惑わされている」と思っています。

プログラミング言語とは

毎年、以下ZDnetJapanの記事のように、人気プログラミング言語が各サイトで報じられています。

人気言語はJavaScript、PythonとJavaは拮抗–開発者エコシステム調査
上記の記事によると、開発者向けツールを提供している企業JetBrainsが実施した最新の調査では、過去12カ月以内に使用された言語のトップ10は、上位から順に、JavaScript、HTML/CSS、SQL、Python、Java、シェルスクリプト言語、PHP、TypeScript、C++、C#でした。

上記のいわゆるプログラミング言語は一律に語っていいものかと思いますが、エム・フィールドに入社した新卒社員は、Java、Python、SQL等を研修期間に習得するカリキュラムになっています。
さて、これらのプログラム言語は、果たして「言語」なのか?という問いが頭をよぎります。

言語とは、人間が音声や文字を用いて思想・感情・意志等々を伝達するために用いる記号体系。およびそれを用いる行為(広辞苑)。音声や文字によって、人の意志・思想・感情などの情報を表現したり伝達する、あるいは他者のそれを受け入れ、理解するための約束・規則。および、そうした記号の体系

大辞泉

そもそも、人と人が会話できないと言語ではないので、プログラミング言語は、言語ではありません。

「コンピュータ言語の内コンピュータプログラムを記述するための形式言語である」

Wikipedia

そう、言語ではなくて、「形式言語」なのです。
コンピュータ間の演算式の決まりを、人が理解しやすいように定義しているので、言語として理解するには無理があります。
さらにプログラム言語は、ほぼ欧米の言語を元に組み立てられているので、日本語を母国語としている人には、日本語>英文>プログラミング言語の変換を経る必要があります。

翻訳家や通訳者はプロフェッショナルとして、多言語間の変換を行うので、プログラミング言語の理解は早そうですが、多言語変換に慣れていない人にとっては、ハードルが高くなります。

なお、日本語のプログラミング言語は数は少ないですが存在します。将来的にはわかりませんが、OSの互換性、他言語との互換性が乏しいので主流になりえないので、積極的に日本語のプログラミング言語を学ぶことをオススメはしません。
プログラミング言語の習得で文系の方が躓くのは、日本語から英文の変換を疎かにしているために、プログラミング言語の壁に跳ね返されているのでは?と思っています。

日本語とプログラミング言語 


日本語脳からプログラム言語を理解するには、日本語と英語の違いを理解しておくことが肝要です。
金谷武洋氏の著作『日本語に主語はいらない』で語られているように、そもそも日本語は主語がなくても十分に言語として機能しています。むしろ英語の文法に無理やり当てはめて考えようとすると主語がない曖昧な言語だと錯覚してしまいます。

「My name is Takahashi」は日本語の会話の中では「高橋です。」であって、主語である「私の名前は」は省略されます。(英語でも上記のように言わないかもしれませんが、あくまで例として)


プログラミングにおいても似ていて、日本語で「こうだからこうしたい」と設計書・要求書に記載されている時に、英文でいう主語が見当たらない状態でプログラミング言語に当てはめる必要があるので一瞬躊躇してしまうのだと思います。日本語の曖昧さというよりは、言語自体の特性が英文と違っていると考えるべきと思います。

■プログラミングにあたって

プログラミングとは、顧客の要求に沿ってコンピュータを動作させる行為で、そこには日本語、英語、プログラミング言語の多段階の思考、言葉の変換(無理やりな当てはめ)が必要です。

1.顧客要求(日本語文章)→設計書(英文的な日本語)
2.設計書(英文的な日本語)→(脳内)英文
3.(脳内)英文→実装(プログラミング言語)

あえて大雑把に分類すると、多くの文系の方が得意とし既に素養としてあるのが、1と2の日本語と英語の変換です。プログラミング言語から習得している方は3が得意でしょう。
文系の方は、設計書(英文的な日本語)から実装(プログラミング言語)に変換することに壁があるので、一度、英文的な理解を経て実装することが多いようです。
逆に文系でない方は、1と2の訓練が必要です。

プログラミングが難しい、文系だから苦手という意識がある方が多いかもしれませんが、実はプログラミングを作るまでの過程を考えると、文系的な能力も欠かせません。

プログラミングに対する苦手意識を克服するコツは、プログラミングにおける自分の母国語を決めることです。エンジニアとして成長していくうちに、様々なプログラミング言語に触れることになりますが、基本的な文法が言語(JavaやCなど)で異なり、その違いの度合いに差があります。
英語と中国語のように全く異なるものもありますし、ほぼ理解可能な方言程度の違いのものもあります。母国語をきちんと習得していないと、この違いすら理解できないことになりますので、まずはプログラミングにおける母国語と決めた言語をしっかりと理解することをオススメします。
母国語以外の言語を学ぶ時は、外国語の勉強と同じように単語帳を作って始める必要はありませんが、第2外国語の文法を学ぶイメージで基本的な文法を理解してください。
そのうえで要件・仕様からソースコードに落とし込む「翻訳作業」に入って進めることになろうかと思います。

こうしたことから、文系=プログラミングに優位でない、ということはありませんので、臆することなくIT業界への参加を考えてほしいものです。

この記事が、文系学生でIT企業への就職を悩んでいる方の不安を払拭する一助となれば幸いです。


あなたもエム・フィールド グループで働いてみませんか?

エム・フィールドグループは事業拡大に伴い、一緒に働く仲間を通年で募集しています。データサイエンティスト、エンジニア、クリエイターなど様々な職種を募集しています。ご興味のある方は、採用サイトもご覧ください。

エム・フィールドグループ 採用サイト
・人事が考える、エム・フィールドを一言で表すと、〇〇な会社!
社内の80%がエンジニアのエム・フィールドグループの社内育成制度を覗き見👀

ABOUT ME
高橋 裕之
執行役員を務めています。 Jリーグを愛してます。鉄分多め。