
このような疑問に答えようと思います。
私も学生時代には本当に悩んだ覚えがあります。現在学生でエンジニアを目指したいという人や今は全然別業種だけどアプリケーションエンジニアになりたいという方に是非読んでいただければ嬉しいです。

目次
アプリケーションエンジニアとは
いきなり定義の話ですいません。アプリケーションエンジニアとシステムエンジニアはこの記事では同じものと定義します。
アプリケーションエンジニアはユーザが求めるシステムを設計・作成・リリースまで全て実施できる技量を持ったエンジニアのことを言います。
年齢が上がると実際に手を動かすことよりも、多人数をまとめて大きなシステムを管理する立場を求められます。
注意ポイント
プログラマーとは役割が違います。プログラマーはアプリ作成の段階でプログラミング言語を使って仕様通りに実装する役割です。
設計段階でユーザーとの仕様決めにはあまり関与する役割
何ができればエンジニアなのか
アプリケーションエンジニアになるためには以下のような3つのスキルが必要です。
ポイント
- 設計スキル
- 実装スキル
- リリーススキル
エンジニア用語を使えばさらに細分化できますが、ここではできる限り誰にでもわかりやすいような表現をします。
設計スキルとは顧客と話をまとめどのようなシステムを作れば良いかを決める技術のこと
実装スキルとは設計通りにプログラミングを行う技術のこと
リリーススキルとはアプリケーションのリリースタイミングを調整し、リリース作業を行う技術のこと
日本企業では上記全てできるエンジニアをアプリケーションエンジニアと表現しています。
ここまでくると皆様のイメージするアプリケーションエンジニアと少し違う印象かもしれません。ドラマやアニメではパソコン上にたくさんの文字を打ちこむような表現がされていますが、実は実装スキルの中の一部でしかありません。
プログラミングだけできればそれで良いという話はではないので、注意が必要です。
でも安心してください!誰しもみんな初めは初めてです・・・
エンジニアとしての経験が少ない段階では上記3つを全てこなせと言われることはありませんし、必ず指導してくれる先輩も周りにいるはずです。
アプリケーションエンジニアになるためにどのように勉強すれば良いか
では、3つのスキルを手に入れるためにはどうしたらいいのか・・・勉強するしかありません!しかしどれからどうやって勉強すればいいの?というのが次の疑問だと思います。
実際に私が実施している方法を教えます。また、初学者だけでではなく新しい言語や技術を覚えるときにも実際に使っています。
結論だけ先に書きます。
ポイント
- 1つなんでもいいのでプログラミング言語を基本文法のところまで実践する(分厚い本を買っても最初の半分くらいまででOK)
- 学習した言語でHollow worldをwebブラウザに表示する
- 習得した言語でwebブラウザ、プログラミングの処理、データベースの3つを使ってデータベースから文字を取得しwebブラウザに表示する
- 習得した言語で一番良く使われるフレームワークを調べて導入する
- 自分が良く利用するサイトと同じ動きをするようなシステムを作ってみる
上記の5つを行えば大丈夫です。
そもそも、上記には設計スキルやリリーススキルはあまり入っていません。何故なら2つとも実装スキルを身につけていることを前提としたスキルで、かつ自分が入る会社や現場によって文化が違うからです。会社や現場に所属してから学べば十分間に合います!
では次に具体的に説明していきます。
プログラミング言語を基本文法のところまで実践する
自分が最初に学ぶ言語である場合、その言語が後々得意言語となる可能性が高いです。
なんの言語を習得するのが良いのか、私の考えですが就職もしくは転職サイトで募集が多い言語からやってみるのがおすすめで、現在だとPHPかJavaという言語を学習するの良いかと思います。「PHP 基本文法」とかで調べればネットの情報でも大丈夫です。
基本文法というのは順次・分岐・繰り返しとクラスの作り方や切り分け方ぐらいまでです。
ここではプログラミング言語の中身関する説明はしませんが、いつか記事として書きます。
学習した言語でHollow worldをwebブラウザに表示する
大体の言語の最初にHollo worldを表示するような物が多いです。何故Hollow worldという文言なのかは不明ですがまずは第一歩です。
重要なのはchromeなどのwebブラウザに表示するということです。参考書や参考文献によっては開発ツールに文字だけで出すような物もありますが、ネットで調べてwebブラウザに出すように頑張りましょう。
目指すのはchromeなどのブラウザで表示されるようなアプリです。できるかぎり本当のシステムに近い形にするように心がけましょう。
webブラウザ、プログラミングの処理、データベースの3つを使ってデータベースから文字を取得しwebブラウザに表示する
いきなり難しいと思ったかもしれませんが、どんな言語どんなアプリケーションでも共通して使う概念が表示(webブラウザなど)・処理(プログラム)・値(データベース)です。
この3つを使い画面上にデータベースの値を出すことができれば、プログラムの処理を追加し、それに対応する画面を増やすだけでアプリケーションは完成します。
おそらくここが最初のハードルとなります。参考文献がこの流れを誘導してくれていればより理解しやすいかと思います。もし、参考文献上にそのような記述がないときはインターネットを使いながら乗り越えましょう。
検索する際のキーワードを書いてお行きます。是非活用してください。
ポイント
- 自分で選んだ言語 ブラウザ表示
- 自分で選んだ言語 データベース接続
- 自分で選んだ言語 html 動的
上記3つの方法で検索をかければ文献は必ず見つかります。
一番良く使われるフレームワークを調べて導入する
フレームワークとは何か、つまり開発をするときの型のような物です。プログラミング言語毎に複数あります。さらに、年代によって流行り廃りがあり現場や会社によっても使われる物が違います。
なので、「自分が選んだ言語 フレームワーク 人気」などで検索し一番上に出てきたものを使うようにしましょう。英語が読めればなんの問題もないですが、日本語での説明や参考文献が多い方がいいです。
ちなみにPHPならLaravel ,JavaならSpring Bootがおすすめです。日本でも人気で多くの開発者が使っているので参考文献も多いです。
自分が良く利用するサイトと同じ動きをするようなシステムを作ってみる
自分が使うサイトを考えてみましょう。1つ例をあげるとAmazonの商品購入サイトがいいでしょう。
TOP画面には商品の一覧があり→クリックすると商品の詳細画面に飛びます→カートに追加→カートの商品を購入
このような流れを作ってみましょう。あくまでも学習の一環という前提なので、体裁(見た目)やログイン機能やセキュリティという少し難しい機能は一切不要です。もし、商品の登録処理が難しいようならまずはデータベースに直接データを入れて購入したらその商品がなくなるという半手動というものでも問題ありません。
いつか初学者向けの簡単なwebシステム作成に関する記事を書きたいと思います!
アプリケーションエンジニアの動くものを作成するという基本中の基本は習得できたと言えます。ここまではどのような立場の人であってもパソコン1つあれば到達することが可能です!
エンジニアとしての経験を得るためには
ここまでの手順を踏むことで現場に入ることができれば日々勉強することで十分スキルを積んでいくことが可能です。
日本のアプリケーションエンジニア採用で重視されるのは実務経験です。つまり経験を積むためには、なんらかの会社に所属しエンジニアとして働き給与をもらうこれが重要です。
しかし、会社に所属すると会社の要望に答えるのが前提となるため自分の積みたい経験以外のこともしなくていけません。
私たちアプリケーションエンジニアの強みは個人でも家で開発し、初期投資は少なく開発の経験をすることができます。個人の開発では給与という対価を得られませんが自分の好きな開発をすることができ、1つシステムを完成させればポートフォリオとして残すことができます。
エンジニア市場において、自らプライベートな時間を使いシステム開発を行っている人は意外と少ないです。ですので個人でも積極的にアプリ開発を行い技術的な経験を積んでいきましょう!
そもそも未経験で転職自体ができず、悩んでいるという場合は初期投資としてお金はかかりますが、プログラミング学校がおすすめです。実際にエンジニア経験のあるエンジニアにリアルな開発を教えてもらえるため現場に入ったときにも戸惑なく業務に従事できる可能性が高くなります。
また、プログラミング学校の課題として作るアプリケーション自体を改変することで自分用のポートフォリオ作成にも役立ちます。