ニャンズとにゃんにゃんしている侍エンジニアブログ編集部のモリシタです。
IT人材の不足により、プログラマー(PG)という職業が脚光を浴びています。しかし、実際にどんな仕事内容なのか、どんなスキルが必要なのかよくわかりませんよね。
そんなあなたのために、プログラマーの仕事内容や種類を図でわかりやすく解説します!
この記事を読めば、プログラマーの仕事内容・種類・どんなスキルが必要かが、まとめてわかります。
プログラマーの仕事内容を図解で大解剖
上の図をご覧ください。
こちらの図は、プログラマー(PG)の大まかな仕事の流れを表したものです。企業によって若干の違いはあるものの、大まかな仕事の流れは上のようになります。
プログラマーは開発を始める前に、システムエンジニア(SE)が作成した設計書の内容や顧客についての詳細を打ち合わせを通して知ります。企業によっては、プロジェクトに関わる人全員がこの打ち合わせに参加する場合もありますが、プログラマーチームの責任者だけの場合もあります。
そして、プログラマーチームで、プロジェクトのそれぞれの担当を割り振ります。
システム開発は、システム全体を小さな処理単位(モジュール)に分割し、複数人のプログラマーで開発を行います。
一般的にプログラマーは複数のプロジェクトを同時進行で受け持つため、スキルレベルや作業量によって割り振りがその都度変わります。
そして「③システム開発」でいよいよ自分の担当になった部分の開発作業に取り掛かります。④、⑤のテストは、プログラマーがする場合もあれば、外部の代行企業に委託している場合もあります。
テストでは、設計通りにプログラムが作られているかやバグがないかをチェックします。
そして最後に担当のシステムエンジニアに納品します。プログラマーから直接客先への納品は、あまりありません。
あくまで顧客とのコミュニケーションはシステムエンジニアが行うのが一般的です。ただ、企業によってはプログラマーとシステムエンジニアとの境界が曖昧で、システムエンジニアの仕事もプログラマーがする場合もあります。
【種類別で解説】プログラマーの職種まとめ
Web系
仕事内容
Web系プログラマー(コーダー)は、インターネット上で提供されているサービスのプログラミングを行います。代表的なものがショッピングサイトなどです。
プログラマーもシステムエンジニアの設計書をもとにWebシステムの開発を行います。
Web系プログラマーには2種類あります。ユーザーが目にするクライアントサイドとユーザーの目には触れないサーバーサイドです。
クライアントサイドを担当するプログラマーをフロントエンジニアと言います。プログラムが組める事は必須ですが、デザインを担当するのでデザインスキルも求められます。
サーバーサイドはユーザーの目には触れませんが、入力されたデータを扱う重要な役割を持っています。
最近はクラウドなど新しいサーバータイプが増え、さらに個人情報などを扱うことも多いためプログラミングスキルだけではく、セキュリティの知識なども求められます。
クライアントサイドとサーバーサイドは密接な関係のため、どちらかではなくどちらもできることが望まれます。
作るもの
- ホームページ
- SNS
- ショッピングサイト
- Webアプリ etc…
求められる言語
- CSS
- HTML
- PHP
- JavaScript
汎用系
仕事内容
汎用系とは、いろいろな目的の情報処理作業を1つのコンピュータで行う手法です。
以前は、行う処理の目的ごとに、使用するコンピュータを使い分ける方法が主流でした。しかし、近年のPCの処理能力の向上により1つのコンピュータで対応できるようになりました。
金融機関や保険会社など大量のデータを扱う大規模なシステム開発に用いられています。つまり、汎用系の仕事は金融機関や保険会社などのシステム開発を行うお仕事が大半です。
作るもの
- バンキングシステム
- 見積もりシステム
- 会計システム etc…
求められる言語
- PL/SQL
- Java
- COBOL
- C
オープン系
仕事内容
オープン系は先ほど紹介した汎用系の開発方法とは真逆の手法です。
オープン系とは、複数のコンピュータで構築するシステム(クライアント・サーバーシステム)をオープン系と呼びます。指定されたネットワーク内の複数のパソコンがアクセスできるようなシステムを開発します。
オープン系の代表的なOSはUNIXですが、Windowsでも開発が可能です。汎用系と比較すると導入コストも安く、こまめにアップデートが行えるので管理もしやすくなります。
作るもの
- 病院のデータベース
- 電子カルテ
- 店舗の顧客情報データベース etc…
求められる言語
- Java
- C#
- C+
- PHP
- Ruby
- Python
- JavaScript
アプリケーション(開発)
仕事内容
アプリとは、スマートフォンやタブレットで利用できるソフトウェアです。
今や私たちの生活にはアプリがなくてはならない存在です。ツイッターなどのSNS系アプリやゲーム、業務系など種類は様々です。
アプリ開発のOSには、AndroidとiPhoneの2種類があります。
アプリケーション系プログラマーは、ソフトウェアやハードウェア、ネットワーク、データベースなどの幅広い知識をが必要となります。そのため、アプリケーション系プログラマーは、複数言語の習得が必要です。
作るもの
- ゲームアプリ
- 経費精算などの業務アプリ
- SNSなどのWebアプリ etc…
求められる言語
- Java
- C
- C#
- Ruby
- PHP
- Swift(iPhone向け)
- Kotlin(Android向け)
ゲーム
仕事内容
ゲームプログラマーは文字通りゲームを作成するお仕事です。ゲームにもアプリやPCゲームなど、様々な種類があります。
ゲームプログラマーはクリエイターやデザイナーとコミュニケーションを頻繁に取りながら、キャラクターの動きやBGM・効果音などのイメージを具現化するお仕事です。
最近ではVRも人気が高く、求められるスキルは日々変わっていきます。また、アクションの軌道をプログラムする際には、数学や物理の知識が必要とされます。
作るもの
- ブラウザゲーム
- スマホゲーム
- コンシューマーゲーム
- PCゲーム
- VRゲーム etc…
求められる言語
- Unity
- C++
- C#
- JavaScript
- Swift
- Ruby
組み込み、制御系
仕事内容
家電製品や電子機器を制御するためのプログラムを作るお仕事です。例えば、エアコンであれば設定された温度にあげたり下げたり、人を感知して風量を調節したりなどの操作指示をするプログラムです。
近年ではIoTの発展により、スマホを通して遠隔でエアコンなどの家電製品をコントロールできるようになりました。
家電製品は無くなりませんし、より多くの家電製品がIoT技術により発展します。需要が期待される業界です。
作るもの
- エアコンや洗濯機などの家電製品のプログラム
- エレベーターや自動ドアなどのプログラム etc…
求められる言語
- C
- C++
- C#
通信系
仕事内容
ネットワーク機器(ルーター、モデム)やテレビ会議、IP電話を使ったシステム開発など、通信に関連した製品やプログラムを開発します。
組み込み系プログラマーと重複する仕事内容が多いですが、ネットワークに特化した職業です。
データの送受信に関するプログラミングが中心となります。その他には、社内の人事・給与システムなどの開発が挙げられます。
また、クラウドサービスの普及により、クラウドサービスの活用に必要な知識や経験があるとより重要なポストを任されるでしょう。
作るもの
- ネットワーク機器のプログラム
- テレビ会議システムやIP電話など、通話メインのプログラム etc…
求められる言語
- Java
- C
- C++
まとめ
いかがでしたか?
プログラマー(PG)のお仕事は、実際に手を動かしてプログラムを作っていくお仕事だということがわかりましたね。
また、プログラマーにもたくさんの種類があり求められるプログラミング言語も違うということがわかりました。
あなたがどんなプログラマー(PG)になりたいか、またそのためにどんなスキルが必要か参考にしていただければ幸いです。