この記事の制作に関わったメンバー
足立拓也
足立拓也
未経験からプログラマーになって10年超。
おもにPHPやMySQLを使ったWebサイトの開発を行っています。
兵庫県出身で、休みの日はカメラを持って神社巡りをしています。
100名のアンケート回答者
100名のアンケート回答者
プログラマーを実際に採用したことがある、
採用を検討したことがある方100名。

18歳~30歳が10名(うち男性:6名、女性:4名)
31歳~35歳が14名(うち男性:10名、女性:4名)
36歳~40歳が24名(うち男性:10名、女性:14名)
41歳~45歳が25名(うち男性:17名、女性:7名、その他:1名)
46歳~50歳が16名(うち男性:4名、女性:12名)
51歳以上が11名(うち男性:2名、女性:9名)

株式会社ディープの各スタッフ
ホームページ企画、デザイン、制作、編集、運営を担当。

未経験でもプログラマーになれるの?

結論から言うと、プログラミングが未経験でもプログラマーになることはできます。

年齢や経験、その他、置かれている状況などによりいくらかの制約はありますが、
あなたのやる気さえあれば、たとえプログラミングに関する知識や経験がなくても
プログラマーになることができます。

例えば、お医者さんになるには医師免許が必要ですね?
弁護士になるには司法試験に合格する必要があります。

ですが、プログラマーになるには免許も資格も必要ありません。

プログラマーは、プログラマーになるための学習をしさえすれば(し続けさえすれば)、
誰でもなれる職業なのです。

ちなみに私ももともとはプログラムに関しては素人でした(大学は生物学部)。

が、新卒でたまたまシステム会社へ入社し、
実務を通してプログラミングに関する知識を習得するのと同時に、
帰宅後や休みの日を利用してプログラミングの学習を行うことで、
3年後には自分一人で中規模システムのコードを書くことができる程度になりました。

未経験だけど会社説明会へ参加できる?

もちろん、プログラミングが未経験者でも説明会へ参加することはできます。

社内研修制度が整っていたり、知識や経験によりもポテンシャルを重視する会社は、
未経験者でも積極的に採用を行っています。

そういった企業の求人情報を探して、まずは会社説明会へ行ってみてはいかがでしょうか?

会社説明会では、未経験で入社した後の会社のフォロー体制、未経験からのキャリアパスが
どうなっているかなどに注目して話を聞くと良いでしょう。

就活(説明会への参加)

現在は、プログラマーが不足している状況の為、経験者だけを採用しようとするのは困難です。
経験者・未経験者を問わずやる気のある方を採用しようとする企業はあるので、
まずは、求人サイトで検索したりや地域のハローワークへ足を運んでみてください。

ただし、例えば、「PL(プロジェクトリーダー)候補募集」などとなっていると、やはり、ある程度の経験者を求めています。
経験者を対象としている求人も存在するので、求人情報にはしっかりと目を通して、
未経験者が対象となっている説明会に申し込むようにしてください。

未経験だけど面接を申し込める?

もちろん未経験者でも面接を申し込むことは出来ます。

ただし、通常は、面接の前に書類選考があり、その書類選考に通ることが前提です。

私が2社目に入社したWebサイトを制作する会社の採用担当者は、
「仮に年齢が近い未経験者と経験者が応募してきた場合、
『未経験者歓迎』と求人広告に記載していたとしても、
経験者のほうが書類選考を通過する可能性が高い」と言っていました。

未経験者歓迎でポテンシャル重視の会社へ応募する、
未経験者歓迎で大量採用している会社へ応募する等、
書類選考を通過するには何らかの工夫が必要です。

ちなみにその採用担当者は、
「大きい会社よりも小さい会社の方が、未経験であっても面接まで
たどり着ける可能性が高いのではないか?」
とも言っていまいた。

経験者は大きい会社へ応募することが多く、
中小のシステム会社へはなかなか経験者が応募してくれない。

そのため、中小のシステム会社は未経験者を採用して
育てる方針であることが多い、とのことです。

未経験からプログラマーになる方法

では、ここからは未経験からプログラマにーになる方法について、
具体的に見ていきましょう。

大きく分けて、以下5つの方法があります。

①情報系の大学を卒業する
②専門学校を卒業する
③ITスクールに通って学習する
④独学で学習する
⑤「未経験可」の会社へ就職する

 

①情報系の大学を卒業する

情報系の大学の良いところは、

・基礎からじっくりとプログラムについて学ぶことができる
・専門分野以外の教養も身につく

といった点です。

私のまわりにも、
情報系の大学を卒業してプログラマーになった人がいるのですが、
就職してからの成長も早いような気がします。

やはり大学でじっくりと基礎を学習しているところが大きいと思います。

また、情報系の大学で学んだ学生でも、
ほとんどコードを書いたことがない、という方もいらっしゃるようです。

大学や学部を選ぶ際には、授業の内容がどのようなものか、
事前に確認しましょう。

②専門学校を卒業する

大学が4年間かけて学習するのに対し専門学校は2年間。

そのため、カリキュラムは実践的な内容になることが多いです。

プログラマー養成コースがある専門学校や、
ゲームプログラマーを目指しているのであれば、
ゲーム制作学科やゲームクリエイター養成学科がある学校をおすすめします。

③ITスクールに通って学習する

社会人になってからプログラミングを学習されている方の中には、
ITスクールに通っている方も多いようです。

