種類によって内容が全然違う!6つあるプログラマーの種類を徹底紹介

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

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

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

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

プログラマー6種とは!

◆プログラマーの種類

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

まず、プログラマーと言っても、その種類ごとに使うプログラミング言語が異なります。プログラミング言語は世界で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円も間違えることができないシステムの性質を考えると、置き換えるのが難しく、汎用コンピューターが無くなることも考えられないからです。

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

プログラマーのまとめ

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

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

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です