こんにちは! ONE CAREER for Engineerです。
IT関連の企業に就職しようと思っているけど 、ネットで調べてもいろいろな職種が出てくるから分かりづらいと思ってませんか。こちらの記事では、IT関連の職種であるアプリケーションエンジニアについて解説します。
こちらの記事を読むと、仕事の内容やアプリケーションエンジニになるために必要な資格やスキルが分かります。
<目次>
●アプリケーションエンジニアってどんな職種?
・そもそもアプリケーションとは?
・アプリケーションエンジニアはどんな職種?
●他職種との違いは?
・どんな種類がある?
・システムエンジニアとの違いは?
・フロントエンドエンジニア・バックエンドエンジニアとの違い
●具体的な仕事内容は?
・仕事のフロー
・各フローにおける仕事の具体例
●アプリケーションエンジニアになるために必要なスキルは?
・プログラミングスキル
・知識
・資格
●具体的な学習方法は?
・学習の大まかな流れ
・学習におすすめの書籍、サイト
●企業によって働き方は変わる?
●アプリケーションエンジニアとして就職できる企業を探すには?
●この記事のまとめ
●先輩エンジニアの選考体験談が見られる! ONE CAREER for Engineerのご紹介
アプリケーションエンジニアってどんな職種?
そもそもアプリケーションとは?
アプリケーションとは、いわゆる「パソコンやスマートフォンで動作するソフトウエア」全般を指します。 スマートフォンやパソコン上で動作する「アプリ(アプリケーションの略称)」だけでなく、ウェブブラウザーでアクセスするSNSやネットショッピングのサイトなどもアプリケーションの一種です。
アプリケーションエンジニアはどんな職種?
アプリケーションエンジニアは、その「アプリケーション」の開発全般を担当するエンジニアです。
スマートフォンやパソコンなど、さまざまなプラットフォームで動作するアプリケーションを開発することが仕事です。他職種との違いは?
どんな種類がある?
「アプリケーションエンジニア」といっても、その仕事内容は多岐にわたります。基本的には開発企業ごとに得意領域があり、その領域に応じて開発する内容が変わってきます。大きく分けると、以下の4つに分類されます。
業務系
ワークフローや勤怠、経費精算といった企業内で使用するアプリケーションを指します。以前から稼働しているシステムと連携することもあれば、業務システム全体を一新することもあります。いずれにしてもその業務に対する知識が重要になります。
ウェブ系
パソコンやスマートフォンのウェブブラウザーからアクセスして使用するアプリケーションを指します。操作画面と実際の処理を行う部分では使用するプログラミング言語が異なることがあります。
スマホ系
スマートフォンにインストールして使用するアプリケーションを指します。スマートフォンで使っているOSによって開発環境や言語が異なります。
組み込み系
家電やATMなど、製品や装置にインストールして使用するアプリケーションを指します。他のアプリケーションよりハードウエアと密接に結びついているため、ハードウエアの知識も重要になります。アプリケーションエンジニアとは別に「組み込みエンジニア」と呼ばれることがあります。
システムエンジニアとの違い
システム開発を行うという点では、アプリケーションエンジニアとシステムエンジニアで仕事内容に大きな違いはありません。
ただし、アプリケーションエンジニアは大きなシステムのうちの一部(アプリケーション部分のみ)を担当するのに対し、システムエンジニアはインフラやシステム全体の開発を行う場合があります。
システムエンジニアの業務内容は企業や開発現場によってさまざまなので、場合によってはアプリケーションエンジニアと全く同じ業務をする場合もあるでしょう。
フロントエンドエンジニア・バックエンドエンジニアとの違い
アプリケーションは、主にユーザーが操作する画面部分を「フロントエンド」、ユーザーには見えない、サーバーが処理する部分を「バックエンド」の2つに分けられます。
フロントエンドとバックエンドをそれぞれ専任で行うエンジニアをそれぞれ「フロントエンドエンジニア」、「バックエンドエンジニア」と呼びます。アプリケーションエンジニアは、「アプリケーション」全体の開発を担当するため、場合によってはフロントエンドもバックエンドも担当します。
具体的な仕事内容は?
仕事のフロー
システム開発にはさまざまな手法があり、同じアプリケーションエンジニアでも系統により手法が異なることがありますが、業務系、ウェブ系で多く使われており、フローが分かりやすいのはウォーターフォールモデルの開発手法です。
主に「設計」「実装」「テスト」「運用」の段階に分かれており、水が流れるように各段階を進みます。進んだ後で前の段階に戻ることは基本的にはありません。
顧客の要求に合わせてシステムを「設計」し、必要な機能を「実装」し、機能が正しく動くか「テスト」し、実際に顧客がシステムを「運用」していくのをサポートするという流れです。
さらに上流には顧客の要求から解決すべき課題と目標を明確にする「要件定義」という段階もあります。主にITコンサルタントが行う業務ですが、設計を行うアプリケーションエンジニアが参画することがあります。特に規模の小さい開発の場合はすべての段階を少人数で全部行う場合もあります。
各フローにおける仕事の具体例
前述したウォーターフォール開発における仕事の例を紹介します。
設計
「要件定義」で決められた内容をもとにシステム化するための設計を行います。設計には「基本設計」と「詳細設計」があります。
基本設計
「どのような項目があるか」「項目はどのような配置になっているか」「項目の文字数や属性は何か」「何を入力したら何が出力されるか」など、外から見える部分の設計です。入力画面のイメージをHTMLなどで作成し「モックアップ(模型)」として顧客に見せ、確認を取ることもあります。
詳細設計
基本設計をもとに、内部での動作やデータベースとのやり取り、想定外のデータが入力された場合のエラー処理など、必要な処理を記述するものです。詳細設計をもとに、プログラマが実装を行います。
実装
詳細設計をもとにプログラマが実際のプログラムを作成します。プログラムのコードを書くのは、主にこの部分です。
テスト
プログラムが正しく動くかのテストを、テスト仕様をもとに行います。テストには主に4つの段階があります。
単体テスト
そのプログラムが正しく動くかどうかをテストします。テスト仕様書は主に詳細設計書をもとに作られます。場合によっては、テストに使用するためのプログラムを作成し実行することもあります。
結合テスト
各プログラムを連結させて処理を行い、正常に動くかを確認します。特にプログラム間のデータのやり取りが正しく行われているかをチェックします。
総合テスト
プログラムをすべて連結させて、システム全体として動作を確認します。テスト仕様書は主に基本設計書をもとに、さまざまなパターンを網羅して作られます。
受け入れテスト
本番環境(実際に運用を行う環境)でシステムを動かし、問題がないかを確認する最終テストです。顧客の環境で動かすため、顧客担当者が参画することもあります。テスト仕様書は主に要件定義書から作成され、要件定義の内容を満たしているか検証します。
運用
実際にシステムの運用が開始されることを「リリース」と言います。旧システムからの移行や、仕様変更によるトラブルの発生に対応します。
リリース後、顧客と定めた期間運用サポートを行います。状況によっては長期間の保守契約を結び、不具合の対応や軽微なアップデートを行うケースもあります。
アプリケーションエンジニアになるために必要なスキルは?
プログラミングスキル
実装と詳細設計は、プログラミング言語の種類にかかわらずエンジニアとしての実務経験と知識があれば可能でしょう。
領域別に使用される言語の例をご紹介します。
・ウェブ系:JavaScript、PHP ・スマホ系:Swift、Kotlin ・組み込み系:C、C++、Python
またそのほか、アプリケーションの画面部分に使用するHTMLやCSSの知識が必要となる場合もあります。
知識
ネットワークに関する知識
アプリケーションの種別にかかわらず、インターネットを経由しないで使用するアプリケーションはほぼ存在しません。
通信プロトコルの知識や、ネットワークがどのようにつながっているのか、ウェブブラウザーがどのようにページを表示しているのか、といった知識は必要になります。
UI、UXに関する知識
「UI」は「ユーザーインターフェース」、「UX」は「ユーザーエクスペリエンス」の略称です。アプリケーションには必ず利用するユーザーが存在します。
アプリケーションのデザインや外観などユーザーの視覚に触れる情報が「UI」、ユーザーがそのアプリケーションで得られる体験が「UX」です。
どのようにそのアプリケーションを利用するのかを正しく理解し、適切な体験を提供することが重要であるため、UI、UXに関する知識が必要になります。
資格
アプリケーションエンジニアとして活躍するためにも、取っておくと良い資格を紹介します。
これらの資格取得は必須とはいえませんが、取得することで「知識がある」ことの証明となりますので、就職活動などで有利に働くことでしょう。
こちらの試験は、HTML5、CSS3、JavaScriptを対象とするものです。その中の1つであるHTMLは、ただ画面を表示するためのものではなく、今ではパソコン、タブレット、スマホ、電子書籍、カーナビなど、アプリケーションエンジニアが関わるさまざまなプラットフォームに対応しています。
HTMLの資格取得を推奨している企業もあるため、資格があって損をすることはありません。「HTML5プロフェッショナル認定試験」はレベル1、レベル2があり、レベル2まで取得するとWebプロフェッショナルであることを証明できます。
プログラミングやITに関する知識を証明する資格としては、国家資格である「基本情報技術者試験(FE)」が最適です。顧客によってはこの資格を持っていることがプロジェクト参画要件に入る場合もあります。上記で説明したプログラミング知識やネットワーク知識はこの試験で求められる範囲がベースとなっているため、アプリケーションエンジニアを目指すのであれば取得のための学習を行うことが第一歩となるでしょう。
具体的な学習方法は?
それでは、アプリケーションエンジニアになるためにはどのような学習が必要なのでしょうか。大まかな流れを説明します。
学習の大まかな流れ
何かしらのプログラミング言語を学ぶ
まずはプログラムを作成して動かしてみることが重要です。
プログラミング言語は多くありますが、最初に学ぶのであればJavaがおすすめです。
Javaはアプリケーションエンジニアに幅広く使用されている言語のため、他の言語を学ぶ際のベースとしても最適です。
プログラミング言語のフレームワークを学ぶ
フレームワークは、アプリケーション開発をするにあたり、使われる処理やデータ構造などをまとめたテンプレートともいえるものです。アプリケーション開発ではプログラミング言語の他にフレームワークの知識も要求されます。プログラミング言語でJavaを学んだのであれば「Spring Framework」というJavaプラットフォーム向けのフレームワークの使用をおすすめします。
スマホ系エンジニアであれば、それぞれのOSに合わせたアプリフレームワークを学習すると良いでしょう。
実際にアプリを作ってみる
プログラミング言語やフレームワークを学習したら、実際に小規模アプリを作ってみましょう。プログラミング知識だけではなく、どのような画面にするか、どのように画面を移動するかなど、設計からテストまで経験することが重要です。
学習におすすめの書籍、サイト
独学で学習を進める際に有用な書籍やサイトを紹介します。
プログラミングの基礎を学習できるサイト
JavaやRuby、PHPといったアプリケーションエンジニアが習得すべきプログラミング言語のほとんどに対応したプログラミング学習サイトです。特に、「プログラミングに振れたことのない」初心者向けでプログラミング言語の基礎から学習できます。
Java系の本
Javaの学習をするのであれば、初心者にもやさしい書籍が数多く出版されています。
ここでは、特に初心者へおすすめする書籍を紹介します。
Javaの基本的な知識を身に着けることが可能な一冊です。Javaのプログラミングを通して、オブジェクト指向の基本的な知識を得ることが可能です。
・Spring Framework超入門~やさしくわかるWebアプリ開発
Javaのフレームワークの1つである「Spring Framework」を学習できます。フレームワークとは何か、なぜフレームワークが必要なのか、といった基礎的な内容から学習できます。
HTML/CSSの本
ウェブ系や業務系のエンジニアを目指すのであれば、HTMLやCSSを使ったデザインの知識は不可欠です。
・1冊ですべて身につくHTML & CSSとWebデザイン入門講座
HTMLとCSSを利用したデザインの知識が身につく1冊です。 ウェブブラウザーがどのようにページを表示しているのか、といった基礎知識だけでなく、実践に沿ったデザインとその実装方法を紹介しています。
こちらは、HTML上級者向けの1冊です。HTMLの細かい仕様や挙動について解説されており、アプリ開発者としてさらに専門知識を身に着けることが可能です。
UI/UXに関する本
・UIデザインの教科書[新版] マルチデバイス時代のインターフェース設計
スマートフォンやタブレットをはじめとする、さまざまなデバイスを加味したデザインをどうすべきかについて学べる1冊です。前述のHTML/CSSの書籍とあわせて学習することで、画面デザインの基礎的な知識を身に着けることが可能です。
iOS/Androidの本
Android開発の基礎知識を身に着けられる一冊です。スマートフォンに関する基礎知識だけでなく、Androidアプリ開発に採用されているプログラミング言語であるKotlinの知識も身に付きます。
・Swift UI対応 たった2日でマスターできる iPhoneアプリ開発集中講座
iOSアプリ開発をするための知識がまとめられている一冊です。アプリ開発をするために必要なXcodeのインストールから解説していますので、初心者でも挫折せずに学習を進めることが可能です。
ネットワークに関する書籍
ネットワークを含む、インフラの知識が包括された入門書です。新人エンジニアに向けた書籍であるため、未経験でも読みやすくまとめられています。
企業によって働き方は変わる?
アプリケーションエンジニアとして就職する場合、企業によって働き方も業務範囲も異なります。企業規模よりは、その企業が「何を提供しているか」が重要です。例えばSIerのように受託開発がメインであれば、顧客の状況に対応した働き方になりますし、他社と分業していて限られた工程を担当する場合もあります。自社でアプリケーションを提供している会社であれば、顧客は不特定多数となり、要件定義も具体的な顧客がいる場合とは異なった形になります。すべての工程を自分の会社で行うこともあります。
アプリケーションエンジニアとして就職できる企業を探すには?
アプリケーションエンジニアとして就職する場合、どのように企業を探せばいいでしょうか。未経験の場合「未経験OK」で募集をしている企業を調べる必要があります。
新卒であれば未経験が前提のため、「アプリケーションエンジニア 新卒」と検索するのも良いでしょう。
「未経験」といっても「職種未経験」「業界未経験」など、完全未経験を前提としていない場合もありますが、完全未経験でもOKな企業もあります。
応募の際には入社後の研修内容や分からない単語を確認しておくことが重要ですので、条件も含めしっかりチェックしておきましょう。また、気になる企業の募集要項をチェックすることも重要です。中途の場合は求められるプログラミング言語や経験が明記されていることがあります。自分に合致するものがあれば有利になりますので、さまざまな企業を見て傾向を確認してみると良いでしょう。
この記事のまとめ
ここまで解説してきた、アプリケーションエンジニアについてのまとめを紹介します。
・「アプリケーション」の定義は広い ・企業によって、開発するアプリケーションは異なる ・「どのタイプのアプリ」を開発したいかに応じて企業を選ぶと良い
「アプリケーション」の定義は広く、企業ごとに得意とする領域が異なります。広い領域の知識を求められますが、アプリケーションの種類にかかわらず「利用者が触れる部分を開発する」という点については共通しています。
利用者が触れる部分を開発したいのであれば、アプリケーションエンジニアを目指してみてはいかがでしょうか。
先輩エンジニアの選考体験談が見られる! ONE CAREER for Engineerのご紹介
エンジニア就活をこれから始める、今まさに選考を受けている皆様へ、このような悩みはないでしょうか?
「総合職やビジネス職ばかりで、エンジニア職の体験談が見つからない」「内定を獲得した先輩が、どんな開発経験を積んでいたのか/どんな対策をしていたのか知りたい」
こういった悩みをお持ちの方に向けて、エンジニア職特化の就活サイト、「ONE CAREER for Engineer」をリリースいたしました!
▼ONE CAREER for Engineerエンジニアや技術職の就活・選考体験談を探す ※選考体験談の閲覧には、別途会員登録が必要です。
ONE CAREER for Engineerではどんなことができる?
1. エンジニア特化の選考体験談が見られる!
エンジニア人気企業を中心に、先輩のエントリーシート(ES)や選考体験談を公開中です。
エンジニア就活ならではといえる、「コーディングテスト」の体験談も多数公開しています!
2. 登録いただいたプロフィール情報をもとにポートフォリオを自動生成!
「ご自身の技術経験を企業へどう伝えよう……」とお悩みの方は、こちらの機能をご活用ください!
3. エンジニア職の選考体験談投稿で謝礼(Amazon ギフト券)をもらえる!
ご自身の選考の体験談をご登録いただくことで、謝礼(Amazonギフト券)をプレゼントしております!
エンジニア就活をこれから始める方、選考対策にお困りの方は、ぜひこの機会にご登録をお待ちしております!
(Photo:LanKogal/Shutterstock.com)