ITコラム

column_main16669

スキルアップ

2021.06.21

プログラマーの種類とその仕事内容・必要スキルを解説

この記事を書いた人
プログラマカレッジ編集部
プログラマカレッジ編集部

未経験からプログラマになりたいと考えてる皆さまに、プログラミング言語の基礎知識や、プログラマとしての転職ノウハウ、転職に役立つ資格、IT業界情報など、お役立ちコラムを配信しています。

突然ですが、あなたは何のプログラマーになりたいですか?プログラマーには、様々な種類があります。今回は、開発現場における、プログラマーの種類とその仕事内容、必要スキルについて、プログラマーをこれから目指す初心者の方にも分かりやすく解説します。

最終更新日:2021年6月24日

目次

1. プログラマーの役割
 1-1. 開発フェーズとプログラマーの担当箇所
 1-2. プログラマーが開発に使う環境
2. プログラマーの種類と必要スキル
 2-1. Webプログラマー
 2-2. アプリプログラマー
 2-3. ゲームプログラマー
 2-4. 組み込み系プログラマー
 2-5. 汎用系プログラマー
 2-6. オープン系プログラマー
 2-7. 通信系プログラマー
3. プログラマーの需要
4. プログラマーの年収
5. プログラマーの難易度
6. 今プログラマーを目指す人へのおすすめは?
7. まとめ

1. プログラマーの役割


システム開発におけるプログラマーの役割は、基本的に「設計図に沿ってプログラミングすること」と、「作ったプログラムが設計図通りに動くのかテストすること」の2つです。

▲目次へ戻る

1-1. 開発フェーズとプログラマーの担当箇所

システム開発には、開発フェーズと呼ばれるお決まりの手順があります。開発フェーズごとに、「SE」や「プログラマー」など担当者が分かれています。
「SE」「プログラマー」それぞれの役割は、次のようになっています。
 
【システムエンジニア(SE)】
「SE」と呼ばれるシステムエンジニアは、顧客からシステムの要望をヒヤリングし、システム全体から詳細な部分まで設計をして設計書を作成します。また、プログラマーが作ったシステムが正常に動作するか、結合テスト・総合テストを行います。システムが稼働し始めると、システムが正常に稼働するようにしたり(運用)、メンテナンス(保守)したりします。
 
【プログラマー】
プログラマーは、システムエンジニアが設計した設計書にそってパソコンでプログラミングする技術者です。システム上のバグ(不備)やエラーを修正するのも、プログラマーの重要な仕事のひとつです。テストを繰り返してバグやエラーに対応し、納期までにシステムを納品できるようにします。
対応するシステムによって「Webプログラマー」「通信系プログラマー」など、使用するプログラミング言語が細分化され、必要スキルも異なります。

開発フェーズごとにどちらが担当するかの区分は、次のようになっています。

【システムを開発するための手順】

フェーズ 概要 担当者
設計 システムを何で構成するか決めて、プログラミングするための設計書を作る。 SE
製造(プログラミング) プログラミングしてシステムを製造する。 プログラマー
単体テスト プログラムが単体で正しく動作するかテストする。 プログラマー
結合テスト 複数のプログラムが連携して正しく動作するかテストする。 SE
総合テスト 本番同様にすべてのシステムが正しく動作するかテストする。 SE
運用

保守
運用は、システムが停止しないよう正常に稼働させる。保守は、システムのアップデート、修正、復旧、メンテナンスをする。 SE

▲目次へ戻る

1-2. プログラマーが開発に使う環境

プログラマーがプログラミングを行うために用意する道具のことを、「開発環境」と呼びます。開発環境とは、システム開発に必要な「部品」を揃えて「作業するための場所」を作ることです。プログラマーは同じシステムを作るチームメンバー全員で同じ仕様通りに揃えた開発環境を使い、システムを作ります。この環境がメンバー同士でずれていると、不具合の原因になる場合もあります。

