種類によって全く仕事が異なる!7つのプログラマーの種類

「将来は絶対にプログラマーになる!」
「技術職を目指している!」

という方は、多いのではないのでしょうか?しかし、プログラマーといっても大きく分けて7つの種類があり、スマホアプリやゲームのプログラマーという新しい仕事もあれば、銀行や国のシステムを行う汎用系プログラマーもありますので、これからプログラマーを目指す人は事前にどんなプログラマーの種類があるのか把握する必要があります。

なぜなら、間違って「プログラマーは全部同じでしょう!」と軽い気持ちで入社した会社が、汎用系のプログラマーであれば、あとでキャリアをやり直し、アプリプログラマーになるのは、大変だからです。

本日はインターファクトリーで、シニアアドバイザーを担当している筆者が、プログラマーの種類について詳しく解説してまいります。

プログラマー7種とは!

まず、最初にプログラマーの7種を解説します。

◆プログラマーの種類

①WEBプログラマー(オープン系)
②スマホアプリプログラマー
③ゲームプログラマー
④業務系プログラマー(業務システムやパッケージ)
⑤組み込み系プログラマー
⑥汎用系プログラマー
⑦AIプログラマー

まず、プログラマーと言っても、その種類ごとに使うプログラミング言語が異なります。プログラミング言語は世界で200以上存在していると言われていますが、実際に使われている言語は20種類くらいです。プログラマーのキャリアは、

①構築したシステム(業務名・アプリ・ソフトウェア)
②システムの環境(OS・データベース)
③扱ったプログラミング言語
④担当した工程(要件定義・開発・テスト・保守)

以上の4項目の経験年数やポジションで評価されますので、単純にプログラミングスキルだけでなく、どんなシステムを開発し、どんなポジションを担当したのかで評価されます。ですから、これからプログラマーを目指す人は「どんなシステムやアプリを開発したいのか!」と考えることが極めて重要です。

筆者の失敗談をお話しますと、筆者も20年前にプログラマーから、社会人のキャリアをスタートしましたが、汎用系のCOBOLという言語のプログラマーとしてスタートしたことが、プログラマーのキャリアを断念することにつながりました。

20年前でさえ、COBOLのような汎用系言語は、古いプログラミング言語です。当時の最新のプログラミング言語はJavaでした。20代の筆者は「プログラマーはどれも同じだろう」と考え、深く検討せず、システム開発の会社に入社しました。

しかし、その会社は汎用系の開発が中心でした。そのため、筆者は汎用系のプログラマーとして3年の経験を積みましたが、当時の流行のオープン系のキャリアに変更するのに、あまりに環境や言語が異なるために挫折してしまいました。

つまり、これからプログラマーを目指す方は、将来開発したいシステムやソフトウェア・アプリのイメージを持っていただきたいのです。プログラミング言語のアルゴリズムの考え方は同じですが、言語や環境が違うと、素人も同然になりキャリアを積みなおすのが大変だからです。それでは、各プログラマーの内容を解説してまいります。

種類①WEBプログラマー(オープン系)

扱うプログラミング言語:Java、PHP、Ruby、Python、JavaScript

今、プログラマーの中で最もメジャーな種類が「WEBプログラマー」です。例えば以下のようなシステムが開発対象となります。

・リクナビやマイナビなどのリクルート用のWEBサイトの開発
・英会話スクールのレッスン予約システム
・ぐるナビなどのレビュー、口コミサイトの開発
・電車の乗り換え情報を調べるWEBサイトの開発

上記以外にも、世の中には、多くのWEBサイトがあると思いますが、今のWEBサイトは、静的サイト(主にHTMLだけで作られたサイト)は少なく、動的サイトがメインになっており、皆さまが普段接するWEBサイトのほとんどがWEBプログラマーが作ったサイトです。

そのため、プログラミング言語以外にもHTMLやCSSの知識が必要になります。WEBプログラマーは、常にブラウザの種類やバージョン、あるいはスマホの種類を意識する必要があります。なぜなら、ブラウザやスマホ(iOSかAndroidか)が異なれば、画面表示が異なることがあるからです。

また、昨今はスマートフォンが全盛の時代でもあり、PCとスマートフォンの両方を考慮したレスポンシブデザイン(自動的にPCやスマホの画面に併せて切り替わる)が基本となっております。