ただし、ITスクールの受講料は通常数十万円・・・

「金銭的負担が大きいなあ・・・」と思われる場合は、
就職支援とセットになっているITスクールも選択肢の1つです。

例えば、ProEngineerは就職支援とセットになっており、
受講料が無料です。

その他、学割制度があるスクールもあります。

◎ITスクールを利用するメリット
・メンターと呼ばれる方が付いてくれて、途中で挫折しないようにアドバイスを貰える
・学習の為の環境やカリキュラムが整っていて、効率よく学習できる
・システム開発の流れを体系立てて学ぶことができる
・経験者に直接質問できる
・受講料を払っているという心理的プレッシャーにより挫折しにくい
・就職支援まで行ってくれるスクールも多い

④独学で学習してプログラマーになる

独学の最大の魅力は、お金がかからないこと。
また、自分の好きな時間、場所で学習できることです。

一方、独学を検討されている方の中には、
「独学だとさぼってしまう」
「自分の学習内容が正しいか間違っている分からない」
「不明点を人に質問できない」
といった不安を抱えてらっしゃる方もいらっしゃるのではないでしょうか?

そういった方には、オンラインでの学習支援サイトのご利用をおすすめします。

最近の学習支援サイトは、動画での講義や課題、質問受付等、
かなり充実しています。

無料のものもありますが有料のものでも月に数千円です。

私が現在働いているWEB制作会社の代表は全くのプログラミング未経験者です。

40半ばを過ぎてから学習支援サイトを使ってRubyを学習していますが、
「課題を出され、実際に手を使ってプログラミングし、
分からないことが出てきたらメンターに質問出来るのでスクールに行く必要が無い」
と言っていました。

⑤「未経験でもOK」の会社へ就職する

プログラマーになる一番の近道は、働きながら実践を通して学ぶことです。
その為、個人的には「未経験でもOK」という求人を探して就職するのが一番いいと思っています。

社会人の方であれば、仕事をしながら転職活動できます。
学生の方であれば、新卒として就職する方法もありますし、
在学中からアルバイトとして働ける企業を探すのもいいです。

ただし、新卒でもない限り、どこの企業も未経験よりも経験者を優先して採用します。
その為、未経験者の場合、就職のハードルが上がるので、その点も理解しておいた方がいいです。

もちろん、探せば「未経験でもOK」という求人はそこそこあります。
例:インディード ※「職種未経験 プログラマー」で検索
Indeed(インディード)未経験OK検索結果
参考:職種未経験 プログラマーの求人 | Indeed (インディード)

実際には、ここに出ている情報が全て正しいとは限らないですが、
まずは、「未経験でもOK」という求人を探すところから始めてみるのも、プログラマーになる方法の一つです。

 

では、「未経験可」であればどんな会社でも良いのでしょうか?

プログラム関連の仕事をする会社を大きく2つに分けると、
IT関連企業と一般企業のIT部門があります。

IT関連企業とは、おもにクライアントから受託したシステムの開発を行う会社です。

一方、一般企業のIT部門とは、社内のシステムや、自社サービス(サイト)の開発、
保守等を主に行います。

私の経験上、今後プログラマーとして成長していきたいのであれば、
IT関連企業をおすすめします。

IT関連企業はクライアンをから請け負ったシステムを開発しますので、
社内のプログラマーがプログラミングします。

一般企業のIT部門の場合、自社では開発をせずに外注している場合もあるからです。

社内の要望をまとめて、外注先のシステム会社へ指示を出すだけですから、
プログラミングスキルが上がりません。

私個人の体験談ですが、
就職して初めて派遣された職場では、主に顧客管理を行うためのシステム開発を行っていました。

その派遣先企業にもIT部門があったのですが、
「顧客管理システムを操作するオペレーターと開発会社との間に入って要件をまとめる、弊社からの納品物のチェックを行う」
などが彼らのおもな仕事でした。

よって彼らは、コードを一切書けません。
システムの設計も行えません。

もちろん、これもとても大変な仕事で、毎日深夜まで作業をされていました。

ただ、プログラマーとして今後生きていくのであれば、
そういった環境ではプログラミングを学ぶことが出来ないため、
避けた方が良いと思います。

おすすめは、慣れるまでは苦労しますが、ゴリゴリとコードを書いているような企業です。

当然といえば当然ですが、
プログラマーとして成長する一番の近道は、まずはコードを書くことです。

企業のIT部門ですと、開発は外部の業者に任せて指示出しがメインになったり、
IT関連企業であっても、コピペコピペでソースを量産しているだけという場合もあります。

会社説明会や面接の際には、
業務内容と開発の進め方はしっかりと質問された方が良いと思います。

また、
学習したい内容が決まっているのであれば、

・どのような言語を使っているのか?
・フレームワークは何を使っているのか?
・どのようなツールを使って開発を行っているのか?
・プログラミング意外にどのような知識が必要か?

などを、具体的に確認しても良いでしょう。

何を勉強すれば良い?

どんな言語を習得すればいい?

プログラマーと言っても、様々な分野があり、
どの分野で開発に携わりたいかによって、勉強する内容も大きく変わってきます。
※開発分野については、「システム開発の分野」のページを参照してください。

