コンピューターの専門家!|プログラマーの仕事とは
このコラムはITエンジニアを目指して就活をしている人を対象に、さまざまな情報をわかりやすく解説していきます。
このコラムは主に就活をしている学生を対象に、ITエンジニアを目指して活動する上で役立ちそうな情報をお届けしていくコラムです。もちろん就活生以外にも役立つ内容となっていますのでぜひご覧ください。
以前「プログラマーとエンジニアの違いについて」という記事を載せましたが、多くの人に読んでいただきました。なので今回は「プログラマー」に特化してその仕事を紹介したいと思います。
目次
プログラムとは
プログラマーとは、お客さまから求められたシステムが期待通りに動くよう、プログラムと呼ばれるコンピューターにやらせる仕事の命令書を書いていくという職業と言えるでしょう。
プログラムは命令書
そもそも「プログラム」とは一体何でしょうか?
なんとなくイメージは付くけど、という人も多いと思いますが、簡単にいうとコンピューターにやらせる処理(仕事ですね)を順番に書き出したもの、ということができます。
例えば横断歩道を渡ることを考えたとき、「右見て左見てもう一度右見て、手を上げて渡ろう」と考えると思いますが、この一連の行動を分解して順番に書き出したものがプログラムとなります。
プログラミング言語は人とコンピューターの仲介役
作成したプログラムをコンピューターに命令するために必要なのがプログラミング言語です。
例えば日本語で命令書(=プログラム)を書いてもコンピューターは理解してくれませんので、コンピューターが理解できるような言葉でプログラムを作成する必要があり、その理解できる言葉というのがプログラミング言語、という訳です。
プログラミング言語は例えば「C、Java、PHP、Python、Ruby、・・・」などなど数多くありますが、全て覚える必要はありません。
ゲームを作るならとか、サーバーを構築するなら、といった目的ごとによく使われるプログラミング言語があるので、必要なものを覚えれば良いでしょう。
プログラマーとエンジニアは違うのか?
一般的にはエンジニア(細かくはシステムエンジニア)とプログラマーの役割分担で言うと、お客さまが求めるものを定義して設計をするのがシステムエンジニアで、その設計どおりにシステムが動くようプログラムを書いていくのがプログラマー、となります。
したがって、プログラミング知識が無くてもシステムエンジニアは務まるし、システムエンジニアに必要なスキルがプログラマーに求められることはありません。
とはいえ、あくまでそれは一般論です。
それほど大きくない企業の場合、プログラミング知識を要求されるシステムエンジニアも必要とされたりします。実際、システムエンジニアという定義の中にプログラマーも含まれる場合もあります。
「ITエンジニアとプログラマの違い」で解説したとおり、今の時代は両者を明確に区別することにもはや意味はありません。軸足はどちらかに置くにしても、周辺のこともできるに越したことはなさそうです。
プログラマーに種類はあるの?
プログラマーには種類というよりも、どういう仕事内容に従事しているかで分けることができます。簡単なところでいくつかご紹介します。
- Webプログラマー
- アプリケーションプログラマー
- ゲーム系プログラマー
- 組み込み系プログラマー
Webプログラマー
ショッピングサイトやSNSなど、動きのあるWebサイトの開発などを行なっています。Webを閲覧するユーザーの目に触れる部分の他に、データを溜めたり処理したりするサーバー側も担当したりします。
アプリケーションプログラマー
パソコンやスマートフォンにインストールして利用するアプリケーションの開発を行います。インストールするハードウェアの性能を生かしながら使いやすいアプリケーションを開発しています。
ゲームプログラマー
アプリケーションプログラマーに似ていますが、ゲーム制作に携わるプログラマーのことです。ゲーム機も家庭用からパソコン、スマートフォンと多種多様で、それぞれで使い方も違います。そのような違いを考えて、より多くの人に使ってもらえるゲームを開発しています。
組み込み系プログラマー
身近な電子機器、例えばテレビや冷蔵庫、エレベーターなど、身の回りの電子機器の内部のプログラムを開発しています。チャンネルボタンを押せばそのチャンネルのTV番組が画面に映るなど、皆さんが普通に使っているものの中で動くプログラムを開発しています。
もちろんプログラマーの種類は紹介したこの4つだけではありません。もっと広大な活躍のフィールドが待っていますので、興味のある人はぜひ自分で調べてみてください。
プログラマーの将来性
プログラマーの将来性は大いにあると思います。
身近な電子機器を手に取ってみてもらえればわかる通り、新しいことがどんどんできるようになっています。つまりそれは新しいことができるプログラムが搭載されているからなので、この傾向はこれからますます拡大するIoTの世界(Internet of Things/モノがインターネットにつながる世界)になれば、一層顕著になるでしょう。
一方でAIにプログラムを任せようという話もありますので、自己研鑽を続けていく必要があるのがプログラマーなのかもしれません。