WEBプログラマーのメリットは、世界中の企業がWEBサイトを絡めたビジネスを基本としているため、案件や仕事が無数にあることです。

種類②スマホアプリプログラマー

使用言語:Java、JavaScript、C#、Objective-C、Swift、Visual Basic

スマホのアプリを開発するプログラマーのことです。インターネットの中心が、2012年頃より、PCからスマートフォンにシフトし始めたため、大きな需要があり、今後もしばらくは続くでしょう。

スマホアプリの開発の難しいところは、AppleやGoogleの審査を通過しないといけないところです。なぜならスマートフォンアプリのダウンロードの90%以上は、AppStoreかGooglePlayから行われるので、ここに掲載するためには、審査を通過しなくてはいけなく、スマホアプリプログラマーは、ルールを意識して、開発を行います。

また、iPhoneやAndroidの新しい機種が発売される毎に、それらの機種に対応していく必要があります。特にAndroidは、バージョンや機種が多く、対応するのが非常に大変です。そして多くの人にダウンロードしてもらうアプリを作るには、iOSとAndroidの両方にアプリを作る必要があり、労力も2倍になります。

そして、業界にはiOSとAndroidの両方を開発できるエンジニアはほとんどおらず、大抵のエンジニアはどちらかに注力して対応することが多いです。

種類③ゲームプログラマー

対象言語:C++、C#、JavaScript、Swift、Ruby、Lua

ゲーム言語で最も使われるプログラミング言語は、C#です。その理由は「Unity」などのゲーム開発に特化した開発環境が出てきたためです。WindowsとMacに対応しています。Unityを使えば、ゲームによく使う機能がライブラリーになっているため、ゼロから開発することなく、それを利用することができます。

また、ゲームと言っても、主に3種類あります。

(1)ブラウザゲーム
(2)スマホゲーム
(3)コンシューマーゲーム

それぞれ、扱う言語や環境が異なります。

ゲームプログラマーでキャリアを積むには、「ヒット作」に携わる必要があります。そのためには、ヒット作に所属する運も必要となってきます。ヒット作のメンバーに呼ばれるために、コミュニケーション能力があると、なお良いです。コミュニケーション能力があれば、アピールしやすい点が多々あります。

また、ゲームプログラマーは、業務時間が長いと言われるプログラマーの中でも、特に拘束時間が長いといわれるジャンルであり、大手ロールプレイングゲームなどは、リリースまでほぼ会社で寝泊まりをすることが、かつてはあったそうです。また現在は、リリース後に一カ月間の休暇がとれるなど、人気シリーズに関われば、このようなメリットがあります。

④業務系プログラマー(業務システムやパッケージ)

対象言語:Java、VB、C#、JavaScript、

業務系プログラマーとは、主に下記のようなシステムを扱うエンジニアのことです。

経理システム
基幹システム
在庫管理システム
ECサイトの開発

企業の専用システムの場合もあれば、パッケージ製品を作るエンジニアの場合も業務系プログラマーにあたります。

企業に属して、その会社の業務系プログラマーになる場合は、新規開発は少なく、主に保守開発というメンテナンスが主業務になります。拘束時間が少なめというメリットがありますが、(一概に言えませんが、私の経験で)似たような開発案件が多く、キャリアに限界を感じて転職する人がいるようです。

業務委託で、企業に派遣される業務系プログラマーであっても長期案件が多く、上記と同じようなキャリアの壁を感じている人も多いです。

ソフトウェア会社に所属し、経理システムなど、クラウドサービスを提供する場合は、新機能の実装や、最新のセキュリティ要件に対応する案件や、特定のクライアント用のカスタマイズ案件がメインとなります。

⑤組み込み系プログラマー

対象言語:Java、C#、C++

プログラマーの中では、地味なイメージがありますが、皆さまの持っているスマホ、デジカメ、電子レンジ、エアコン、テレビ、掃除機など、電子機器には、必ず組み込み系プログラムが、機械を制御するために存在しており、これが無ければ動くことはありません。