例えば、
WEBサイトの開発に興味のある方であれば、PHPやRuby、Python、あとは、JavaScript
スマートフォンアプリの開発に興味のある方であれば、SwiftやKotlin、Java
ゲーム開発に興味のある方であれば、C++、C#、Unity(ユニティー)
といった具合になります。

因みに、
私は新卒で「汎用系」と呼ばれる大型のメインコンピューターを使った開発現場に派遣されましたが、
その世界では、COBOLやVBと呼ばれる言語を使っていました。
また、プログラミング言語だけではなく、
データベース、サーバー、UNIX(Linux)コマンドなど様々な知識が必要になってきます。

WEBサイトの開発に携わりたいのであれば、プログラム言語以外にも、HTMLやCSS、あと、GitやVirtualboxなどの知識も必要になってきます。
また、SEOやWebマーケティング等、プログラミング以外のプラスアルファの知識もあれば、
他のプログラマーと差別化出来るかと思います。

【まとめ】
一口に「プログラミング」と言っても、範囲は広いです。
まずは、「自分はプログラミングの世界のどの分野で活躍したいのか?」を考えてみてください。

活躍したい分野が決まれば、

・どのようなプログラミング言語が必要なのか?
・プログラミング言語以外にも必要な知識や技術は何か?

等を調査すると良いでしょう。

プログラミング言語以外で必要な知識は?

プログラマーを目指す上で必要になるのは、「プログラミングに関する知識」です。

これは当然ですね。

実は直接的な「プログラミングに関する知識」以外にも、
プログラマーとして活躍するには様々な周辺知識が必要になってきます。

どの分野でのプログラマーを目指すのかにもよりますが、
例えば私はWebプログラマーなのですが、

・HTMLやCSS
・Git
・Slackなどのチャットツール

などを習得しました。

さらに、Linuxコマンド(UNIXコマンド)やサーバーに関する知識、SEOに関する知識、
セキュリティに関する知識も習得中です。

また、自分で開発環境を構築する知識も必要で、
私が関わるWEB開発の世界では、XAMPPやMAMPを使って環境構築することがあります。

さらに、Javaを用いた開発現場では、eclipseというツールの設定も必要になります。

どのように勉強すればいい?

プログラミングに関する学習方法には、様々なものがあります。

こちらでは、実際に私が行った学習方法や、
社内スタッフが行った学習方法、
社内スタッフに対して提案するために情報収集した学習方法の中から、
特におすすめしたいのが、以下の4つの学習方法です。

①参考書を購入して学習する
②オンライン学習支援サイトを利用して学習する
③プログラムに関するブログやメディアを読む
④スライドを利用して学習する

①参考書を購入して学習する

今も昔も王道の学習方法と言えば、やはり参考書を使って学習する方法です。

ただし、参考書を利用する場合、読んで終わりだとあまり身に付きません。

ポイントは、参考書を真似てコードを書き、実際に手を動かしながら学習することです。

②オンライン学習支援サイトを利用して学習する

最近は、オンラインでの学習支援サイトが充実してきています。

有料のサイトも多いですが、月々1,000円前後で利用できるサイトが多いです。

ITスクールに通うのに比べるとかなり安く、その値段を払うだけの価値は十分にあるので、
ぜひ利用してみてください。

日本語で利用できるオンライン学習支援サイトの内容や費用等は、以下を参照して下さい。

参考:おすすめのオンライン学習支援サイト

「学習支援サイト」と言っても様々なタイプがあり、大きく分けると、

・動画学習サイト
・テキスト(参考書)を読み進めていくサイト
・実際に手を動かしながら学習するサイト

の3タイプがあります。

オンライン学習サイトの良いところは、
ネットにつながったパソコンやスマホがありさえすれば、
ちょっとした隙間時間を利用して学習できるところです。

通勤(通学)中はスマホを使って音声と動画で学習、
自宅ではパソコンで実際にコードを書きながら学習するといったように、
複数サイトでの学習をおすすめします。

例えば、私の場合、
通勤・通学中の電車の中や会社の昼休みにはUdemyで動画学習をし、
自宅ではpaizaラーニングトップでコードを書きながら学習しています。

【アンケート】実際に利用されているオンライン学習支援サイト

現役プログラマーや元プログラマーの方100名に、実際に利用されている(されていた)
オンラインの学習支援サイトについてのインターネットアンケートを実施しました。

 

 

やはり、人気のサイトはProgate(プロゲート)とドットインストールです。
この2つは、実際にプログラミング初心者の方が学習される際には、非常に役に立つサイトです。

この2つのサイトに次いで人気なのが、Udemy(ユーデミー)とpaiza(パイザ)です。

両サイトは私も実際使ったことがあるのですが、
Udemy(ユーデミー)は低価格(セール中は)で様々な動画を購入でき、質の高い動画が多いです。

また、paiza(パイザ)は、説明動画を見た後実際に手を動かして学習できたり、
さまざまな言語の学習が出来る点でおすすめです。

③プログラムに関するブログやメディアを読む

ネット上には、プログラミングで役に立つ、
様々なメディアやブログがあります。

その中で私が個人的に「役にたったな」「面白かったな」と思ったのは、
以下のサイトです。

Qiita(キータ)
teratail(テラテイル)TechMe
侍エンジニア塾ブログ

中には、誤った情報もあったりして否定的なコメントをされる方も多いですが、
分からないことがあれば実際に質問をすることも出来ます。

