システム開発の分野

システム開発の分野

システム開発の世界には、大きく分けると、汎用系、オープン系、組み込み系、ゲーム系、アプリケーション系、通信系の分野があります。

プログラマーとしての将来を考える上で、どの分野でやっていくかの選択は非常に重要なので、
こちらの記事では、それぞれの分野について説明していきます(※あくまで著者の経験則に基づいています)。

まずは、表にまとめたので、そちらで確認して下さい。

内容主に用いられる言語将来性

WEB系WEBサイト(ECサイトやポータルサイト、SNS、検索サイト、ブログなど)の構築PHP、Python、Ruby(Ruby on Rails)、Java、JavaScript、Go、Scalaなどある
汎用系金融機関(銀行、クレジットカード会社、保険会社)など、大手企業の基幹システムの構築COBOL、Java、VB、FORTRANなど厳しい
オープン系業務管理系(勤怠管理や商品の在庫管理、経理システム、給与システムなど)のシステム構築Java、C言語、PHP、Ruby、Pythonなどある
組み込み系家電製品どに組み込まれるマイコンと呼ばれる小型コンピュータの開発Java、C、C++、C#などある
ゲーム系PCゲームやソーシャルゲーム、オンラインゲームなどの開発C++、C#、Java、Kotlin、Swift、Unityなどある
アプリケーション系スマートフォンなどにインストールするネイティブアプリやWEB上で動作するWEBアプリの開発PHP、Python、Ruby(Ruby on Rails)、Java、Kotlin、Swiftなどある
通信系コンピュータ間の情報通信に関連したプログラムを開発C、C++、Javaある

※将来性については、他プログラマーからのヒアリングや私自身の経験による独自の評価です。

WEB系

そのままですが、WEB上で公開されているシステムを構築する分野です。

例えば、ECサイトやポータルサイト、SNS、何かしらの検索サイト(物件検索システムなど)、掲示板サイト、ブログ、通販サイト、その他さまざまなWEBサイトがあります。

WEB系のエンジニアは、大きく分けると、フロントサイドエンジニアサーバーサイドエンジニアに分けられることがあります。
また、それぞれに求められるスキルも異なります。

ただし、フロントサイドとサーバーサイドの垣根なく、両方とも対応できるプログラマーが理想です。
どちらかにこだわらず、両方のスキルを習得されることをおすすめします。

現場に出ると、必ずしもフロントサイドとサーバサイドで明確に分けられているとは限りません。
システム周りの開発を一人で全て行わないといけない場合もあります。

そのような場合、両方共対応できるプログラマーの方が強いです。

主に用いられる言語

PHP、Python、Ruby(Ruby on Rails)、Java、JavaScript、Go、Scalaなど

将来性

将来性はあるジャンルです。

ただし、WEBの世界の移り変わりはかなり激しいです。
常に新しい技術を取り入れていかないと、ついていけなくなるので、
学ぶ意欲のない方は取り残されて、古い技術のみで開発を続ける時代遅れなプログラマーになってしまいます。

汎用系

汎用機メインフレームなどと呼ばれる大型のコンピュータで動作するシステムを開発する分野です。

日常生活では、まず触れる機会が無いのでイメージがわかない方も多いと思いますが、
主に、金融機関(銀行、クレジットカード会社、保険会社など)の基幹システムの構築で使用されています。

また、金融系以外でも、大手企業の基幹システムで使用される場合も多く、
私も某プロバイダーの基幹システムの開発に2年ほど携わっていた経験があります。

主に使用される言語は、COBOLJavaです。
また、画面の作成にVBが使用されたり、FORTRANと呼ばれる科学技術系システムの開発に用いられる言語を使用することもあります。

一番の特徴は、取りあえず、現場がハードということです。
その企業の基幹システムを作成しているので、問題が発生すれば、昼夜問わず、また休日返上して対応しないといけなことも多々あります。

例えば、銀行のATMが不具合で止まると多くの利用者に影響が出るので、何か問題が発生すれば、即時対応が求められます。
そのことをイメージして貰えば、恐らく、如何にハードな世界かを想像できると思います。

主に用いられる言語

COBOL、Java、VB、FORTRANなど

他にも、シェルの作成知識やUNIX系コマンドの習得も必須です。

将来性

今後、汎用系システムの開発は減少していきます。
開発自体がとても大変なこと、また、莫大な開発費用が掛かる事が大きな理由です。

その為、将来性はないと言われている分野です。

ただし、大手の基幹システムにがっつりと組み込まれているので、
汎用系システムの開発現場が増えることはないですが、すぐに無くなることもありません。

さらに、COBOLやFORTRANを使える若い世代の人材がほとんどいないので、
汎用系の世界でプログラミングを学べば、逆に貴重な人材として重宝される可能性はあります。

オープン系