プログラムだけではなく、ハードウェアの知識も必要となり、他のプログラミング言語よりも専門性は高くなります。また、モノづくりにダイレクトに関わるため、「形あるものを作る」という醍醐味があります。しかし、WEBプログラマーや、スマホアプリのプログラマーと比べると、地味な印象はぬぐえません。

しかし、これからはIoT(Internet of Things)の時代に突入し、注目のプログラム技術になると考えます。さらに組み込み系エンジニアは不足しており、今から目指すのも、良い選択肢と言えます。

⑥汎用系プログラマー

対象言語:COBOL、FORTRAN、C++、Java

汎用系とは、通常のサーバーなどの機器ではなくIBM、富士通、日立製作所、NECさんなどの大手ITベンダーが開発した汎用コンピューター上で、COBOLなどを使った基幹システムの開発です。例えば

国税庁のシステム
年金のシステム
銀行のシステム

といった、巨大なシステムに、汎用コンピューターが導入されるため、その開発案件に使われます。正直、現在20代の若い方がプログラマーを目指すのは厳しい業界だと思います。筆者も元汎用機の保守開発を行っていましたが、そこで扱う環境は、他では全く通用しない独自の仕組みのため、WEB系・スマホ系が全盛の中、プログラマーがこの業界を目指すのは、お勧めはしないと言わざるを得ません。

しかし、そのなかでメリットもあります。

例えば国税庁のプログラムは現在もCOBOLがメインですが、これを最新のJavaなどに置き換えるには、天文学的な予算がかかるため事実上不可能です。なぜなら何十年と保守開発された、ソースコードやライブラリーは、あまりに巨大で、また税金という1円も間違えることができないシステムの性質を考えると、置き換えるのが難しく、汎用コンピューターが無くなることも考えられないからです。

つまり、メリットとは、汎用コンピューターやそのプロジェクト(国税局や年金、銀行)など業務知識を蓄えると、変わりの人材がそもそもいないため、その業界で食べていくことができると私は考えます。

⑦AIプログラマー

対象言語:Python

AIプログラマーの定義は、少しあいまいで「データサイエンティスト」あるいは「AIエンジニア」とも呼ばれることがあります。この辺は会社によって呼び名が異なります。

AIプログラマーは、単にプログラミングができるだけでは不十分であり、統計学や数学的な知識が必要とされるため、この職種に就く人は、数学の分野において博士課程を終了するなど高い専門性と知識が求められます。

具体的には、AIが処理しているデータには様々なものがあります

◆AIが処理しているデータの例

・画像処理
・音声処理
・テキスト処理
・位置情報処理

これらをAIに処理させるためのアルゴリズムやパラメータの変更を行うのがAIプログラマーです。他のプログラム言語のように、プログラムの勉強だけではなく、高度な専門知識が必要とされるため、他のプログラミング言語からの変更は難易度がかなり高いものとなります。

その分、市場にはAIプログラマーはほとんどいないため、給与も他のプログラマーよりも高くなります。もし、この記事を読んでいるのが高校生であれば、AIプログラマーを目指すなら、大学の専攻も統計学や数学についての博士号を視野に入れるべきでしょう。

プログラマーのまとめ

本日はプログラマーの種類について解説いたしました。もちろんプログラムの本質(アルゴリズムの考え方)は、どのプログラマーであっても変わりませんし、業務知識が豊富であれば、重宝されますが、例えば汎用コンピューターのプログラマーが、スマホアプリの開発を行うことは困難ですし、その逆もしかりです。

漠然と「プログラマーになる!」と決めている人は、どんなシステムや開発に携わりたいのか、もう一歩踏み込んでイメージしなくては、将来のキャリアを誤ることもあります。

そんな方々に、今回の記事を呼んで、「プログラマーの種類」を把握するキッカケとなれば幸いです。

IT系企業の「株式会社インターファクトリー」も人材を募集中!

弊社インターファクトリーは、ECプラットフォーム事業を行っておりマザーズに上場している企業です。

株式会社インターファクトリー

弊社では、主にITエンジニアの人材を募集しております。詳しくは下記URL先より、最新の募集要項を確認してみてください。新卒も中途も募集中です。

株式会社インターファクトリーの新卒採用

株式会社インターファクトリーの中途採用

※時期によっては募集していない時期もございます。まずは上記のリンク先で最新の情報をご確認ください。

セミナー情報