プログラミングを使う職業・種類をまとめてみた!【〇〇エンジニア】
「〇〇プログラマー」「〇〇エンジニア」と呼ばれる職業っていっぱいありますよね。
でも、それらの業務内容は全くと言っていいほど違ったりするのです。
今回は、その中でも「プログラミングをメインに使う職業」をまとめてみました。
- 「〇〇プログラマー」「〇〇エンジニア」と呼ばれる職業について
- それぞれに必要なスキル!
- それぞれどんなプログラミング言語が使われているか?
それでは紹介していきます。
Webエンジニア・Webプログラマ
Webエンジニアとは、WebサイトやWebアプリケーションの開発や運用に携わる職業です。
WebサイトやWebアプリケーションは、Webサーバーが欠かせないですが、クライアントのインターネットブラウザも欠かせません。
そこで、サーバー側の処理などを担うエンジニアをバックエンドエンジニアと呼び、逆に、クライアント側の処理などを担うエンジニアをフロントエンドエンジニアと呼びます。
バックエンドエンジニア
バックエンドエンジニアは、WebサイトやWebアプリケーション開発において、サーバー側を担当するエンジニアです。
バックエンドとは、サーバーサイドとも呼ばれ、
クライアント ⇔ サーバー
のサーバー側を意味しています。
つまり、クライアント(ユーザー)からは直接見えない、WebサイトやWebアプリケーションの「裏方」の部分を担うことになります。
バックエンドエンジニアは、このサーバーの環境構築を行い、サーバーでの処理をPHPやRubyといったプログラミング言語で書いていくことになります。
- プログラミング言語「PHP」「Ruby」「Python」などのスキルがあるとよい!
- 「Laravel」「Ruby on Rails」といったフレームワークのスキルもあるとよい!
サーバーサイドエンジニアも同じ意味でつかわれますが、Web開発に限らない呼ばれ方というイメージがあります。
フロントエンドエンジニア
フロントエンジニアは、Web開発において、バックエンドエンジニアの対立的な存在ともいえる職業です。
バックエンドがサーバー側を意味する言葉なのに対し、フロントエンドはクライアント側を意味する言葉です。
フロントエンドは、別名「クライアントサイド」とも呼ばれます。
なので、「システムがどのように動くか?」ではなく、「ユーザーにどう見えるか?」を作っていく職業といえるでしょう。
- HTMLとCSSとJavaScriptのスキルが必須!
- UI/UX設計の知識・スキルがあるとよい!
似たような職種に「マークアップエンジニア」が挙げられますが、すこしHTML/CSSのスキルが高いというイメージがある程度で、フロントエンドエンジニアとの定義の違いはあいまいです。
AIエンジニア
AIエンジニアは、大まかに分けて以下の二つの仕事があります。
- データ分析を行うデータサイエンティスト/アナリスト
- 人工知能を開発・実装するプログラマ
データサイエンティスト・データアナリスト
データサイエンティストとデータアナリストは、厳密には違うのですが、ほとんど同じ意味として扱われています。
どちらも、統計学などの技術を駆使して、データ分析することを主なお仕事とします。例えば、
- 夏は、冷たいものがよく売れる傾向にあるようです。
- 新店舗を展開するのであれば、A地区が良いと結果が出ています。
などのように、「データを分析した結果からわかること」「その情報を用いた最善策・対策などを導くこと」などです。
- プログラミング言語「Python」、または「R」のスキルがあるとよい!
- 統計学の知識が必要!
機械学習エンジニア
このように呼ばれるのは、実際に人工知能を開発・実装するプログラマです。
Pythonなどのプログラミング言語を用いて、実際にデータを学習させ、新しいAIを作りあげることをお仕事とします。
人工知能を作るにも、話題のディープラーニングや強化学習など、様々な技術があります。
それらの中から、
「どの技術を使うか?」「どのモデル・アルゴリズムを使うか?」
を決めることも機械学習エンジニアのお仕事といえるでしょう。
まとめると、機械学習エンジニアの主な仕事は、
- AIのモデルや学習に使うアルゴリズムを決定すること
- 必要な学習データを決定し実際に学習させること
といえるでしょう。
- プログラミング言語「Python」、または「C++」のスキルがあるとよい!
- 機械学習の技術やフレームワークの知識があるとよい!
- 統計学・線形代数学・微分積分学の知識があるとよい!
アプリケーションエンジニア・スマホアプリ開発者
これからの時代、スマホアプリの開発者は欠かせません。
スマートフォンの二大OSは、「Android」「iOS」ですが、日本では「iOS」ユーザーが多く、海外も含めれば「Android」ユーザーのほうが多いです。
また、注意しなければいけないのが、それぞれのOSにあった開発をしないといけないという点です。
Androidスマホ用に開発したアプリをiOSのスマホで使うことができないのです。
正確には、Android専用のアプリはiOSでは使えず、その逆もしかりということです。
最近では、iOS開発に「Swift」、Android開発に「Kotlin」というプログラミング言語を用いることが増え来ています。
そして、これら二つのプログラミング言語の文法は非常によく似ているので、iPhoneアプリをAndroid版にする(移植する)こと、その逆も簡単になってきているのではないでしょうか。
また、どちらでも動くようなアプリを作れる環境も用意されていて、それらで作られた「iOS・Androidどちらでも動くアプリ」のことを、「ハイブリッドアプリ」と言ったりもします。
Androidアプリ開発者
AndroidはGoogleが開発したスマートフォン向けOSで、また、それらを搭載したスマートフォンのことも指しますね。
海外も含めれば、Androidユーザー数はiOSユーザー数を上回り、スマホOSのなかでトップシェアを誇ります。
- プログラミング言語「Kotlin」、または「Java」の知識が必要!
- 総合開発環境「Android Studio」の知識が必要!
iPhoneアプリ開発者
iPhoneはApple社が開発している「iOS」を搭載したスマートフォンで、日本は海外に比べ、異様に高いシェアを占めています。
iPhone・iOSのアプリを開発するには、「Mac」が必要です。
また、プログラミング言語「Swift」、または「Objective-C」のスキルが欠かせません。
そして、総合開発環境は「Xcode」というものを用います。
- プログラミング言語「Swift」、または「Objective-C」の知識が必要!
- 総合開発環境「Xcode」の知識が必要!
- 開発には「Mac」が必要!
組み込みエンジニア・IoTエンジニア
組み込みエンジニアとIoTエンジニアは少し似ていると思うので、一緒に紹介します。
組み込みエンジニア
組み込みエンジニアは、組み込み機器の製造にかかわるエンジニアです。
「組み込み」「組み込み機器」という言葉は、あまり馴染みがないかもしれません。
しかし、組み込み機器はとても身近なものであり、スマートフォンやテレビなど、身の回りの電子機器・電化製品のほぼすべてが「組み込み機器」と呼ばれています。
例えば、電子レンジがボタン一つで動くのは、中にボタンを押したときの動作がプログラムとして組み込まれているからです。
- アセンブリ言語や、プログラミング言語「C/C++」「C++」「Java」などの知識があるとよい!
- 回路や電子部品などの知識があるとよい!
IoTエンジニア
IoTエンジニアとは、IoT家電やシステムにプログラムを組み込むことを行います。
IoTとは、「Internet of Things」の頭文字をとったもので、よく日本語で「モノのインターネット」と呼ばれます。
これからの時代、家電製品やあらゆる電子機器がインターネットにつながり始めます。
例えば、エアコンがインターネットにつながっていることで、自分が家の近くについたら暖房や冷房を自動でつけてくれるなんてIoT商品もありますね。
IoTエンジニアは、このIoTの実現のために、IoT商品の開発に携わります。
- プログラミング言語「Python」「Java」「C/C++」などのスキルがあるとよい!
- 組み込み系のスキル・知識があるとよい!
- ネットワークやセキュリティの知識があるとよい!
ゲームプログラマ
ゲームプログラマは、その名の通りゲームを作るプログラマです。
どのようなゲームを作るかによって必要なスキルは変わりますが、物理演算などが必要なゲーム(3Dアクションゲームなど)には、数学と物理の知識が必要になってきます。
ゲームといっても、PCゲームもあれば、PlayStationやNintendo Switchといった家庭用ゲーム機で遊べるコンシューマゲーム、スマホゲームなど、いろんな種類があります。
それぞれの環境にあった知識も必要になってきます。
- 物理演算が必要な場合「数学」「物理学」の知識が必要!
- 「C++」「C#」「JavaScript」などのスキルがあるとよい!
- 「Unity」「Unreal Engine」といったライブラリの知識もあるとよい!
まとめ
プログラミングをメインに扱う職業はこんなにあることがわかりました。
なので、プログラミングを勉強し始める場合、どの分野でどういうことをしたいのかを念頭に置いて勉強しなけらば、少し遠回りになってしまうかもしれませんね。
以上「プログラミングを使う職業・種類をまとめてみた!【〇〇エンジニア】」でした!