こういったサイトとも上手に付き合っていくことで、学習スピードも上がるのでおすすめです。

④スライドを利用して学習する

意外に見落とされがちですが、プログラミング初心者の方にとって役立つのが、スライド(SlideShare)です。
例えば、Pythonで検索すると、大量のスライドが出てきます。
Python on SlideShare

面白いスライドも多く、
隙間時間を使ってスライドに目を通すのも、技術習得に役立ちます。

地方と都会、どっちが良い?

私の体験をもとにした結論から先にお話すると、
都会での就職をおすすめします。

私の場合、大阪の大学院を卒業して、そのまま大阪のシステム会社へ入社しました。

そのシステム会社は汎用系のシステムを開発する会社で、
私は主に設計書の作成やプログラミング、テストを行っていました。

その後東京に出てきてプログラマーして働いていますが、
やはり案件の数や学習機会(セミナーやスクール等)は、
東京の方が多いように思います。

 

都会での就職をためらっていませんか?

地方にお住まいの方が、都会に出て就職されるのをためらわれているケースをよく聞きます。

・自分の生まれ故郷が好き
・都会暮らしが合わない

という方であれば、地方で就職されるのも良いと思いますが、

・金銭面に余裕が無く上京できない
・知り合いのいない都会に一人で出てやっていく自信がない

という理由で都会での就職をあきらめている方も多いのではないでしょうか?

その場合は、シェアハウスへ入居するという選択肢もあります。

シェアハウスであれば、多くの場合一人暮らしよりも家賃を抑えられ、
知らない土地で一人になる寂しさもありません。

シェアハウスにも色々あり、特にこれからプログラマーになることを目指されている方には、
「ITエンジニア向けシェアハウス」というシェアハウスがあります。

【エンジニア向けシェアハウス例】
・「ノマド家
・「ギークハウス
・「_underscore TERRACE

「ITエンジニア向け」といったようなコンセプト型のシェアハウスや、
人気エリアにあるシェアハウスだと、
逆に家賃が高くなる場合もありますのでご注意ください。

もし、「一人暮らしをしたいけれど、上京する資金が無い」という方であれば、
・支度金を出してくれる企業はないか?
・寮を持っている会社はないか?
なども調べてみて、そういった企業へエントリする方法もあります。

他にも、上京時に掛かる費用を抑える方法はいろいろあります。

例えば、
①家電製品は「ジモティー」などで安く手に入れる
②フリーレント付きの賃貸物件を探す ※フリーレントとは、入居1ヶ月~数か月の家賃が無料になるシステム
③家具や家電付きの賃貸物件(マンスリーマンション)を借りる ※金銭的に余裕が出来てから通常の賃貸物件に引っ越す
④敷金、礼金、仲介手数料が無料の物件を探す
⑤引っ越し時の荷物を出来る限り減らして、引っ越し代を安く済ませる
⑥都心ではなく郊外の賃貸物件を借りる
といった方法があります。

私が勤めている会社に、以前京王線の「聖蹟桜ヶ丘」駅(東京都多摩市)から通っていた
スタッフがいました。
全国の賃貸物件を取り扱っている「SUUMO」のデータを参考にすると、
聖蹟桜ヶ丘のワンルームマンションの家賃相場は4.6万円です。
同じ京王線でも、新宿だと8.1万円、人気の笹塚や明大前は、それぞれ7.0万円、6.8万円となっており、
かなりの開きがあります。
※2019年12月時点でのデータです。
【SUUMO】京王線(東京都)の賃貸家賃相場を調べる

「聖蹟桜ヶ丘って相当都心から離れているのでは?」と思われた方もいらっしゃるかもしれませんが、
新宿まで乗り換えなしで30分です。
※23区内でも乗り換えがある駅からだと30分以上かかる場合もあります。

また、電車の本数も、利用者の多い時間帯は1時間に10本以上出ています。
聖蹟桜ヶ丘から新宿 時刻表(京王線)NAVITIME

他のエリアも同様で、少し郊外に出るだけで、家賃が大幅に下がる場合があります。
なおかつ、都心は交通網が発展しているので、中心部まで数十分で移動できることも珍しくありません。

ほんの少しだけ不便にはなりますが、沿線や駅によって家賃にかなりの開きがあるので、
郊外で部屋を借りるという選択もあります。

文系出身でもプログラマーになれる?

結論から先に申し上げると、プログラマーになるのに出身大学が文系であるか理系であるかは関係ないです。

 

 

事実、私の周りにも文系出身者でプログラマーになっている方が複数います。

ただし、単純にコードを書く能力や基礎知識だけを比較すると、
理工系、情報処理系の大学、学部、学科で4年間(もしくは6年間)みっちり勉強してきているプログラマーには勝てません。

私自身は理系出身ですが、ITの世界に入ったのは大学卒業後で、プログラミング経験はゼロでした。
その為、上記のようなことを日々痛感しています。

でも、安心してください。
プログラマーとして生きていく上で、必ずしも大学4年間(もしくは6年間)で学ばなければいけないレベルのコーディング力が必要とは限りません。
それに、プログラマーとして求められる能力はそれだけではないのです。

例えば、
「仕様通りにきっちりと作りこむ」
「不具合の少ないシステムを作成できる(チェックをしっかりと行えること)」
「分かり易い仕様書や設計書を作成できる」
といった能力もプログラマーとして活躍していくには重要になってきます。