現在は「IDE(統合開発環境)」という開発に必要なエディタ、コンパイラ、デバッガなどの部品を1つにまとめたものが、数多く提供されています。特にWeb系の開発では、この統合開発環境が多用されています。

【開発環境のイメージ】

次章では、プログラマーの種類と必要スキルについてご紹介します。

▲目次へ戻る

2. プログラマーの種類と必要スキル


プログラマーにもいくつか種類があり、求められるプログラミング言語スキルも異なります。
また、どの種類のプログラマーでも共通して次のようなスキルが求められます。

1:プログラミングスキル
システム開発の目的に応じて様々な言語を習得していく必要があります。そうすることで、プログラマーとして活躍の幅を広げることが可能となります。

2:デバッグスキル
作成したプログラムに不具合が生じたときに、原因を調査し修正していくスキルが必要となってきます。

3:アルゴリズムスキル
アルゴリズムとは、プログラムを作るときに使う、問題を解決するための手順、計算方法です。プログラマーとしてアルゴリズムの理解は必須となります。

4:コミュニケーションスキル
開発現場の大半は、一人で業務をするわけではありません。
開発チームのデザイナーや他のプログラマーと、円滑にコミュニケーションを取ることが、仕事を進める上で非常に重要になってきます。

▲目次へ戻る

2-1. Webプログラマー


Webプログラマーは、Webシステムを開発するプログラマーです。

私たちが普段パソコンやスマートフォンから見ているLINEやTwitterなどのSNS、ショッピングサイトなど、多くのWebシステムがWebプログラマーの手によって作られています。Java等でシステムの中身をプログラムするだけでなく、Webサイトとしての画面表示を行うためのHTML、データベースとの連携を行うためのSQLなど、幅広い知識が求められます。

使用するプログラミング言語
Java、PHP、Ruby、Python、JavaScript、HTML/CSS、SQLなど

未経験からWebプログラマーとしての就職や転職を目指したいという方には、「プログラマカレッジ」がおすすめです。プログラマカレッジでは、JavaScriptやPHPなどのWebプログラミングの基礎からチーム制作の実践まで、Webプログラマーとして必要な技術を習得するためのカリキュラムが満載です。本気で就職を目指している方は、一度のぞいてみてはいかがでしょうか。

→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」

▲目次へ戻る

2-2. アプリプログラマー


アプリとは、スマートフォンやタブレットで利用できるソフトウェアのことです。

昨今、アプリは私たちの日常で身近なものとなりました。Instagramなどに代表されるSNSやゲーム、業務系など、その種類は様々です。アプリ開発のOSには、AndroidとiOSの2種類があります。アプリプログラマーは、ソフトウェアやハードウェア、ネットワークなどの幅広い知識が必要となります。

使用するプログラミング言語
Swift、Kotlin、Java、C# など

▲目次へ戻る

2-3. ゲームプログラマー


ゲームプログラマーはゲームを作る(プログラミングする)プログラマーです。

ゲームには、アプリやPCゲームなど様々な種類があります。
ゲームクリエイターやデザイナーがデザインした、キャラクターの動きやBGM・効果音のイメージ、シナリオ動画、メニュー画面の実装など、ゲームシステムの構築をゲームが意図したとおりに動くようにプログラミングしていきます。

キャラクター、オブジェクトの動きの制御やグラフィクス描画など、他のシステムやアプリケーションとは、異なる設計・実装が求められるため、プログラマーとしての専門性はとても高くなります。

また、最近はVRの人気が高く、求められるスキルは日々変化しています。

使用するプログラミング言語
C#、C++、JavaScript、Swiftなど

▲目次へ戻る

2-4. 組み込み系プログラマー


組み込み系プログラマーは、家電製品や電子機器の制御するプログラムを開発するプログラマーです。

例えば、エアコンで設定温度に調節する、お掃除ロボットがものを感知して動いたりする操作指示をするプログラムのことです。

