デスクワーク
プログラマー
別名・呼称: コーダー(プログラミング), コンピュータゲームプログラマー, ソフトウェアプログラマー, Webアプリケーションプログラマー, Webプログラマー
適性レーダーチャート
PC作業・身体負荷・顧客接触・正社員比率・報酬・専門性のバランス
・各軸は公的データに基づく相対スケール(外側ほど高い傾向)で描画しています。
・別の職種を選択すると、オレンジ色のポリゴンが重ねて表示され適性の差が一目でわかります。
レーダーチャート項目の詳細数値・全職種中順位
| 項目名 | この職種の値 | 518職種中の順位 |
|---|---|---|
| パソコン作業 | 3.88 / 5.0 | 518職種中 11位 |
| 体を動かす | 1.75 / 5.0 | 518職種中 443位 |
| 外部顧客との接触 | 2.75 / 5.0 | 518職種中 377位 |
| 正社員比率 | 53.3% | 518職種中 316位 |
| 報酬・収入スコア | 2.84 / 5.0 | 518職種中 209位 |
| 専門性 | 3.46 / 5.0 | 518職種中 282位 |
主な関連免許・資格
基本情報技術者
仕事の概要
システム開発において、システムエンジニア(SE)が作成した詳細設計に基づきプログラムを作成する。
システム開発の流れをみていくと、SEが顧客の要望をヒアリングし要件定義を行い、この要件定義に基づいて基本設計を行う。この基本設計を基に細部に至るまで処理方法を確定する詳細設計を行う。
この詳細設計に基づきプログラマーがコーディングし、プログラムを作成する。また、プログラマーは出来上がったプログラムを個々に動作させて確認を行う単体テストを行う。複数のプログラムを組み合わせて行う結合テスト、そしてシステムとしての動きを見る総合テストをSEとともに行うこともある。バグが見つかればそれを解析の上、修正する(「デバッグ」)。担当したプログラムが出来上ると、今後の保守に必要なドキュメント(開発したプログラムの説明、テスト結果等)を作成するのもプログラマーの仕事である。基本的にはSEの仕事は基本設計や詳細設計と結合テストや受け入れテスト、また納品後のアフターケアであり、プログラマーはコーディングし、プログラムの単体テストを行い、担当したプログラムを完成させる。
アジャイル開発ではプロトタイピングを繰り返し、最初は荒い全体の開発、その中での個別機能の開発、さらにその中の開発という具合に、徐々に詳細な開発をプロトタイプとして行っていく。このプロトタイプ作成の中でプログラマーがソフトウェア作成を担当することもある。
プログラムには様々な種類がある。経理等各種業務用のソフトウェア、ショッピングサイトなどWeb用のプログラム、家電製品や電子機器などを制御するプログラム、PC向けソフトウェア、スマートフォン向けアプリ、ゲームのプログラム、さらに、通信やオンラインを制御するプログラム、また、大型汎用計算機のプログラムなど、様々である。開発言語や開発環境はそれぞれ異なり、プログラマーは得意とする分野のソフトウェアを作成する。
また、今日、多くの情報システムが稼働しており、それら既存のシステムを修正し、変化に対応したり、機能を追加する開発も多く、このような開発に関わるプログラマーもかなりいる。
開発するシステムの規模は様々であり、小さいものは1人で作成したり、大規模なシステムでは数百人のプログラマーがチームに分かれ、開発する場合もある。
Web画面の開発ではデザインツールから自動的にHTMLなどが作られ、プログラミングの必要がなくなっている。また、プログラムのツール、ライブラリー、モジュール等が整備され、SEがプログラム作成をプログラマーに依頼しなくても、システム開発がかなりの程度できるようになっている。
しかしながら、ツール等で作られたプログラムは整理されておらず、その後の修正や機能追加が難しい。プログラマーには効率的で整理された分りやすいプログラムを作成する、職人的な仕事が期待されている。また、プログラミングのエキスパートとして、ツール等ではできないクリエイティブなプログラムを作成したり、ブロックチェーン、AIなど特定分野に特化した専門性の高いプログラムを作る場合もある。
◇ よく使う道具、機材、情報技術等
OS(オペレーションシステム:Linux、CentOS、ubuntu)、統合開発環境、プログラミング言語(C言語、Java、Python、Ruby、HTML等)、デザインツール(Figma)、データベース(MySQL、Oracle、MongoDB等)、パソコン
この職業に就くまで(働いている人の回答)
厚生労働省 job tag の調査データに基づき、実際に働いている就業者の回答割合を表示しています。
学歴
高卒未満
0.0%
高卒
8.3%
専門学校卒
25.0%
短大卒
4.2%
高専卒
10.4%
大卒
64.6%
修士課程卒(修士と同等の専門職学位を含む)
4.2%
博士課程卒
2.1%
わからない
12.5%
入職前の訓練期間(学歴を除く)
この職業で働いている人が必要と考える、入職前の訓練等の期間(学歴を除く)
特に必要ない:31.3%
特に必要ない
31.3%
1ヶ月以下
2.1%
1ヶ月超~6ヶ月以下
25.0%
6ヶ月超~1年以下
8.3%
1年超~2年以下
4.2%
2年超~3年以下
8.3%
3年超~5年以下
2.1%
5年超~10年以下
2.1%
10年超
0.0%
わからない
16.7%
入職前の実務経験
この職業で働いている人が必要と考える、入職前の実務経験の期間
特に必要ない:37.5%
特に必要ない
37.5%
1ヶ月以下
2.1%
1ヶ月超~6ヶ月以下
12.5%
6ヶ月超~1年以下
6.3%
1年超~2年以下
6.3%
2年超~3年以下
10.4%
3年超~5年以下
4.2%
5年超~10年以下
2.1%
10年超
0.0%
わからない
18.8%
入職後に一人前になるまでの期間
この職業に就いた後、周囲から特別なサポートが無くても一般的な就業者と同じように働けるようになるまでの期間
必要でない(未経験でもすぐに即戦力):10.4%/1年超:33.4%
必要でない(未経験でも即戦力となる)
10.4%
1ヶ月以下
0.0%
1ヶ月超~6ヶ月以下
18.8%
6ヶ月超~1年以下
18.8%
1年超~2年以下
6.3%
2年超~3年以下
12.5%
3年超~5年以下
10.4%
5年超~10年以下
4.2%
10年超
0.0%
わからない
18.8%
この職業に就くには(就業ルート)
入職にあたって、特に学歴や資格は必要とされない。専攻も特に問われず、最近は文系出身のプログラマーも多い。ただし、専門学校等でプログラミングを学んでいたり、必須ではないが、基本情報技術者等の資格を持っていると入職時に有利になる。
新卒で入職、あるいは未経験で他の仕事から入職した場合、企業内で一定期間の教育を受けた後に、プログラマーとして配属される。配属後、半年から1年間程度、先輩プログラマーやSEなどの指導を受けながら、部分的なプログラムを担当したり等、プログラマーとしての経験を積んでゆく。一人前のプログラマーとして認められ、詳細設計書を自分で読み解き、時にはその中の誤りを指摘できるレベルになるには、3~4年かかるといわれる。
その後のキャリアパスとしては、プログラマーからチームリーダーになり、管理職になっていくというルートがある。それ以外にSEに転身してシステム設計に携わる人、また、知識と経験を活かして、営業になる人もいる。高い技能や専門性を持ったプログラマーも求められおり、プログラマーとしてのスキルを磨き、プログラミングのエキスパートとなる人も少なくない。
プログラマーになる資質としては、ITリテラシーがあり、情報セキュリティに対する意識が高いこと、SEとは違い、顧客に直接接することは少ないが、顧客の内部情報に触れることもあるため、個人情報の取扱い、コンプライアンスに注意を払うことが求められる。
使用するプログラミング言語は色々なものがある。WebサイトのプログラムではJava、PHP、Rubyなどの言語が使われる。PCやスマホのゲームではC言語が多く用いられる。AI(人工知能)の開発ではPythonなどが多い。
今日、Webサイトのためのプログラミングの仕事が多いが、このためにサーバのOS(オペレーティングシステム)であるLinux、Webサイトを実現するApache、データベースのMySQL、Oracle、MongoDBなどの知識がプログラマーに求められることもある。
労働条件・職場環境の特徴
東京や大阪を中心とする大都市とその周辺で就業することが多い。システム開発会社やWeb開発会社などのIT企業、また、製造業、金融・保険業、建設業などの企業や研究機関からプログラム作成を受託した会社で働くことが多い。
就業者は男性の割合が高く、20歳代後半から40歳代が多い。
コンピューターがあればプログラム作成はできるが、セキュリティの観点からインターネットを遮断した環境下で開発をすることもあり、この場合、リモートでの働き方はできない。顧客との守秘義務やトラブル対応の関係もあり、プログラム作成を受託した会社の正社員として働いていることが多い。
賃金、労働時間等労働条件は勤務先の規定によるが、開発期限が迫っていたり、開発に問題が生じたような場合は、休日や夜間に仕事をすることもある。
プログラミングを海外に発注するオフショアも広がってきたが、最近の円安傾向もあり、現在、拡大しているという状況ではない。
先に述べたように画面デザインから自動的にHTMLが作成されたり、一般的なシステム開発はクラウドサービスでも行われるようになったり、「ノーコード」と言われるように、プログラミングの必要なく、かなりの部分のシステム開発ができるようになっている。生成AIによるプログラムも年々、質が良いものになっており、コメントアウトなども適切に配置され、分かりやすくなっている。このような中、プログラマーはエンジニアとしてシステム全体の開発を担当するようになったり、プログラミングの技を磨き、開発になくてはならない役割を果たすようになったりであたり、ブロックチェーン、AI、ゲームなど特定分野の専門性を活かし活躍している人もいる。さらには、スーパープログラマーや天才プログラマーと呼ばれ、活躍している人もいる。