お問い合わせは今すぐ!お気軽に!

Topics / Blogお知らせ・ブログ

プログラマーの種類とは?Web系から組み込み系まで、詳細に解説!

こんにちは、MiYです。

プログラマーとは、コンピューターのプログラムを作成する人のことです。プログラマーはシステムエンジニアが設計した仕様書に基づいて、プログラミング言語を使って正確なソースコードを作成します。ただ一言でプログラマーといっても、実はWeb系やアプリケーション系、通信系など、それぞれの分野によって求められるものが変わってきます。ここでは、そんなプログラマーの種類とそれぞれどんな知識が必要なのかについて解説していきます。

1.プログラマーにはどんな種類がある?

プログラマーには、多種多様なスタイルがあります。もしあなたがプログラマーを目指しているのであれば、自分が興味のあるプログラマーをフォーカスしておくと、努力すべき方向性も見えてきて、実現性が高まります。

1-1.Web系プログラマー

・仕事内容

Web系プログラマーの仕事内容は、Webサイト周辺のプログラミングとシステム開発を行います。例えばアマゾンで書籍を購入する時、まずはカテゴリーから「本」を選択します。そして「本」カテゴリーの中から、例えば「普通免許」と検索すると、「普通免許」に関連する書籍が表示されます。この一連の流れは、Web系プログラマーが書き上げたプログラムによって機能しています。このようにユーザーが入力したキーワードに最適な情報を羅列する「検索機能」は、Web系プログラマーの重要な仕事の一つです。またFacebookやインスタグラムのようなSNSにおける新しい機能を装備するのも、Web系プログラマーの仕事です。Web系プログラマーには3種類あり、ユーザーが触れる部分を開発する「フロントエンド」、サーバーなどのユーザーには見えない部分を開発する「バックエンド」、更にシステム開発全般を担う「フルスタック」があります。フルスタックのプログラマーは、フロントエンドやバックエンドのプログラマーが行う業務をすべて行うため、幅広い知識が要求されます。

・使用言語

Web系プログラマーが使用する言語としては、「HTML」「CSS」「JavaScript」「Java」「PHP」「Ruby」などがあります。フロントエンドとバックエンドで、使用するメイン言語は異なります。フロントエンドでは基本的にユーザーが見るものを開発するため、HTMLやCSS、JavaScriptの知識が必要になります。バックエンドでは、JavaやC+、C++のようなコンパイル言語(入力したコードをコンピューターが理解できるように出力できる言語)やPerl、PHP、RubyやPythonのようなインタプリタ言語(入力したコードを機械語に翻訳しながらプログラムを実行する言語)がメインとなっています。そしてフルスタックの場合は、フロントエンドとバックエンドが使用しているプログラミング言語を抑えている必要があります。

1-2.アプリケーション系プログラマー(アプリ開発者)

・仕事内容

アプリとは、スマートフォンに入れて使えるソフトウェアのことです。最初はパソコンの世界から誕生しましたが、iPhoneの登場をキッカケに人気が普及しました。そんなアプリケーションのプログラミングを担当するのが、アプリケーション系プログラマーです。有名なInstagramは写真SNSアプリの代表格ですが、この他にも翻訳アプリやマップアプリ、ゲームアプリなど多くの種類があります。そんなアプリには、大きく分けて3種類あります。

  • Webアプリ
  • ネイティブアプリ
  • ハイブリッドアプリ
  • 業務系アプリ

近年急速に増えているWebアプリは、端末にインストールされているChromeやSafariなどのブラウザを使って利用するものです。アプリをインストールせずに気軽に利用できるメリットがあります。ネイティブアプリとは、App StoreやGoogle Playからインストールして利用するアプリです。ハイブリッドアプリとは、Web系アプリとネイティブアプリの長所を取り入れたアプリです。業務系アプリとは、営業の売上管理や交通費計算といった作業を迅速かつ正確に行うためのアプリケーションです。