近年では、今までインターネットに繋がっていなかった機器をインターネットにつなぐ、IoT(Internet of Things)の発展により、スマートフォンなどを通して遠隔で家電製品をコントロールできるようになりました。

スマートフォンの普及により、今後、さらに需要が期待されます。

使用するプログラミング言語
Java、C、C#、C++ など

▲目次へ戻る

2-5. 汎用系プログラマー


汎用系プログラマーは、汎用機で動くシステムを開発するプログラマーです。

「汎用機」とは、パソコンでするいろいろな種類の情報処理作業を1つのコンピュータで行う手法です。
「汎用機」が開発される前は、行う処理ごとに、コンピュータを使い分けていました。「汎用機」の普及により、1つのコンピュータで数種類の情報処理に対応できるようになりました。

「汎用機」は、金融機関や会計システムなど大量データを扱う大規模なシステム開発に用いられています。

使用するプログラミング言語
Java、C、COBOL、PL/SQL など

▲目次へ戻る

2-6. オープン系プログラマー


オープン系とは、汎用系と逆の方法で構築されたシステムです。

オープン系システム開発とは、仕様が公開されているOS、ソフトウェアなどを自由に組み合わせてシステム構築することです。オープン系プログラマーは、複数のコンピュータで構築するシステムの開発を行います。

指定されたネットワーク内の複数のパソコンがアクセスするためのシステム開発をします。電子カルテ、店舗の顧客情報のデータベースなどオープン系システムで構築されています。

汎用系と比較すると、システムを複数のパソコンで構築するため、こまめにアップデートができ、管理もしやすいという利点があります。

使用するプログラミング言語
PHP、JavaScript、Ruby、Java、C++、C#、Python など

▲目次へ戻る

2-7. 通信系プログラマー


通信系プログラマーは、インターネットをするための機器である、ルーターやモデム、IP電話など通信に関連した製品を開発するプログラマーです。

通信機器のデータ送受信に関するプログラミングが主な仕事となり、ネットワークに特化したプログラマーといえます。その他に、社内の給与システムなど、通信系プログラムで構築されています。

近年、クラウドサービスの普及により、クラウドサービスのシステム開発における知見があるとよいでしょう。

使用するプログラミング言語
Java、C、C++ など

▲目次へ戻る

3. プログラマーの需要

どの種類のプログラマーになるのかを決める重要なポイントは、プログラミング言語のスキルです。そのためプログラマーの需要を探るには、どのプログラミング言語に需要があるのかを確認すると分かりやすいでしょう。

言語の需要を集計しているデータとしては、「TIOBE Index」が人気です。このデータは、各プログラミング言語の検索回数で集計されています。

2021年6月 2020年6月 言語 割合 増減
1 1 C 12.54% -4.65%
2 3 Python 11.84% +3.48%
3 2 Java 11.54% -4.56%
4 4 C++ 7.36% +1.41%
5 5 C# 4.33% -0.40%
6 6 Visual Basic 4.01% -0.68%
7 7 JavaScript 2.33% +0.06%
8 8 PHP 2.21% -0.05%
9 14 Assembly language 2.05% +1.09%
10 10 SQL 1.88% +0.15%

出典:TIOBE Index for June 2021

ここ20年分の、ランキングの推移を見てみると、やはりトップ5のうち3つを占めているC言語系の需要は根強いことが分かります。
また一時期ほどの隆盛はなく徐々に下降してはいますが、未だJavaの人気も健在です。
そして特筆すべきは、Pythonです。年々需要を増していましたが、とうとうJavaを追い抜いて2位にランクインするまでになりました。

▲目次へ戻る

4. プログラマーの年収

TECH Streetが発表した「2020年プログラミング言語別年収ランキング(有効回答数:5,599名)」によると、「TIOBE Index」で人気の言語をスキルとして保有する人の平均年収は、次のようになっています。