オープン系は、汎用系とよく比較されることが多いです。
汎用系ではコストの掛かる汎用機を用いて開発を行いますが、
オープン系ではより導入コストの低いPCを用いて開発を行います。

業務管理系のシステム開発が多く、
例えば、勤怠管理や商品の在庫管理、経理システム、給与システムなどが該当します。

インターネットに繋がった状態で利用する場合もあれば、
社内ネットワークのようなクローズな状態で利用する場合があります。

主に用いられる言語

Java、C言語、PHP、Ruby、Pythonなど

将来性

将来が安泰な分野です。
大手企業の案件なども多く、安定して働き続けたい方におすすめです。

組み込み系

こちらは、家電製品などに組み込まれるマイコンと呼ばれる小型コンピューターの、
制御システムの開発を行う分野です。

例えば、スマートフォンや車、カーナビ、カメラ、エアコンなどに組み込まれています。
また、最近では炊飯器や冷蔵庫、ポットなど身近にあるほとんどの家電に組み込まれるようになりました。

IoTの導入が急速に進む現在社会においては、最も重要な開発分野の一つとも言えます。

主に用いられる言語

Java、C、C++、C#など

ハードウェアやOSに関する知識も必要になります。

将来性

将来性はかなりあります。

ただし、求められる技術レベルが高く、参入障壁が高いです。
なり手が不足しており、最も人材不足が深刻な分野の一つでもあります。

その為、組み込み系のエンジニアとしてキャリアを積んでいくことで、
より重宝される人材として扱われる可能性もあります。

ゲーム系

ゲーム開発を行う分野です。

例えば、ゲームに登場するキャラクターを動かしたり、BGMを流したり、アクションを起こしたり、
といったプログラムを組んでいきます。

以前はテレビゲームやPCゲームが主流でしたが、
現在は、ソーシャルゲームやオンラインゲームの普及により、ますますプログラマー需要の高まっている分野です。

ただ、移り変わりの激しい業界の一つで、人材不足が深刻な業界でもあります。

主に用いられる言語

C++、C#

AndroidやiOSアプリの開発の場合は、Java、Kotlin、Swiftを利用することも多いです。
さらに、ゲーム開発エンジンのUnityを利用した開発も増えています。

将来性

将来性のある分野です。

以前と比べると家庭用ゲーム機の需要はかなり減っていますが、
スマートフォンゲームやオンラインゲームが急速に普及しました。

また、今後VRゲームの需要も伸びてくると言われていて、ますます多くのプログラマーが必要となる分野です。

今後もゲームというものが無くならない限りは、無くならない分野の一つです。

アプリケーション系

スマートフォンやタブレット、PCなどにインストールして使用するネイティブアプリの開発や、
WEB上で動作するWEBアプリの開発を行います。

特に、スマートフォンやタブレットの普及に伴い、各端末にインストールして利用するネイティブアプリの開発案件は大幅な増えました。

ただし、ネイティブアプリの開発にはAndroidアプリではJavaKotlin、iOSではSwiftが用いられます。
会社によっては、両方の開発技術が求められるので、幅広い技術力を求められる場合もあります。

主に用いられる言語

・WEBアプリ:PHP、Python、Ruby(Ruby on Rails)、Javaなど
・Androidアプリ:Java、Kotlin
・iOSアプリ:Swift
※以前は「Objective-C」での開発が主流でしたが、現在はSwiftの誕生により、使用される機会は減ってきています。

AndroidとiOSの両プラットフォームに対応するために、
クロスプラットフォーム開発を用いた手法を利用する場合もあります。
その場合には、Cordova(コルドバ)、React Native、Xamarin(ザマリン)、Flutter(フラッター)などを利用されることが多いです。
※クロスプラットフォーム開発とは、異なるプラットフォーム(例えば、AndroidやiOS、Windowsなど)上でも、同じ仕様で動作するシステムを開発する手法です。
これにより、AndroidとiOSでも言語を変えずに一つのコードで開発を行うことができます。

また、ゲームアプリの開発では、Unityとよばれるゲーム開発エンジンを利用することも多いです。
※Unityも複数OSに対応しており、クロスプラットフォーム開発で用いられます。

将来性

将来安泰の分野です。

インターネットの普及に伴い、WEBアプリの開発は爆発的に増えました。

また、スマートフォンの普及に伴って、
AndroidアプリやiOSアプリ(iPhoneアプリ)の開発も急速に増えました。

仕事がなくなることはな無い分野です。

将来、最も安泰な分野の一つと言えます。

通信系

コンピュータ間の情報通信に関連したプログラムを開発する分野です。

例えば、ルーターやモデム、IP電話のようなネットワーク機器のプログラム開発を行います。

主に用いられる言語

C、C++、Java

将来性

安定した業界です。

情報ネットワークの開発は、今後も重要な分野の一つです。
今後も、仕事がなくなることはないです。