近年、注目を浴びているITエンジニアという仕事ですが、中でもプログラマー(PG)になるためのスクールやネット学習サイトが急増し、未経験からプログラマーになれるといった見出しを目にする機会が増えたと感じる方も多いのではないでしょうか。
以前はプログラマーと聞くと、ブラック企業や3Kといったネガティブなイメージがあった人も多いかも知れません。
現状はブラッ企業よりクホワイト企業の方が圧倒的に多くなりました。これには大きな要因として、ITエンジニアの深刻な人手不足が挙げられます。
IT技術の発展・進化により、多くの業務にアプリケーションの使用が一般的になり、ITエンジニアがシステム構築をしなければ業務が立ち行かない情勢が確立されていると言えるでしょう。
アプリケーションやシステムをプログラミング言語を使用してコーディングしているのがプログラマーです。
DX推進などデジタル技術の需要が増し、職種としても需要が拡大しているプログラマーですが、急激にプログラマー人材が増えているといったことはなく、需要ほど供給が追いつかないのが現状。
本記事ではプログラマー(PG)とはどういった職種なのか、仕事内容や、職種によって業務内容にも違いますからどのような職種があるのか、混同されがちなシステムエンジニア(SE)との違いなどにも触れてまいります。
プログラマーについてご理解いただき、今後自分の身の振り方としてありうる選択肢かどうか判断いただける内容となっておりますので、ぜひお目通しください。
Contents
そもそもプログラマー(PG)とは?基本的な仕事内容について
システム構築の現場において、プログラマーは顧客に求められるシステムを構築するのに必要なプログラムを、上級職が作成した仕様書通りにプログラミング言語を使いコーディングし、仕様通りの動きをしているかテストをして確認するのが主な業務内容となります。
具体的には、詳細仕様書(プログラム設計書)と称される1つ1つのプログラムの仕組みを記した仕様書をもとにコーディングし、コンパイルし実際にプログラムとして動作するモジュールを作成します。
コーディングが正常にできたところで、仕様書通りの動きができているか確認するために必要なテストケースを作成し、テストに必要なデータを準備しモジュールを動かして想定通りの動きをしているか単体テストを行うのです。
システムは1つのプログラムだけで完結するものではありません。
大規模なシステム開発案件では数百単位のプログラムが存在し、それぞれが連携することで1つのシステムを構成しています。
プログラマーはこの1つ1つのプログラムを作成し、それぞれの動きを担保するためのテストを行う職種です。
プログラマー(PG)とシステムエンジニア(SE)の違いとは?
プログラマーがコーディングする際に見るプログラム設計書を作成するのがシステムエンジニアです。
システムエンジニアは1つのシステムを構築するために、必要な機能や仕組みを見極め、機能ごとにプログラムとして切り分けたりすることも行います。
切り分ける際、どのようにプログラム間の連携をとるかということも考えなくてはなりません。
またプログラマーが行ったテスト結果が本当に想定通りの結果となっているか確認し、プログラム間の連携が取れていることを確かめるため、いくつかのプログラムをまとめて動かすシステムテストも行います。
いくつかのプログラムの塊で問題ない結果が得られれば、その範囲を更に広げ、全体を動かしたときにも問題ないか、最終的にはシステム全体を通したテストの実施も重要な業務です。
また仕様を確定させるためには顧客との打合せを行い、どのようなシステムが求められているのか要望をヒアリングし、要件定義書を作成します。
要件定義が固まったところで、システム設計書を作成し、プログラム単体に切り分け詳細設計書に落とし込んでいくという作業も行います。
プログラマーにも種類がある
詳細は別記事にて解説していますが、ここではプログラマーの種類について簡単に解説させていただきます。
プログラマーはどのようなシステム開発を行うかで以下の種類(職種)に分類されます。
- WEB系プログラマー
- アプリケーションプログラマー
- ゲームプログラマー
- 組み込み系プログラマー
- 汎用系プログラマー
- オープン系プログラマー
- 通信系プログラマー
上記の分類で大きく異なるのは、必要になるスキル・知識のほかに業務に仕様するプログラミング言語です。
特に専門的な知識やスキルが必要になるのは、ソフトだけでなくハード面のスキルも求められる組み込み系・ゲームプログラマー。
開発現場で特にセキュリティが重視されるため、様々な制約を受けがちなのは顧客情報を扱うことの多い汎用系ですが、近年ではWEB系プログラマーも近しい状況に置かれる場合もあります。
また、プログラマーの種類について、更に詳しく知りたい場合は「プログラマーにも種類がある!使用言語や難易度など徹底紹介」をご覧ください。
プログラマーのやりがいと難しさとは
プログラマーとして従事して、一番やりがいを感じられるシーンは「自分で作ったプログラムがきちんと動いている」ということを認識できたときではないでしょうか。
プログラム単体でなく、例えば自分が普段使うこともあるWEBサービスのページで実体験することもあります。
また絶対数が足りていない為、職にあぶれるということもそう多くはありませんし、スキルを磨けば年収も比例して高くなっていくことでやりがいを感じることもあるでしょう。
ただしプログラマーとして一生を終えるエンジニアは多くはありません。
一般的な流れとしてプログラマーとして3~5年経験を積み、システムエンジニアとしてランクアップするケースがもっとも多いでしょう。
また、難しさとしては年々増加するプログラム言語の存在や、システム開発技術の進歩が挙げられます。
長く現場で活躍しようと思うと、スキルアップはもちろんですが、新しくニーズのある言語の習得が必須になるため、習得しきったという状況になれることが少ないのです。
上記とは別に厳しさを感じるシーンとして、常に納期に追われてしまうということもあります。
納期が迫っているのに結果が出せていない、となると納期に間に合わせるための残業が発生することもあります。
想定外のトラブルやエラーで、急遽対応が必要になることもあるため、時間的・体力的に厳しさを感じることもあるでしょう。
プログラマーに必要なスキル・資格とは
プログラマーに必要なスキルは、プログラミング言語の理解と、アルゴリズムの理解です。
どのような開発に携わりたいかで習得すべき言語は異なります。
全く同じ仕様書で、仕様通りの動きをするプログラムを作成する際、プログラマーのセンスにより効率よく動くプログラムを組めるかどうか、見やすく整理されたプログラムがかけるかには違いがでます。
単純にコーディングといっても正解は一つではなく、理解度の深さによって、動きが鈍いプログラムができてしまうこともあるのです。
またこうしたスキルとは別に、必要ないと考える方も多いようですが、コミュニケーションスキルも大切な要素。
プログラム間の連携をスムーズにする為、チームメンバーとのやり取りは欠かせません。
プログラマーに必要な資格は、実際のところ絶対にこれがないと!というものはありません。
ただし良い条件で就職・転職しようと思うと資格が必要になることもあります。
そうした場合におすすめなのは、基本情報技術者試験・情報処理技術者能力検定です。
プログラマーに向いている人の性格的特徴
プログラマーに向いている人の特長をリストアップしました。
- 面倒だと思ったとき楽をするための方法を考えるのが好き/得意である
- 自分の業務に責任を持って遂行したいという熱意がある
- モノづくりが好き
- コツコツ作業が好き
- 人と会話するのが苦にならない
- 協力して何かをするのが楽しい
面倒だ、と感じたときに嫌になってしまう人や、コツコツとものを作り上げていくのが好きではないという方にはプログラマーは辛い職種でしょう。
またワンマンプレーだと思われがちですが、人と連携してシステムを作り上げていくため、一匹狼タイプの方にも辛いかも知れません。
一人で黙々と作業をしなければならない時間も多い反面、何か起こったときには人との連携が欠かせない職種のため、チームプレーが好き、という方には喜びも大きく感じられるでしょう。
また、プログラマーに向いている人の特徴ついて、更に詳しく知りたい場合は「プログラマーに向いている人の特徴とは?向いていない人は諦めるべきなのか?」をご覧ください。
プログラマーの平均年収・キャリアパス・最新転職事情
プログラマーになるかどうか、なった後のキャリアパスや年収が気になる方もいらっしゃるでしょう。
続けて平均年収・キャリアパス、最新転職事情について解説させていただきます。
プログラマーの平均年収
プログラマーの平均年収は430万円となっています。
参考までにお伝えすると、これはあくまで平均値であり、筆者がこれまで現場で出会ったプログラマー職の方の中には、年収300万円(経験5年以上)という方もいますし、逆にプログラマー職を突き詰め、年収1,000万円という方もいました。
所属する企業によって年収帯は大きく変わりますから、より高い年収を得るために転職するプログラマーも多いのです。
プログラマーのキャリアパス(入社からの流れ)
入社したばかりでいきなりコーディングに携わることは少ないです。
まずは単体テストをしながら、先人の書いたコードを見て学ぶことから始まります。
そうしてだんだんコーディングを任せてもらいつつ、一人でテストもできるようになり、経験を積んだ3年目から5年目でプログラミングだけでなく、現場によっては詳細設計書を作成する場合もあります。
そうして更に経験を積んで、システムエンジニアとして、機能単位ではなくいくつかの機能のまとまり=システムの設計書を作成するようになっていきます。
更に上級職として上を目指すと、システムエンジニアの先にあるチームリーダー、プロジェクトリーダー(PL)・プロジェクトマネージャー(PM)があります。
これだけでなく、近年では更に専門職エンジニアを目指すキャリアパスもあります。
プログラマーの最新転職事情は?
プログラマーとして転職する際、現場での伝手や引き抜きで転職する方は多いです。
その他、転職エージェントサービスを利用し高年収・好条件の転職を叶えるケースも多くあります。
自分で求人を見て転職するケースももちろんありますが、自分で条件交渉などもしなくてはならず好条件を引き出すのが難しいこともあり、転職エージェントサービスの利用が増えているのでしょう。
未経験からプログラマーになれるのか?
結論から言えば、未経験からプログラマーになることはできます。
ただし相応の学歴(エンジニア育成のための大学・専門学校卒業など)がなく、全くの未経験、プログラミング知識が無いとなると希望通りの就職は難しいと言わざるを得ません。
そのような場合、ご自身でプログラミングスキルを身につけ、実績として提示できるようなポートフォリオを準備するなども必要になるでしょう。
そうしたこともなく全く未経験でプログラマーとなると、現場に出て机上の知識だけでは厳しかったことを痛感せざるを得なくなり、退職を考えるほどに追い詰められるケースも見てきました。
未経験でもプログラマーにはなれますが、現場にでて辛い思いをする事が増えてしまいますから、おすすめとしては、何らかの形でプログラミングができるよう習得しアピールできる材料をもっておくと良いでしょう。
まとめ
今後日本では「2025年の崖」が迫っていると言われています。これは経産省の提唱にある、2030年のIT人材不足(最大79万人)が起因しており、この2025年の崖をのりこえられなければ、経済損失が年間最大で12兆年にもなると予測されているのです。
小学校や中学校でもプログラミング教育が導入されるほど、国としてもIT人材不足に危機感を持っている現状を鑑みると、これからプログラマーを目指そうという方にとっては有利な市場であると言えます。
現状深刻な人手不足が課題のIT企業としては、福利厚生の整備や、給与待遇改善、研修制度の充実とサポート体制が充実した求人が急増しています。
近い将来、小学生や中学生でプログラミングを学習した子どもたちが社会にでることで、よりプログラミングは世の中に浸透した技術となるでしょう。
将来に渡り需要が約束されているとも言える職種のプログラマー、選択肢の1つとして不足は無いのではないでしょうか。