アプリケーション系プログラマーは、各アプリの目的や開発方法に合わせて使用言語を選択し、プログラミングを行います。スマホアプリのOS(オペレーションシステム)にはAndroidとiPhoneで使われているiOSの2種類があり、AndroidとiPhone両方でアプリをリリースする場合、両方のアプリを開発し一つのソースとして管理することになります。アプリケーション系プログラマーは、ソフトウェアやハードウェア、ネットワーク、データベースなどの幅広い知識を活かしながらアプリの開発を行います。

・使用言語

アプリケーション系プログラマーの使用言語は、何を開発するかによって異なってきます。Webアプリ開発では、Java, C, Ruby, PHPが一般的に使用され、スマホアプリ開発では、Swift(iPhone向け), JavaやKotlin(Android向け)が使用されています。また業務系アプリ開発では、Java, C, C#が多く使用されています。アプリケーション系プログラマーは、複数の言語の習得が必須です。その中でもJavaは、アプリ開発でも使用されている範囲が広いため押さえておく必要があります。

1-3.ゲーム系プログラマー

・仕事内容

ゲーム系プログラマーの仕事内容は、プログラミング言語を用いてゲームの開発を行うことです。ゲーム系プログラマーは、仕様書や企画書に沿ってプログラミングを行います。クリエイターやデザイナーとコミュニケーションを取りながら、キャラクターの動きやBGM・効果音などの音の設定をイメージ通りに実現するようなソースコードを書きます。アクションの軌道をプログラムする際には、数学や物理の知識が必要とされます。

・使用言語

ゲーム開発に使用される言語は企業によって異なりますが、コンシューマーゲームの場合はC++、ソーシャルゲームの場合はC#が使用される傾向にあります。

1-4.組み込み系システムプログラマー

・仕事内容

組み込み系システムプログラマーの仕事は、家電製品や電子機器を制御するためのシステムのソースコードを書くことです。例えば、洗濯機などの家電製品にはマイコンと呼ばれる小型のコンピューターが組み込まれており、水が一定の量に達したときの動作を指示するためのプログラムが入っています。組み込み系システムプログラマーは、こういったプログラムを作成しているのです。

・使用言語

組み込み系システムプログラマーは、C、C++、C#が主に使用されています。またOSもTRONがしばしば用いられるため、ITRONと呼ばれる仕様についても知識が必要です。

1-5.汎用系システムプログラマー

・仕事内容

汎用系システムプログラマーの仕事は、一台のコンピューターで一括処理ができるシステムを開発するのがメインの業務になります。例えば、生命保険のデータベースの構築やクレジットカードの顧客データベースなどのシステムが挙げられます。

・使用言語

汎用系システムプログラマーは一般的にCOBOLが多く使用されています。その他にもJava、FORTAN、RPGといった言語が使用されています。

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

・仕事内容

オープン系とは汎用機のシステムをパソコンのシステムに移行しようする流れの中で、パソコンベースでシステム開発することです。UNIXやWindowsをベースにしたパソコンは導入コストも安く、常時アップデートが実施されているので安心です。オープン系プログラマーは、指定されたネットワーク内の複数のパソコンがアクセスできるようなシステムを開発します。例としては病院の患者データベースや電子カルテなどがあります。

・使用言語

オープン系プログラマーの使用言語は、JavaやPHPが主流ですが、最近ではRubyやPython、JavaScriptのWeb系開発言語や、オープン系のC+、C#、VB.netが使用されています。

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

・仕事内容

通信系プログラマーの仕事は、ネットワーク機器やテレビ会議などの通信に関する製品やシステムを開発することです。コンピューターのデータ送受信に関するプログラミング作成をメインに行います。その他には、社内の人事・給与システムなどの開発が挙げられます。

・使用言語

通信系プログラマーの使用言語は、C、C++、Javaが一般的に用いられています。

2.プログラマーにはどんなスキルが求められる?