また、
プログラマーもクライアントから直接用件を聞いて、それをもとにプログラミングしていく場合があります。
*間に営業がSEをはさまない。

その場合、その要望をきっちりとヒアリングし、
要望通りの形にするという能力(コミュニケーション能力ですね)が求められます。

ドキュメントを作成したり、クライントから要望を聞き取るというところは、
むしろ文系出身者の方が得意なのでは無いでしょうか?

現在30代だけどプログラマーになれる?

「30代からプログラマーになるのは遅すぎるのではないか?」と不安に思っている方もいらっしゃるかと思います。

現在プログラマーとして活躍されている方や、もともとプログラマーだった方100名に、インターネットを使ってアンケートを取りました。

アンケートによると、
22歳や23歳でプログラマーになった方が多いようです。
これは、大学を卒業して就職するタイミングでプログラマーになった方が多いからでしょう。

20代後半(27歳以上)になってくると、数が減ってきますが、
40歳以上(40歳と42歳)でプログラマーになられた方もいらっしゃいました。

【アンケート】プログラマーになるのに年齢は関係あると思うか?

さらに、現役・元プログラマーの方へ「プログラマーになるのに年齢は関係あると思うか?」というテーマで
アンケートを実施しました。




概ね予測通りの結果となりましたが、意外だったのは「30代後半からでもプログラマーになれるか?」という問いに対し、
半数以上が「はい」と答えていることです。

【アンケート】採用時にプログラマーの年齢は気になるか?

次は、プログラマーを採用したことがある採用担当者へアンケートを実施しました。




「未経験でも採用したい」が半数以上いる一方、大多数の採用担当者が「未経験の場合、年齢を気にする」と回答。
ただ、「気になる程度」についてはまちまちでした。

プログラマーの具体的な仕事内容は?

SEと言われる方が社内にいる場合、
プログラマーの仕事はプログラミングとテストのみとなります。

が、SEがいるのは大手や一部の中小企業のみです。

通常は、本来SEが行うような、
・設定作業(設計書の作成含む)
・テスト仕様書の作成
・ドキュメント類の確認
・スケジュール管理
などをプログラマーが行うケースが多いです。

さらに立場が変わり、PL(プロジェクリーダー)になると、
・プロジェクト全体のスケジュール管理
・工数計算
・要件定義(お客さんから要望を聞き出して、仕様をまとめる仕事)
・顧客折衝
・人員の確保
・チームメンバーのマネージメント
といったことも仕事に加わります。

残業や休日出勤が多いのでは?

時期や会社にもよりますので一概には「多い」「少ない」と言えませんが、私自身の経験を踏まえたお話をします。

納品前は当然忙しくなる

まず、受注請負型や客先常駐型の開発会社であれば、
システムの納品前は非常に忙しくなることが多いです。

クライアントからの追加要望や、開発途中での仕様変更、開発段階でのバグ潰し、
協力会社のスケジュール遅れ等、その他諸々な理由でスケジュールが大きくずれ込み、
納品が近づくに連れ慌ただしくなります。

こちらは、現役・元プログラマーに対して、
インターネットを使って行った残業時間に関するアンケートの結果です。

納期の前日でも7時間以上残業されている方もいれば、
残業が無い、発生しても1、2時間程度という方もいらっしゃいました。

納期前日はバタバタすることも多く、通常ある程度残業が発生するのですが、
残業がほとんどないというのは素晴らしいです。

因みに、アンケートにお答え頂いた方の残業時間の平均は約3.6時間でした。

翌日の納品をスムーズに行うための事前準備なども必要になりますので、
前日は3~4時間程度の残業が発生することは覚悟しておいた方がいいです。

 

下記は、
「納品1週間前に、どれくらい残業時間が発生したか」という質問に対する回答結果を棒グラフにしたものです。

中には、「50時間以上」も残業が発生している方もいらっしゃいましたが、
20時間以上~25時間未満」という残業時間の方が一番多かったです。

 

次に、納品前に休日出勤をどれくらいしているかについてアンケートを取りました。

解答のあった100人中、85人が「休日出勤あり」と答えています。

 

さらに、その85人の方に「休日出勤の発生する曜日」について質問した結果がこちらです。

土曜日、日曜日の両方」出勤されている方が、半数以上にあたる43人もいらっしゃいました。

納期に間に合わないと、最悪クライアントから損害賠償請求といったこともあります。
そのため、納品前の残業と休日出勤をすることが多いようです。

ちなみに、私自身も、以前働いていた会社では、休日出勤がありました。
また、土曜日、日曜日に続けて休日出勤した経験もありますが、
1週間休みなしで出勤するのは精神的にとても大変でした。

休日出勤が発生した場合、納品後にきっちりと代休を取らせてくれる会社もありますので、
就職活動時には、そういった情報も収集できるといいですね。

 

次に、自社システムの開発を行っている会社ですが、
こちらは、納期なども比較的緩い場合が多いです。

自社システムは、納期より品質を重視することが多いからだと思われます。

残業も休日出勤も当たり前な会社ってあるの?

私の経験でお話すると、以前働いていた会社(7年ほど前)は、

・休日出勤は当たり前
・平日も終電ギリギリまで仕事をして、帰ってからもその日のノルマまでは仕事をさせられる
・2、3時間ごとにどこまで進んだかの確認に来て、少しでも遅れていると、「どうやって遅れを取り戻すのか?」というプレッシャーを掛けてくる

