- 文系でもプログラミングってできるの?
- 文系でもIT企業に就職ってできるの?
- IT企業に就職するために、大学生の内から何をしておけばいいの?
プログラミングには興味があるけど、文系大学でそういう授業は受けたことないということで、自分にもプログラミングができるか分からない方も多いと思います。
また、最終的にプログラミングができそうならIT企業の就職も考えているけど、文系大学生ってそもそも採用してくれるのかも分からないと思います。
結論から言うと、
文系でもプログラミングの勉強はできますし、IT企業に就職することもできます。
ケンさん
私は、高校生から10年以上プログラミングを独学で勉強しており、文系(法学部)新卒でIT企業に就職しました。
その経験を元に、
- 文系でもプログラミングができる理由
- プログラマーに必要な能力
- 就職活動までにしておくべきこと
を解説します。
他にもプログラミングを始める上で知っておくべきことを解説しているので、ぜひ参考にして下さい。
≫ 関連記事:プログラミング独学は何から始めれば良いのか手順を解説【独学歴約10年】
目次
文系大学生のプログラミング学習は可能?【可能です】
文系大学生でもプログラミングの学習は可能で、主な理由は次の通りです。
- プログラミングには文系・理系は関係ない【理系科目不要】
- IT企業には文系出身プログラマーも多い
- プログラミング学習できる方法が豊富
- プログラミングの向き不向きが大きい
ケンさん
プログラミングには文系・理系は関係ない【理系科目不要】
プログラミングって理系じゃないとできないんじゃないの?
プログラミングには文系、理系は関係なく、誰でもできるようになります。
主な理由は次の通りです。
- 私自身が文系出身でIT企業に就職した
- IT企業の開発者の3~4割程度が文系出身
- プログラミングに理系の知識が必要無い
実体験や周囲の状況、知識面から文系とか、理系とか関係ないと言えます。
正確に言うと、理系の知識が必要な分野のプログラミングはありますが、全く必要のない分野もたくさんあります。
IT企業を目指すのであれば、Web系やスマホアプリ、Windows向けアプリなど、理系の知識が必要無いプログラミングの分野で働くことが多いです。
一方で、車に搭載されるシステムやエアコンのシステムなどの組み込み系は、理系の知識が必要な場合があるので文系ではなかなか難しいですね。
IT企業には文系出身プログラマーも多い
企業にもよりますが、IT企業の3~4割程度の社員の方が文系出身です。
私の同期の中には、文系出身で全くプログラミングに触れたことが無い方もいました。
幸い、割と大きい企業だったので3ヶ月ほどの研修をした上で配属という形でしたが、研修の整った会社であれば比較的安心して目指せると思います。
一方で、同期の中には理系出身の方もいましたが、理系の方が全員プログラミングがすごくできるかと言われれば、そうでもなかったです。
大学の講義で数単位程度のプログラミングでは、それほど実力が付かないということでしょう。
ですが、プログラミングが好きな方や研究室等でバリバリ使っていた方は、研修の時から優秀でしたね。
つまり、文系や理系は関係なく、次の2つの方がよっぽど重要です。
- プログラミングの適性があるかどうか
- プログラミングの勉強する気があるかどうか
プログラミング学習できる方法が豊富
最近では、書籍だけでなく、プログラミングの無料のWeb学習サービスであったり、プログラミングスクールであったり学習できる方法が色々と揃っています。
昔であれば、それこそ2年生の専門学校や理系の方ぐらいしかプログラミングに触れる機会が無かったと思いますが、最近は色々と学びやすい環境が揃っているので、すぐに手を付け始めることができます。
高校生や大学生の方であれば、おすすめしている学習方法としては次の2つです。
- 書籍
- Web学習サービス
金銭面的に、比較的にリーズナブルでプログラミングを始めることができますし、IT企業に就職を目標にしているのであれば時間もあると思うので。
一方で、お金を掛けてでも効率的に学びたい方は、プログラミングスクールをおすすめします。
プログラムミングを学習する上で、一番挫折しやすいのが、エラー等で行き詰った時です。
スクールであれば、プロに質問できるので行き詰まることはなく学習の効率を高めることができます。
挫折したらどうしようと不安な方向けに挫折する理由と対策について解説しているので、ぜひ参考にして下さい。
≫ 関連記事:【挫折率9割!?】プログラミングの挫折理由と失敗しない学習方法【独学歴約10年】
プログラミングの向き不向きが大きい
プログラミングは、向き不向きが結構分かれる分野だと思っています。
私の場合は、結構向いていたので、途中何回か挫折しかけましたけど、何とか続けることができています。
- 自分が実現したい機能をどういう風に組み立てていくのか考えるのが楽しい
- 最終的に自分の思い通りに動いた
プログラミングをやってみて、こう考えられる人は向いていると思います。
これに関しては、ひとまずプログラミングをやってみないことには分かりません。
もし、プログラミングスクールを考えている方は、ひとまず、書籍や無料のWeb学習サービスなどでプログラミングをしてみるのをおすすめします。
10~50万ぐらいのスクール代を払った後、自分には向いてないとなるともったいないですからね。
書籍もWeb学習サービスも何も最後までやる必要はなく、向いてそうだなと分かった段階でスクールに入るのが良いです。
プログラマーに必要な能力とは?
理系でなくてもできることは分かったけど、プログラミングに必要な能力やスキルって何かあるの?
理系・文系は、学習においても就職においても関係ありませんが、プログラミングを学習していく上で、必要な能力やスキルがあります。
必要な能力・スキルがあると言っても、現時点で無くても構いません。
プログラミングを学習する中で、身に付けることが苦でなければ問題ないですね。
勉強し続ける継続力【好奇心・向上心】
SEやプログラマーになるためには、日々勉強し続けることが必要です。
ITの業界では、次々に新しい技術が出てくるので、一通りプログラミングの勉強をしたからと言って、そこで終わりではありません。
趣味や事務処理などの自分の仕事を効率化する場合であれば、一通り勉強してしまえば大丈夫です。
しかし、IT企業で勤めるのであれば、様々なプロジェクトに関わることになり、プロジェクト毎に必要なスキルが変わってくるので、その度に新しい技術を勉強する必要があります。
そのため、“勉強し続ける”ことが苦痛にあるようであれば、IT企業への就職は向いていないと思いますね。
書籍やWeb学習サービスを一通りやっても、プログラミングの基礎部分のみの場合が多いので、一通り勉強した後で、自分の作りたいものを作ってみましょう!
その時、「これってどうやって実現するんだ!?」「この部分のプログラム方法が分からない…」ということが多くあるはずです。
分からない部分を1つ1つネット等で調べて勉強していきます。
IT企業ではプロジェクト毎に、使う技術が大きく違うので、その度に新しいことを覚えていく必要があります。
プログラミング言語が変わることもありますし、同じ言語であっても、Bluetoothの知識が必要であったり、画像処理技術が必要であったりと様々です。
私は、比較的短期のプロジェクト(半年~1年程度)を色々回っていたこともあり、色々な技術を勉強することができました。
一方で、数年単位で同じプロジェクトの場合は、比較的新しく学習することは少ないかもしれませんが、全くないことは無いでしょう。
プログラミングは、「あるレベルまでに到達すれば、勉強せずに淡々とコードを書くだけで良いから楽だろうな…」と思っている方は改めた方が良いですね。
コミュニケーション能力【IT企業に就職する場合】
プログラマーって黙々とパソコンでコードを打っていれば良いから、コミュニケーション能力は必要無いんじゃないの?
これは全く違います。
普通にコミュニケーション能力は必要で、むしろ、他の業種より高いコミュニケーション能力が必要かもしれません。
趣味や個人でプログラミングをする場合は、もちろん一人なので、コミュニケーションする必要はないです。
しかし、IT企業で働くことを目標にしているのであれば、コミュニケーション能力は必要です。
報告・連絡・相談は社会人として基本中の基本。
- 上司に、設計内容や進捗状況の共有、スケジュール調整の相談、ミーティング、不具合の状況共有
- 部下への指示、行き詰っている際の解決のアドバイスや手助け
- 取引先との進捗状況、不具合の対応状況、ミーティング
このように様々な場面で、コミュニケーションが必要になります。
特に、立場が上になってチームリーダーなどになると上司、部下、取引先など多くの方とコミュニケーションをとる必要があります。
また、プログラムの内容や不具合の原因と解決方法などの技術的な話をしたり、ITのことが分からない取引先の方であれば簡単に嚙み砕いて話をしたりと、普通にコミュニケーション能力が必要になります。
そのため、「プログラマーってパソコンでコードを打ってるだけで、コミュニケーション能力が低い自分に向いてそう…」と考えるのは間違いですので気を付けて下さい。
論理的思考力
プログラムを1から作る場合、あるいは、既存のプログラムに対して昨日を追加する場合に、最終的に何をするのかに対して、どういう処理が必要か細分化して考える必要があります。
例えば、複数の画像に対して、右下にロゴマークを追加するプログラムを作りたいとします。
この機能を実現するためには、主に次のような処理が必要になります。
- 画像ファイル・ロゴマーク画像の読み込み
- ロゴマークを追加する位置の算出(画像サイズに対して右下から何%の位置など)
- 画像にロゴマークを追加
- 画像の出力
※複数の画像に対して行う場合は、2~4を繰り返す。
大雑把ですが、1つ1つの処理に細分化して、どういった処理が必要になるか洗い出します。
さらに、この時点で自分に不足している技術があるのであれば、ネットなどで調べたり、実際に使えるか検証したりします。
このように、最終的に実現したい処理に対して、処理の細分化、不足知識の把握と勉強をするために、論理的思考力が必要です。
プログラミングに英語は不要
プログラムって英語で書かれているから英語も必要なんでしょ?
プログラミングには興味があるけど、英語が必要そうだから英語が苦手な自分にはできそうにないな…と思われるかもしれませんが、全然そのようなことはありません。
結論を言うと
中学生レベルの簡単な英単語が分かればOK
エラーや不具合を調査する際に英語のサイトしかない場合は、英文を読む必要も出てくるので全く要らないことは無いですが、そういう場合はGoogle翻訳でOKです。
ケンさん
実際、IT企業にも勤めていましたが、他の方もほとんど雰囲気で少し読める程度で、Google翻訳を使う方が多かったです。
そのため、プログラミングには興味があるけど、英語が苦手で…という方も、是非チャレンジしてみて下さい。
プログラミングで英語が必要なのか、どういう時に必要かなどをIT企業に勤めた実体験も含めて解説しています。
≫ 関連記事:プログラミングに英語は必要?【ダメでもOK/Google翻訳でOK】
プログラミングに数学は不要
プログラミングって理系のイメージがあるし、数学も必要なんでしょ?
数学についてもプログラミングで必要なイメージがあるかもしれませんが、ほぼほぼ必要ありません。
結論を言うと
プログラミングで作るものによって、数学が必要かどうか分かれる。
必要の無い場合でも簡単な四則演算(+,-,×,÷)レベルは必要。
Web系(ホームページ、ブログなど)やスマホアプリ、Windowsアプリであれば、数学は使わなくても開発することができます。
一方で、ゲーム、データ分析、AIでは、基本的に必要になってきますね。
大雑把に数学が必要なものと不要なものを分けましたが、開発するものによっても変わってくるので、一概には言えません。
しかし、絶対数学が必要という訳ではなく、数学の必要ない分野のプログラミングもたくさんあるので、数学が苦手な方は、そちらをチャレンジすると良いですね。
プログラミングで数学が必要なのか、どういう時に必要かなどをIT企業に勤めた実体験も含めて解説しています。
≫ 関連記事:プログラミングに数学は必要?【ダメでもOK・実体験】
文系大学生がIT企業の就職活動までにすべきこと
文系大学生で、1,2年あたりからIT企業へSE・プログラマーとして就職したい場合に、今の内から何をやればいいか気になると思います。
私は、高校3年生からプログラミングを独学し、新卒でIT企業のSEとして就職しました。
最近では、文系でも一部プログラミングができる授業もあるようですが、私の学部ではプログラミング授業はおろか、パソコンを使う授業もありませんでした。
大学の授業関係なしに、全部自分でプログラミングの学習を進めてきましたが、就職活動の面接や働き始めた頃に、大学時代にやっておいて良かったと思うことが色々あったので共有していこうと思います。
プログラミング学習
書籍や無料のWeb学習サイトなど何でも良いので、とりあえず次の2つを決めて学習を進めていきましょう。
・作ってみたいもの
・プログラミング言語
作ってみたいものがあれば、大体プログラミング言語も決まってきます。
私が学生の頃は、次の言語を学習していました。
- Web制作:HTML, CSS, Ruby, PHP, JavaScript
- Androidアプリ:Java
1つプログラミング言語を大体使えるようになれば、別の言語も割と簡単に覚えられるので、気軽に言語を選んでもらって大丈夫ですね。
あとは、色々な分野の仕事をしている大きめのIT企業であれば、この時経験した開発、プログラミング言語を使ったプロジェクトに配属されることが多いんじゃないかなと思います。
私は自動車の組み込み系の開発に希望を出していたのですが、Androidのスマホアプリ開発のプロジェクトに配属になりました。
会社側の配属の人数調整等の問題もあると思いますが、やはり、少しでも経験値を持っているものに関連した部署の方が良いだろうという判断でしょう。
プログラミングやIT企業に興味あるけど、もう就活始まっていてプログラミング経験もない!
ここまで、プログラミングを就職活動前に学習している方向けでしたが、就職活動を初めてから興味が出た方もいらっしゃると思います。
一応、プログラミング未経験でも就職することは可能です。
大きめな企業であれば、数カ月の研修もあるので、ある程度プログラミングに触れた上で実務ができます。
実際に、私の同期にも文系大学卒でプログラミング未経験の方がいました。
ですが、面接での受かりやすさで言えば、プログラミングを自分で学習していて、さらに、何かを自分なりに作ったことのある人の方が断然有利だと思います。
何か1つプログラムを開発し完成させる【小規模でOK】
就職活動を始める前までに、小規模なもので大丈夫なので、何か作りたいものを1つ開発して完成させておくことをおすすめします。
面接ではその開発したものを中心に話す感じです。
書籍やWeb学習サービスを一通りやっただけだと、面接時のアピールポイントとしては正直弱いと思います。
なぜなら、プログラマーに必要なスキル・素質があるかは、この段階では良く分からないからです。
そのスキルや素質が分かるのは、自分で一から何かを開発した時だと考えています。
プログラミングで何かツールを開発する際に、次のようなスキルが必要になってきます。
- プログラミングを勉強する継続力・向上心・好奇心があるか。
- 自分のスキルの不足部分を把握し、調べて勉強することができるのか。
- エラー・不具合時に自分で調べて解決することができるか。
1は、書籍やWeb学習サービスでプログラミング学習をしていれば、最低限アピールはできますが、2,3は難しいです。
書籍やWeb学習サービスの場合は、段階的に学習を進めることができるように構成されています。
そのため、
- 開発するものに対して現状どういうスキルが不足しているのか
- エラーや不具合が出ることも少ないのでどのように調べれば良いのか
ということが身に付きづらいです。
しかし、自分が作りたいものを一から開発すれば、1をさらに高めることができますし、2,3を身に付けることができます。
今後、SE、プログラマーとして仕事をする中で、この能力が重要になってくるので、面接時に実際に開発した経験を話し、自分で勉強することができることを証明すれば、大きなアピールポイントになります。
文系大学生におすすめなプログラミング言語
プログラミングには様々な言語があり、言語によって開発できるものも様々です。
また、プログラミング言語によって難易度も変わってきます。
プログラミングは挫折率が高い分野なので、始めは、比較的取っつきやすい言語から始めることをおすすめします。
ケンさん
では、比較的始めやすい言語をいくつか紹介します。
Windowsアプリケーション(C#)
皆さんが普段使っているブラウザや電卓、カレンダー、OfficeなどWindowsで動作する様々なアプリケーションを開発することができます。
Windowsのパソコンを持っている方であれば、手軽に開発環境を構築し、プログラミングを始めることができます。
プログラミングを始める前段階の、開発環境を整えるところで難しすぎで挫折してしまう話をよく聞きますが、Visual Studio(開発環境)を使って、C#でWindowsアプリ開発であれば、比較的手軽に始めることができますね。
例えば、次のようなものを開発することができます。
- ボタンなどのフォームを用いたGUIアプリケーション
- どこかのページのHTMLを取得・解析して、情報を取得するスクレイピング
- Excelを操作できるライブラリを使って、データの入力など
- 画像系ライブラリを使って、画像内の人や顔を検出
他にも色々なことができるので、是非調べてみて下さい。
Web系(HTML, CSS, PHP, Javascript)
HTML, CSS, PHP, JavaScriptを使って、ホームページやWebサービスを開発することができます。
正確には、HTMLとCSSはプログラミング言語ではないですが、Web系のものを開発する際には必要なので一緒に覚える必要があります。
ホームページを作るだけであれば、最低限、HTML, CSSだけで作ることができます。
また、PHPやJavaScriptを使うことで、動的なページを作ることができます。
動的なページとは、ページを遷移することなく、異なる内容を表示・変更させるWebページのことです。
例えば、通販サイトのように表示内容がユーザー毎に違うアカウント制のサイト、ユーザーが書き込むことで内容が増える掲示板、ブログなど
JavaScriptは、次のような動的なページを作る際に必要になります。
- 画像を並べて、一定時間毎に画像を切り替えていく
- ページの内容が何かしらのアクションで変更される場合
サイトのトップページなどに、一定時間やボタンで画像が切り替わるメニューがよくありますが、このように動的に動くやつですね。
何かしらの検索ボックスや検索結果の並び順をボタン等で変更したりするような場合ですね。
PHPは、次のような動的なページを作る際に必要になります。
- 掲示板
- 問い合わせフォーム
- 通販サイトなどのショッピングカート
Webページ自体には、データを持ち続けることができないので、データベースにユーザーが入力したデータを保存したり、保存したデータを表示させたりすることができます。
また、Windowsアプリケーションと比べて、環境構築が少し難しいです。
HTML, CSSだけのページであれば、メモ帳でも作ることができますが、PHPやJavaScriptを使いたい場合は、サーバーが必要になります。
誰も見せたくないテスト用や勉強用のページを制作する場合は、ローカル(自分のパソコン内)でサーバーを立てる必要があります。
また、全世界に公開したい場合は、レンタルサーバーを借りて、サーバーを用意する必要があります。
どちらにしても、環境を構築するためにいくつか操作が必要なので、色々と調べつつ構築していく必要があります。
スマホアプリ(Objective-C, Swift, Java, C#)
AndroidやiOSアプリは、パソコンと手持ちのスマートフォンを使って開発することができるので、比較的簡単に始めることができるプログラミングです。
プログラミング言語がいくつかありますが、それぞれ開発できるものが決まっています。
プログラミング言語 | 開発できるOS | |
---|---|---|
Androidアプリ | Java | Windows, Mac |
iOSアプリ | Swift, Objective-C | Mac |
両方のアプリ | C#(Xamarin) | Windows, Mac |
Androidアプリを作りたい方は、WindowsでJavaを使い、iOSアプリを作りたい方は、MacでSwiftを使うのが一般的です。
同じ会社がAndroid版とiOS版で同じアプリをリリースしていることがありますが、基本的には別々にコードで開発します。
しかし、別々にコードを作ると人件費や開発工数など様々な面で2倍になってしまうことから、コードを共通で開発できるようにしたのが、Xamarinというもので、C#を使ってコードを書くことができます。
スマホアプリの開発と一言で言っても、様々な方法で開発する方法があるので、自分がどのスマホ、パソコンを持っているかを考えて選ぶと良いでしょう。
また、開発したアプリをマーケットに公開することで、全世界の人がインストールして使ってもらうこともできます。
ただし、アプリマーケットに登録して公開するには、どちらにしてもお金が掛かってくるのでこの点は注意。
iOSアプリの場合 :年間1万1800円
Androidアプリの場合:アカウント登録料25ドル(初回一回のみ)
スマホアプリの場合は、次のようなセンサー類が豊富に搭載されています。
- 加速度センサー
- GPSセンサー
- ジャイロセンサー
- 磁気センサー
- 生体認証センサー
- 近接センサー
- 環境光センサー
- Bluetooth
これらセンサー類を使って、アプリ開発ができるので結構楽しいですよ。
まとめ:プログラミングスキルは最終IT企業でなくても役立つので興味があるならチャレンジしよう!
プログラミングは理系っぽいイメージがありますが、今までの解説や私の実体験から、文系大学生でもプログラミングを身に付けれることが分かって頂けたと思います。
プログラミングは中々難しいものですが、それを乗り越えて自分に思い通りコードが動けばとても楽しいです。
また、プログラムによって様々な作業を効率化・自動化することで、プログラミングができない人と比べ圧倒的な作業をすることもできます。
この記事では、文系大学生はプログラミングを勉強できるのか、IT企業に就職することができるのかを中心に解説しました。
しかし、最終的な目標がIT企業への就職で無くても構いません。
プログラミングは、IT企業のみで役立つスキルでは無く、事務処理の効率化、マーケティング等の数字の分析など様々な分野で生産性を極限まで高めることができます。
そのため、IT企業までとはいかなくても仕事の作業を効率化したいという方も、ぜひプログラミングに挑戦してみて下さい。
コメントを残す