2-1.プログラミングスキル

プログラマーには、プログラミングスキルは必須です。プログラミング言語は、プログラマーの種類によって変わってきますが、基本的には、プログラマーの職種で主流となっている、もしくは必要であるプログラミング言語を身に付けておく必要があります。IT業界は人手不足であり、プログラミング未経験でも就職や転職ができる企業が増えている為、その企業に入社してから、研修教育でプログラミングをみっちり身に付けることもできます。

2-2.負荷軽減スキル

ユーザーにとって処理能力が遅いシステムは使いにくく、不便さを感じることもあります。プログラマーでは、プログラミング能力に加えて、どのようなプログラムを組めば軽くなるか、使い易いシステムを作るにはどうすればいいかを考えるスキルが必要にあります。

2-3.アルゴリズムスキル

システム開発にあたっては、システムの処理方法について考える必要があります。これは、アルゴリズムといいますが、システムの負荷を軽減するためには、同じゴール・目標でも過程が重要になります。その為、負荷軽減スキルを学ぶためには、アルゴリズムのスキルは必須になります。

2-4.デバックスキル

システムを仕様書通りに動かすためには、正確なコーディング・プログラミングが必要になります。しかし、最初から仕様書通りに動かすことができないことが多くあります。これは、様々な理由がありますが、その理由の一つに、間違ったソースコードを入力していることが挙げられます。この間違ったソースコードを修正するデバッグと呼ばれる作業は、プログラマーにとって必要なスキルの一つと言えます。大規模な開発になると、コードも非常に長いこともあり、デバッグ作業には、緻密性と忍耐力が求められます。

2-5.コミュニケーションスキル

プログラマーに必要なスキルの一つとして、コミュニケーションスキルが挙げられます。プログラマーは、プログラムを書くことがメインの仕事ではありますが、時にはチームで動いたり、他の部署との折衝があったりと、協調性や交渉力が求められる場面もあります。

3.プログラマーとシステムエンジニアの違い

3-1.プログラマーの仕事内容とは

プログラマーの仕事内容は、プログラミング言語を用いてコーディングを行い、システムやソフトウェアを作成することがメインです。その他にも、システムエンジニアが作成した仕様書の設計通りに動かないときに、バグを発見し修正したり、アルゴリズムを考えたりと、プログラミング言語を駆使して、完成品のアウトプットを目指します。いわばプログラマーは、「プログラミングのプロフェッショナル」と言えるでしょう。

3-2.システムエンジニアの仕事内容とは

システムエンジニアの仕事内容は、プログラマーと似ていますが、異なる点があります。システムエンジニアは、顧客からの要望、ニーズを聞き出して、仕様書を作成し、それを製品・システムに落とし込む業務がメインとなります。また、コーディングもその企業のプログラマーが行ったり、システムエンジニアが直接コーディングしたりする場合があります。その為、プログラミング能力はもちろん、交渉・営業スキルといったコミュニケーションスキルも求められます。更には、大規模なシステム開発の場合は、チームでの開発になる場合もある為、調整力やマネジメント力といったスキルも必要になってきます。その意味では、プログラマーを束ねる指揮官、もしくはプログラマーとの二刀流がシステムエンジニアの役割と言えるでしょう。

以上を踏まえると、システムエンジニアは、プログラマーの仕事内容と被っていることもあり、プログラマーからシステムエンジニアへとキャリアチェンジも視野に入れることができます。

4.まとめ

以上、プログラマーの種類について見てきました。プログラマーの分野によって、使用される言語やスキルが異なっています。しかし共通して言えることは、プログラミング・デバッグ作業のような技術的スキルとコミュニケーション能力のようなヒューマンスキルは、どのプログラマーにおいても必要不可欠だと言えます。プログラマーを目指して就職・転職を目指す方は、自分が目指す領域のプログラマーに求められる内容をしっかりと理解した上で自己研鑽に励むことが重要です。

CONTACT US