
プログラマーに興味があるんだけど、プログラマーってどんな仕事なんだろう??
本記事では、上記のような疑問を解決します。
- プログラマーの仕事の内容が分かる
- プログラマーの種類が分かる
- プログラマーに大切なことが分かる
次から具体的に説明していきます。
プログラマーのお仕事


それではさっそく、プログラマーのお仕事をわかりやすく説明していきます。
プログラマーの仕事内容
プログラマーのお仕事は、システムエンジニアが作成した設計書を基に、プログラムを作成していくお仕事になります。
チームになってシステムを開発する
SE(システムエンジニア)とプログラマーはシステム開発を一緒に行いますが、それぞれの役割があります。
システムエンジニアはどのようなシステムを構築すべきか整理(要件定義)を行います。要件定義が確定したら、どのようにシステムを構築していくかを具体化していきます(基本設計)。さらに要件を実現する方法を詳細化したもの(詳細設計)を作成し、プログラマーに提供します。
プログラマーはシステムエンジニアが作成した詳細設計を基に、プログラムを作成していきます。
システムエンジニアは、これで終わりではなく、出来上がったプログラムをつなぎ合わせたテスト(結合テスト)や、要件に沿ったシステムが出来上がっているかのテスト(シナリオテスト)なども行います。
システム全体の設計や、開発したシステムが要件どおりに動作するかテストを行うのがシステムエンジニアで、システムエンジニアが作った設計書に沿ってプログラミングを行うのがプログラマーになります。
プログラマーの作業工程
プログラマーは以下のような作業を順番に行っていきます。
- 仕様理解
- コーディング
- テスト
以降で簡単に説明していきます。
仕様理解
仕様理解は、システムエンジニアが作成した設計書(「こんなプログラムを作ってください」という依頼書)を理解します。このときに、不明点を洗い出し事前にシステムエンジニアに質問できると良いでしょう。
なぜなら、設計書に不備があり、後からやりなおしになると面倒ですので。
コーディング
プログラミング言語でプログラムを作成していくことを「コーディング」と言います。
プログラムソースコードを作成していくということですね。
前工程の仕様理解で基本的には不明点を洗い出しているはずなので、ここではただひたらすらにコーディングを進めていくことになります。
テスト
プログラムは作成して終わりというわけではありません。
作成したものが正しく設計書のとおりに動くことを確認しなければなりません。
テストには以下のようなものがありますが、プログラマーが主に担うテストは「単体テスト」になります。(自分が作ったものが正しく想定通りに動くかの確認ですね。)
- 単体テスト
- シナリオテスト
- システムテスト
どれぐらい稼ぐ?
プログラマーの年収で最も多いのは430万円前後です。
日本人の平均年収は433万円程度なので、平均と比べると若干低いです。
プログラマーはシステム開発に携わる人の中で年齢の若い方が担当する場合が多いので、そういった部分でも年収が低くなっている理由になります。
勤続年収による平均年収の推移をみると、1-3年では318万円、4-8年で435万円、8年以上で494万円と、年数が上がるほど年収が高くなることがわかります。年収が500万以上のプログラマーもいるのです。
プログラマーには種類がある


一言でプログラマーといっても、いくつかの種類に分かれます。
作るものが大きく変わってきますので、自分のやりたいことを考えて選ぶと良いでしょう。
- Webプログラマー
- 業務アプリ系プログラマー
- ゲームプログラマー
- 組み込み系プログラマー
- 汎用系プログラマー
- オープン系プログラマー
- 通信系プログラマー
それぞれ以下のとおりです。
Webプログラマー
パソコンやスマホ、タブレットでインターネットに接続して利用することを前提に作られたシステムを開発するプログラマーです。ショッピングサイトや、予約システムなどを構築します。
フロントエンドと言われるユーザの目に触れる部分の開発と、バックエンドと言われるユーザの目に触れない部分の開発があります。
【主な使用言語】PHP、JavaScript、HTML、CSS、Ruby、Python、Java など
ゲームプログラマー
ゲームが意図した動きとなるようにプログラミングを行う職種です。操作に合わせたキャラクターの動作や、BGMや効果音等の音の設定を行うことが主となります。
【主な使用言語】C#、C++、Unity、JavaScript、Ruby、Swift など
組み込み系プログラマー
電化製品などの電子機器を制御するプログラミングを行う職種です。例えば電子レンジですと、ボタンが押されたときや、指定された温度に温まったときの動作を制御するプログラムなどを作成します。
【主な使用言語】C、C#、C++、Java など
汎用系プログラマー
汎用機で動くシステムを開発する職種です。
汎用機は1台のコンピュータで全ての処理を行うシステムを言い、主に金融機関のような大量データを扱う大規模システム等で使われています。
【主な使用言語】C、COBOL、PL/SQL、Java など
オープン系プログラマー(業務アプリプログラマー)
オープン系とは汎用系とは逆で、複数のコンピュータで構築するシステム(クライアントサーバシステム)をオープン系と呼びます。オープン系の代表的なOSはUNIXになり、「業務系アプリケーション」の開発が中心となります。
企業における「業務」を効率化するシステムです。例えば、給与計算、勤怠管理システムや、受発注、販売、会計など様々な業務に合わせたシステムを開発することになります。
各企業に適した形をとるため、開発環境には多種多様なパターンがあるのもオープン系の特徴です。
【主な使用言語】Java、JavaScript、PHP、Ruby、Python、C++、C# など
通信系プログラマー
ネットワーク関連に特化した開発を行う職種です。
テレビ会議システムなどの開発や、組み込み系プログラマーと似ている部分がありますが、Wi-Fiルーターやモデムなどのネットワーク機器のプログラミングを担当します。
【主な使用言語】Java、C、C++
プログラマーに大切なこと