言語 20代 30代 40代 50代
C 388万円 521万円 605万円 621万円
C#.NET 381万円 495万円 616万円 550万円
C++ 390万円 521万円 633万円 635万円
Java 380万円 505万円 608万円 629万円
JavaScript 378万円 497万円 583万円 580万円
PHP 361万円 467万円 586万円 547万円
Python 403万円 546万円 624万円 582万円
Ruby 397万円 520万円 603万円 585万円
SQL 392万円 500万円 582万円 576万円
VB 382万円 504万円 584万円 590万円

出典:2020年プログラミング言語別年収ランキング|TECH Street

年収ランキングでも、Pythonは若年層を中心に高めとなっています。逆に40代以上の層では、C、C++、Javaなどのスキルを持つ人の年収が高めとなっているようです。

プログラマーの年収について詳しく知りたい方は、次の記事をご覧下さい。

▲目次へ戻る

5. プログラマーの難易度

プログラマーになるための難易度は、プログラミング言語の習得のしやすさが大きく影響します。

例えばTIOBE Indexの上位10言語の中で、C言語およびC++は一般的にも難しいと言われています。

その原因の一つは、メモリの管理を自分で行う必要があるためです。その他の言語では自動で行ってくれるメモリの確保と開放を、忘れずに自分で行う必要があります。

またポインタの概念など、慣れたら細やかな指定や管理が出来る上に高速実行が可能な言語なのですが、手動でやらなければならない部分が多々あります。
 
対してJavaには「ガベージコレクション」という機能があり、手動でメモリ管理を行わなくても不要になった領域は自動で開放してくれる機能があります。

またプログラムをオブジェクトという部品ととらえて再利用などを簡単にした「オブジェクト指向言語」であり、プログラミングのしやすさを助ける工夫がされています。

なおC#についてはC言語に似た名前ですが、オブジェクト指向やガベージコレクションを採用しており、中身はJavaに近い言語となっています。
 
PHP、Python、Rubyなどは、スクリプト言語です。

スクリプト言語はそもそもプログラミングをより簡単にすることを目的として開発されており、用意されている機能と使用目的が一致していれば、少ない指定でより複雑な処理が行えるよう工夫されています。

また簡単な開発環境をインストールするだけで動作テストまでできるものが多いため、思いついたら手軽に始めることができるのも特徴です。

プログラミング初心者の方が初めて勉強する言語としては、学習の簡単さからこのスクリプト言語がおすすめです。

▲目次へ戻る

6. 今プログラマーを目指す人へのおすすめは?

今プログラマーを目指す人へおすすめしたいのは、まずJavaScriptやPHPといった「スクリプト言語」から始めることです。

スクリプト言語を使うと開発や実行の環境を簡単に用意できるだけでなく、数行のコードを書くだけで動くものが出来上がるため、特にプログラミングを初めて学ぶ方のきっかけにおすすめの言語となっています。

これらのスクリプト言語を活かせる場面が多いのは、Webプログラマーです。求人件数も多く、未経験から就職や転職を目指したい方にも向いています。
 
Webプログラマーへの就職や転職を目指したい方には、「プログラマカレッジ」がおすすめです。

プログラマカレッジでは、HTMLやCSSの基礎からJavaScriptやPHPなどの人気のスクリプト言語だけでなく、データベース(SQL)やJavaまで、Webプログラマーとして必要な技術を一通り習得することができるカリキュラムがそろっています。

本気でWebプログラマーを目指している方は、一度のぞいてみてはいかがでしょうか。

→ 就職支援付き無料プログラミングスクール「プログラマカレッジ」

▲目次へ戻る

7. まとめ

プログラマーは、システム開発において、多発するエラーや厳しい納期に追われ、苦しいこともあります。
しかし開発現場において、「プログラミングの楽しさを実感できる職種」、それがプログラマーです。
今後、プログラマーとして現場で活躍をするうえで、「何のためにこのプログラミングをするのか」をつねに考え、自発的に新しい技術を吸収してみてください。

▲目次へ戻る

SHARE

最新記事

無料相談する

INTERNOUS,inc. All rights reserved.