今日も猫田さんと牛山くんは雑談ばかりしています。
猫田さん、知ってました? プログラマーって、いろいろな種類のプログラマーがいるようですよ
えっそうなの? みんな同じような仕事をするのだと思ってた
牛山くんの言うように、プログラマーの仕事の幅はとても広いですよ。そして、仕事内容によって使うプログラミング言語も変わります
えー じゃあテキトーにプログラミング言語を選んだら、まったく使いものにならないかもしれないじゃん!
残念ながら、そのとおりです
プログラマーとして働きたいのなら、どんな仕事をしたいかまで明確にしておくと良いです。そうでないと、せっかくプログラミング言語を学習しても仕事に活かせないこともありますからね。
この記事では、プログラマーの種類とそれぞれのプログラマーが主に使用する言語も紹介します。また、混同されがちなシステムエンジニアとの違いもお伝えしますので、ぜひ最後までお読みください。
代表的な7種類のプログラマーを紹介!
まずは、プログラマーの種類を紹介します。メジャーな7種類をピックアップしましたよ
- Web系プログラマー
- アプリ系プログラマー
- ゲーム系プログラマー
- 組み込み系プログラマー
- 汎用系プログラマー
- オープン系プログラマー
- 通信系プログラマー
①:Web系プログラマー
まずは、web系プログラマー。もっとも身近な感じがするのは、このweb系プログラマーでしょうね。通販サイトやSNSなど、さまざまなwebサイトを作るのが仕事です
そうそう! プログラマーのイメージってそんな感じだよね
たとえば、通販サイトでは商品をカテゴリーで絞って検索できます。この検索システムこそ、プログラマーが構築したプログラムによって動いているものです。web系プログラマーに必要な言語は、主にJava、PHP、 JavaScript。また、マークアップ言語と呼ばれるHTML、CSSの知識も重要です。
②:アプリケーション系プログラマー
続いては、アプリ系プログラマーですね。二人とも、よくアプリを使っているでしょう。そのアプリを作るのが彼らの仕事です
なんかすごそうですね
うん。 お金の匂いがプンプンする!
現在は、パソコン用のアプリケーションだけでなくiPhoneやAndroid用のアプリもたくさんリリースされています。日常的に複数のアプリケーションを使っている人がほとんどでしょう。
アプリ系プログラマーが使用する言語は、Java、C、Ruby、PHPです。スマートフォン用に開発する場合、Androidには Kotlin 、iOSには Swift と求められる言語が異なります。
③:ゲーム系プログラマー
続いては、スマートフォンで遊ぶゲームやオンラインゲームなどを制作するゲーム系プログラマーの紹介です。
そっか……。ゲームもプログラミングで動いているんですね
ゲームはヒットしたらでかいよなぁ。好きなものを仕事にできるんだから、ゲーム系プログラマーになりたい人は多そうだね
猫田さんは派手な世界を想像しているようですが……実際のゲーム系プログラマーの仕事は、もっと地味なものが多いです。キャラクターの動きや場面転換、効果音などをイメージ通りに再現するためのコードを打ち込みます。
ゲームの種類によって異なりますが、ゲーム系プログラマーが主に使用する言語はC++やC#です。また、キャラクターの動きの軌道をプログラムする際には、、プログラミング言語の他に数学や物理の知識が必要なこともあります。
数学や物理の知識……うーん、一気にハードルが上がったなぁ
④:組み込み系プログラマー
意外に感じるかもしれませんが、家電製品や電子機器にもプログラムが組まれているんですよ
たしかに、最近の家電はハイテクですからね。言われてみれば、納得です
スマートフォンやカーナビにはもちろん、エアコンや洗濯機にもプログラムが使われています。このような家電のプログラミングを行う人たちのことを、組み込み系プログラマーと呼びます
たとえば、エアコンをつけるだけで部屋の温度を快適にできるのは、プログラムが組み込まれているおかげです。
この分野は需要がなくなることがないので、プログラマーの中ではかなり安定しています。ただし、IoT技術の発展などにより必要なスキルはどんどん変化していきます。また、組み込む製品ごとにシステムをカスタマイズしていく技術が求められるので、常に新たなことを学び続ける必要があるでしょうね。
組み込み系プログラマーによく使われる言語は、Java、C、C++です。
⑤:汎用系プログラマー
続いて紹介する汎用系プログラマーは、二人にはあまり馴染みのないプログラムを扱います。金融機関や政府の機関向けの高性能な集中処理型のコンピューターシステムを開発するのが仕事です
なんか、どんなことをするのかの想像すらつかないね
そうかもしれませんね(笑)
大量の機密データを扱うという性質上、独自の言語仕様を持っていることがあり、他のシステムとは互換性が無いのが特徴です。大量の機密データを扱う大規模なシステムを構築します。閉じた世界を構築するのも大きな特徴ですね
主な使用言語は、 COBOLという事務処理のシステム化を得意とする言語です。 PL/IやJavaやCも使用されます。
6:オープン系プログラマー
次は、オープン系プログラマー。複数のコンピューターを繋いでシステムを構築するのが主な仕事です。顧客情報や病院のデータベースなどを開発します
具体的な例を挙げると、患者の情報を複数のパソコンから確認できる電子カルテなどです。先ほど紹介した汎用とは対照的に、さまざまな言語を使用することができ、柔軟性の高いシステムを構築できるのが特徴ですね。
PHPやJavaがよく使用されますが、PHP、Ruby、Pythonなどさまざまな言語を用いることもできます。
7:通信系プログラマー
最後に紹介するのは、通信系プログラマーです。ネットワーク機器をはじめとしたデータの送受信に関するプログラムを開発します
ルーターやモデムといったネットワーク機器やテレビ会議、IP電話を使ったシステムの開発に関わる仕事です。クラウドサービスの普及が進んでいるので、関連する知識も必要でしょう。通信系プログラマーが主に扱い言語は、Java、C、C++です。
プログラマーとシステムエンジニアとの違い
ちょっと話題は変わりますが、プログラマーとシステムエンジニアの違いを説明しますね
そういえば、その2つの違いがよくわからなかったんですよね
牛山くんのように混同している人も多いのですが……実はプログラマーとシステムエンジニアは違う仕事なんですよ
プログラマーは、設計書を元にしてプログラム言語を打ち込み、システムを構築する仕事です。それに対してシステムエンジニアは、要件定義、基本設計、詳細設計をします。
クライアントとやり取りしたり要求に応えるためのシステムの設計をするのは、システムエンジニアのほうですね。
プログラマー就職後の選択肢
ねーキャニット先生、プログラマーとして就職した人が、のしあがるためにはどうすればいいの?
プログラマーとして就職すると、基本的にシステムエンジニア、プロジェクトリーダー、プロジェクトマネージャーの順にキャリアアップできる可能性があります。つまり、プログラマーの次はシステムエンジニアになるのが一般的です。
という……わかりやすい出世ルートはあるのですが、今はまだそこまで考えなくていいですよ。それよりもまずは設計書に従い、読みやすいプログラムを作成できるプログラマーになれるよう頑張ってください
プログラミングの仕事を続けていけば技術や知識が身につくだけでなく、基本的な設計方法や進捗管理についても理解できるようになります。これらの知識は、もちろんシステムエンジニアの仕事に活かせますよ。
また、あえてキャリアアップせずに生涯プログラマーとして進み続ける人やフリーランスで働く人もいます。このようにプログラマーには、たくさんの働き方があるのです。
まとめ:どんな仕事に就きたいのかを決めるのが重要
プログラマーの違いや働き方の違いなどを紹介しましたが、理解できましたか?
とてもわかりやすかったです
わかりやすかった!
今後どのような仕事に就きたいのか……それが決まれば学ぶべきプログラミング言語も決まるでしょう。その上で、必要な言語を重点的に学習するのが良さそうです。
また、少し気が早いかもしれませんが、 プログラマーとして就職するのか、それともフリーランスを目指すのか、そのあたりも決めておくと良いでしょう。そうすれば、将来のビジョンがどんどん明確になっていきます。