プログラマーが仕事をするうえで大切なことを理解しておきましょう。
これらのことが欠けてしまうと、プログラマーとして続けていくことは難しいです。自分ではやれていると思っているかもですが、実際には大きな勘違いです。
品質第一
プログラマーに限った話ではありませんが、品質を第一に考える必要があります。
なぜならば、品質に不備があると信用を失うからです。たとえばお弁当を注文した時にお箸が入っていなかったらとても悲しいですよね。そういったことが続くようであれば、そのお弁当屋さんに注文したくなくなります。
仕事は予定通りいかない場合もありますが、納期に遅れそうだからといって品質を犠牲にすることはしてはいけません。
作業指示をもらっている上位者やリーダーに対して遅れている理由を説明して、手を抜く(品質を犠牲にする)ことなくプログラムを完成させる必要があります。
経験したことをきちんと自分のものにする
プログラマーは他の人が作成したプログラムを目にする機会が多々あります。システムが完成した後に機能の追加などが発生すると、完成しているプログラムに対して修正をすることがあります。
このような時にいろいろなプログラムソースを見て、「とても見やすい」、「とても見にくい」「こんな関数があるんだ」等いろんな感想を持つ場合があります。
それこそが自分の学びになります。プログラムソースコードの、良いところ悪いところ見て参考にしていきましょう。
他にも、プログラムを速く書く方法や、テストのためのデータの作成方法、テスト結果(エビデンス、証跡)の作成方法など、他のプログラマーの良いところはたくさん取り入れていきましょう。そして次回以降は自分のものにし少しずつレベルアップしていきましょう。
規約(ルール)をきちんと理解する
プログラマーはいくつかの規約(ルール)を理解する必要があります。
参画したプロジェクトには大抵いくつかのルールが存在します。その一つ一つを正しく理解して則って作業をしていかなければなりません。
進捗報告時の進捗率の入れ方などもルールがありますが、プログラミングの規約などがあります。
プログラミング規約は細かく記載されており、以下のような内容が定義されていたりします。
- インデントの揃え方のルール
- カギカッコ({)等の使い方
- やってはいけない書き方
- ソースコードのコメントの書き方
これらを守ることで、統一のとれた見やすいプログラムが完成します。
また、脆弱性や互換性の問題から「やってはいけない書き方」などもあるため、きちんと規約を理解する必要があります。
協調性
システムやアプリケーションの開発はチームになって複数名で1つのものを完成させていきます。なので、みんなで協力して仕事を進めていかなけばなりません。
なので、チームワークがとても重要になります。チームの輪を乱すような行動はもっての外で、チーム全体のことを考え構想が必要になります。時には残業が必要になることもあると思います。「手伝いましょうか?」と声をかけれるような想いが必要です。
また、仕事は楽しくやりたいものです。ビジネスとしてのマナーや節度を保ち、時には冗談を言ったりしながら仕事ができると良いです。
仕事は結局は人間力です。仕事ができるけど協調性のない人と、多少仕事はできないけど協調性のある人だったらどっちの人とまた仕事したいと思いますか?
プログラマーとして必要なスキルは確保しつつ、こういった部分も考えていくと良いでしょう。