ということが当たり前でした。

私は入社数日で辞めることを上司に告げ、実際に数か月で辞めました。
他のメンバーも数か月で辞めていきました。

7年くらい前はそのような会社も多々あったかと思いますが、
今の時代はそのような企業へは人が定着しないので少なくなっていると思います。

実際、同じようにITの世界で働く私の友人に話を聞いても、
「今の時代は昔の様に働かせていると問題なので、業界全体もかなり働きやすくなった」
と言っていました。

残業・休日出勤に関するアンケート

残業・休日出勤に関するアンケートを実施した際に、現役プログラマーの方から様々な意見も頂きました。

その一部も紹介しておきます。

Aさん

無理な納期を設定される。そもそも営業が工区を甘く身過ぎているので、もっと現場のことを考えてほしい。

Bさん

基本的には、対象プロジェクトの重要性や、外部要因などにより残業・休日出勤がある程度発生してしまうケースはあると思います
しかしながら、多くは事前の調整などで回避できると考えており、マネージメントスキルの平均的な向上が必要かと思います。

Cさん

プログラマーなど専門職においては、納期を死守することは重要であり、バグ、不具合の対応をするにあたり、残業や休日出勤をせざるを得ない職種だと思います。ただ、それを踏まえたスケジューリングをしていれば休日出勤や残業は減らすことが可能であると思います。しかしながら現実的にイレギュラーな事案が発生しやすい職種であるため、いくら余裕をもってスケジューリングをしても避けられない働き方をしなければならないことがあると思います。専門的な職種の場合、致し方ない部分があるのだろうと感じます。個人でストレスコントロールをしながら、鬱などの精神疾患や体調管理をしなければならないとてもジレンマのある職種だと思います。なるべく余裕をもって仕事ができるのが一番だと思いますしそうなればよいなと感じます。。

Dさん

仕様が明確でなかったり、ウォーターフォールで作っているのに終盤で仕様変更をしてくるなど、上流工程に問題が多いと思います。これは開発者サイドの問題だけではなく、クライアントのITリテラシーの低さも影響していると思います。
日本ではいまだにソフトは安く作れるとか簡単に作れると思っている人が年配を中心に多くいます。
そして営業職はそちらにあわせ無理難題を押し付けてきます。
そのような日本社会全体のITに関するリテラシーの低さが根底にあると思います。
また、中抜きをしている会社がなくなれば辛くても高い給料のために頑張る人は増えると思います。
※ウォーターフォールとは開発手法の一つで、上流工程(要件定義や基本設計など)から順番に開発を進めていく手法です。

Eさん

基本的に残業しないように計画、確認をしており、万が一に備えて予備の時間もいただいているため、ほとんど残業はしません。
もし発生した場合の原因としましては急な仕様変更や別作業の中断などにより計画通りにいかない場合が多いです。

Fさん

残業が発生し易い業種であり、ある程度仕方の無い事は認めるが、納得出来る額の残業代はしっかり払って欲しい。

Gさん

設計ミスが発生したり、ソースコードを間違えて書いてしまうプログラマが存在することは避けられないため、どうしても残業や休日出勤が発生してしまう。
納期前には厳密なチェックを行うため残業は発生します。

Hさん

プログラマーに残業や休日出勤が多くなるほとんどの原因は、設計などの上流工程にある。事実、上流工程がしっかりしたプロジェクトでは、プログラマーに残業はほとんど発生しなかった。

Iさん

不慣れな時には、残業が発生することもあると思います。
それでも、スキルアップやスケジュールに予備日を含めるなど工夫して、残業がゼロに近づくように心がけるべきだと思います。

などなど。。。

まとめますと、
プログラマーという職業柄、「残業や休日出勤が発生することは仕方がない」と考えている方が多くいらっしゃいました。

私自身もその考え方に近く、プログラマーを目指している方は、そこはある程度覚悟する必要があるかな、と個人的には思います。

また、残業や休日出勤が発生する原因として、
上流工程の問題」や「急な仕様変更」を上げている方が多かったようです。

確かに上流工程で問題が発生すると、コーディング期間が短くなり、最終的にプログラマーしわ寄せがくることもよくあります。

さらに、急な仕様変更を経験したことも多々あります。
開発開始後にお客様の事情が変わることもよくあり仕方のないことですが、
極力、会社として「仕様確定後の仕様変更は原則、不可」「やむおえず変更する場合は納期も延ばす」などの対応も必要になってきますね。

プログラマーの収入ってどれくらい?

会社の規模や年齢、その他さまざまな条件で異なりますが、
プログラマーの平均年収と言語別の年収について紹介します。

 

プログラマーの平均年収は約418万円

平均年収については、厚生労働省が出している「賃金構造基本統計調査」のデータで見ていきます。
賃金構造基本統計調査 平成30年賃金構造基本統計調査 一般労働者 職種 | ファイル | 統計データを探す | 政府統計の総合窓口

「企業規模10人以上」の場合で、
平均年齢32.3歳、平均勤続年数6.3年、平均労働時間162時間/月となっており、
月額給与が29万8,500円年間賞与が60万1,200円となっています。
※2019年10月16日時点で公開されているデータです。

合計すると、年収は418万3,200円となります。

つまり、プログラマーの平均年収は、約418万円くらいということになります。

実際には、10人未満の会社も存在しますし、フリーランスのプログラマーも存在します。
この数字が正確という訳ではないですが、
年収の目安になると思います。

言語別年収の中央値

言語別の平均年収ではないですが、
「中央値」というものを、ビズリーチ社が運営している求人検索エンジン「スタンバイ」が出しています。
プログラミング言語別年収中央値を発表、求人検索エンジン「スタンバイ」調べ

使用する言語によっても年収が大きく変わってくるので、
収入面を重視される方は、こちらの情報を元に「何を学ぶのか?」を決めるのも一つの手だと思います。

1位「Go」、2位「Scala」、3位「Python」と、やはり流行りの言語が上位に来ています。

私は、様々な開発で使用されている「Python」を推しているのですが、
「Go」や「Scala」も人気の言語です。

統計処理でしか使われることが無い「R」が上位に来ているのも面白いです。
機械学習で注目されるようになったことが理由だと考えられます。

その他には、スマートフォンやタブレットのアプリ開発で使用される「Kotlin」や「Swift」が上位に来ているのは、
アプリ開発の現場で必要とされていることだと思います。

さらに、個人的には「Perl」が9位に入っていることも驚きでした。
かなり前から、「死に言語」などいう言われ方をしているのですが、
まだまだ「Perl」で動作しているシステムが多く存在しているということかもしれないですね。
もしくは、「Perl」を使えるプログラマーが減って、逆に重宝されるようになったのかもしれないです。

それと、このランキングに「PHP」と「Java」入っていないことも注目です。
PHPに関しては求人数が非常に多い言語ですが、
多言語と比べると、使える人材が多いので、相対的に価値も下がっているのだと思います。

また、「Java」に関しても、使える人材はそこそこいること、
Androidアプリ開発では、「Java」ではなく「Kotlin」を採用する企業が増えてきているということかもしれないですね。

プログラマーの将来性について

プログラマーは不要になる?

プログラマーは、「いずれいらなくなる!」と言われています。
特に、AIというキーワードが出てきてからは、その議論が加速してきたように思います。

私自身も、プログラマーの大半が不要になる時代が来ると思っています。

例えば、私自身の話しをすると、
私はWEBの世界に関わっており、サーバーサイドプログラマーと呼ばれる人間です。

サーバーサイドプログラマーとは、サーバーサイドで実行される処理を実装するプログラマーです。
逆に、フロントサイド(例えば、ブラウザのような画面上)で実行される処理を実装するのは、フロントサイドプログラマーと言います。

で、サーバーサイドで実装される主な処理の一つがデータベースの操作です。
※もちろん、他にも実装すべき処理は多々あります。

例えば、
データベースへデータを登録したり、
データベースからデータを取得して、そのデータをフロントサイドのプログラムに渡す、
といった処理を実装します。

ただ、データベースを使わずにデータの操作を行えるFirebaseというプラットフォームが、Googleにより開発されています。
このFirebaseを利用すれば、データベースを用意する必要が無く、
データの保存や呼び出しといった処理を簡単に実装できるようになっています。

つまり、データベースを使用する必要がなくなるので、
Firebaseを使用することで、サーバーサイドプログラマーがいらなくなってしまいます。
フロントサイドプログラマーのみでシステムの構築を行えるようになってしまいます。

もちろん、実際には、まだそこまで普及している訳ではなく、
すぐにサーバーサイドプログラマーが不要になるということはないです。
まだまだ、多くのサーバーサイドプログラマーが必要です。

ただ、同様のサービスをGoogle以外も開発していますし、今後もっと増えていくと思います。
そうなると、いずれサーバーサイドプログラマーの仕事は減っていくことになります。

ただし、私は「完全にプログラマーが不要になる!」ということは無いと思っています。
不要になるのは、あくまで仕様書に沿ってコードを書くだけのプログラマーです。

上記では、サーバーサイドプログラマーを例にしましたが、どの分野でも同じだと思います。
今ある技術よりも簡単に使えるものが必ず出てきます。

そうなった場合に、ただコードを書けるだけのプログラマーは淘汰されていくと思います。

また冒頭でも触れたAIの技術が発展すれば、ロボットが勝手にコードを書いてくれる時代もきます。
そうなった時に、高い人件費を払って人間を雇うよりも、ロボットを導入する企業も増えてきます。

そうなった場合に、淘汰されるプログラマーにならないように、しっかりとプランを立てて学習することも重要です。

不要なプログラマーにならないために行う事

プログラマーとして生き残っていくためには、
・AIやFirebaseのようなプラットフォームを開発する側のプログラマーになる
・プログラムコードを書くだけでなく、他の能力を身につける
といった選択肢があります。

AIやFirebaseのようなプラットフォームを開発する側のプログラマーになる

FirebaseやAIなどを開発する側に回れば、まず、仕事が無くなることはありません。

もちろん、この先、別の新しい技術が出てきて、
これらの技術に取って代わる可能性は十分にあります。

が、その時は、その新しい技術を作る側に回れば、
プログラマーとして生き残っていけます。

プログラムコードを書くだけでなく、他の能力を身につける

「他の能力を身につける」というのは、
例えば、顧客折衝から設計書の作成、プログラミング、テストまで全て行えるプログラマーになれれば、完璧だと思います。

もちろん、顧客折衝までは出来ないと言われる方も多いと思います。
それであれば、別の能力でもいいと思います。

例えば、SEOやマーケティングの知識を身につけるというのでもいいです。

データベース自体に精通したプログラマーになる、というのもいいと思います。

Firebaseも裏ではGoogleのエンジニアがデータベースを使用していますし、
それに、データベースのチューニングまで行える人材は貴重です。
※データベースの能力を最大限に生かすためには、チューニングが非常に重要です。

他には、セキュリティーの分野にも精通したプログラマーになるのもおすすめです。

何か特別な武器を持っておくというのは、これからの時代、とても重要になってきます。

プログラマーのキャリアアップは?

プログラマーのキャリアとしては、以下のようなパターンがあります。

・プログラマーとしてプログラミングを一生続けていく
・PL、PMとして案件を管理する側に回る

プログラマーとしてプログラミングを一生続けていく

プログラミングが好きでプログラマーになられた方や、
人とかかわるのが苦手という方は、一生プログラマーとして続けていく道を選ばれると思います。

ようは、プログラミングのみを続けていきたいという方になります。

私自身も、こちらのキャリアを歩んでいる人間になります。

ただ、コードを書くだけのプログラマーであれば、いずれ淘汰されてしまいます。

プログラマーを続けながら、プログラミング以外の知識や技術も学び続けていかないと、
将来性のない選択肢になってしまうので、注意が必要です。

また、プログラマーといっても、一生会社員を続けていく道フリーランスとして生きていく道があります。

会社員としてプログラマーを続ける

会社員としてプログラマーを続ける場合、
当然日々の生活は安定します。

が、会社によっては、ある程度キャリアが上がってきたら
SEやPL、マネジメントを任さられ、プログラミングだけをやっておけば良い、
という環境ではなくなる場合もあるようです。

フリーランスとして生きていく

時間や場所の制約がなく、自由にプログラミングの仕事が出来るのが
フリーランスの良いところです。

また、ある程度稼げるようになれば、やりたくない仕事を断り、
好きな仕事だけできるのもフリーランスの魅力の1つでしょう。

ただし、仕事を取ることができない場合、それが収入の減少へ直結しますし、
今は仕事が取れていたとしても、将来もそうである保証はありません。

納税、年金、保険といった、
今までは会社が行ってくれていた事務手続きを、自身で行わなければならないといった煩わしさもあります。

【注意点】

フリーランスとして特定の会社に常駐して仕事をされている方もいらっしゃいますが、
こういった方は他の会社員の方と同様、同じ時間に会社へ出社し働き、働く時間と場所が制限されています。

スポットで請負っているフリーランスと異なり収入面は安定していますが、
自由度という観点では一般の会社員と変わりありません。

プロジェクトリーダーやマネージャーになる

プログラマーとして経験を積んだ後に、
プロジェクトリーダー(PL)やプロジェクトマネージャー(PM)になるという道もあります。

プロジェクトリーダー(PL)やプロジェクトマネージャー(PM)とは、
前述の通り案件の管理や進行を行う人たちで、
具体的には、スケジュール管理や工数計算、顧客折衝、人材管理等を行います。

「ずーっとプログラミングをしていたい」

「人の管理が苦手」
という方は向いていないかもしれませんが、
会社によっては半ば決まったキャリアパスになっていることもあります。

正社員とフリーランスの収入について

「フリーランスって自由だし、会社員よりも稼げるよね。」と思っている方が多いのではないでしょうか?

派遣社員と違って中抜きもないですし、安定して案件を獲得できれば高収入を得ることも可能です。

ただし、当然すべてのフリーランスが高収入を得ているわけではありません。

独立行政法人情報処理推進機構(IPA)によりまとめられているIT人材白書「多様な文化へ踏み出す覚悟 ~デジタルトランスフォーメーションへの対応を急げ~」によると、仮に700万円以上収入を得ているエンジニアを高収入であると定義すると、
30代以下の若い世代であれば、フリーランスの方がIT企業IT技術者よりも高収入者が多い一方、
収入が300万円以下のフリーランスも全体の35.3%存在しています。

40代、50代になっても、300万円以下のフリーランスの割合は大きく変わらず、
さらに、50代に以上になると1,000万円以上の所得者も大きく減っています。

逆に、
IT企業IT技術者の場合、年齢が上がるにつれ、300万円以下の割合が5%以下にまで減り、
700万円以上の高収入者の割合が大幅に増えます。

IPA「図表2-2-11 リーランスの年収(上)とIT企業IT技術者の年収(下)【年代別】」
<出典>独立行政法人情報処理推進機構(IPA) IT人材白書 https://www.ipa.go.jp/files/000052198.pdf

考えられる理由としては、

・日本の会社は年功序列であるため、会社員は年齢が上がるにつれてある程度収入も増える
・フリーランスで稼げるのは若い間だけ
・一部の優秀なフリーランスは稼げるが、それ以外のフリーランスは大きく稼ぐことができない

が考えられます。

また、フリーランスには出世や年功序列といった考え方が無いので、
長く続けても能力以上の収入を得ることが出来ず、
一定の収入のところに留まり続けるといったところですかね?

もちろん、会社員からフリーランスになることで収入がアップした方もいますし、
会社員よりも稼いでいるフリーランスも多いと思います。

ただ、やはり、この図を見る限りは、
収入面でフリーランスが有利になるのは30代以下若い世代だけと言えます。