≪DAINOTE編集部推薦のDAIが実際に取材、体験してみて、特にオススメのプログラミングスクール一覧≫

【第1位】TechAcademy: 未経験から副業でWeb制作し、副業で月10万円ほどを目指したい人向け! | レビュー記事
【第2位】CodeCamp: 未経験から副業でWeb制作し、副業で月10万円ほどを目指したい人向け!業界最安値! | レビュー記事
【第3位】RaiseTech: Java, AWSなどを学んで、現場で必要とされているスキルを学ぶならここ! | レビュー記事
【第4位】ポテパンキャンプ:サーバーサイドエンジニアに未経験から転職して年収700万円代を目指したい人向け! | レビュー記事
【第5位】Aidemy:Python・AIに特化したプログラミングスクール。 | レビュー記事

こんにちは、DAIです。
よく、これからエンジニアに独学してなりたい人に質問をもらうのですが、

  • エンジニアになるために、どんな言語を学ぶべきかわからない
  • 独学だとどんな教材で学べばいいかわからない

という相談が多いです。

そこで、僕がもし一から独学でエンジニアになる場合に、どのような方法でエンジニアになるか、学習の方法をまとめてみたいと思います。

ちなみに僕のプロフィールとしては、

  • 過去プログラミングスクールに勤務実績あり
  • エンジニアリングを仕事でやっています
  • エンジニアの採用支援もフリーでやっています

となっています。

エンジニアになれる条件とは

未経験でエンジニアになるための条件は、主に二つです。

  • ソフトスキル:自分で課題を解決できるようなスキル。
  • プログラミングスキル:独学で最低限オリジナルアプリを開発できるようなスキル

です。一般的な採用と一緒で、エンジニアといえども、技術ではなく、志向性なども聞かれることが多いです。
これから伸びるポテンシャルがあるかどうか等、聞かれることになります。

一方で、プログラミングスキルもある程度必要となります。プログラミングは基本的に独学力をものすごく求められ、自分の力である程度進む力があるかどうかをかなり求められます。なので、それを証明できるオリジナルアプリが創れるというスキルは非常に重要です。

エンジニアの種類は?

前提として、エンジニアの種類をざっくりと分けると、

  • サーバーサイドエンジニア:Ruby、PHP、JavaScriptなどの言語を利用して、Webアプリケーションを開発するエンジニア
  • Web制作系エンジニア:WordPressなどの、HP制作を行うエンジニア

があります。

サーバーサイドエンジニアのプログラミングスキルを身に着けるには?

プログラミングスキルを身に着けるためには、どうすればいいでしょうか。結論から言うと、以下の段階にそって学習を進めていけばよいです。

  • STAGE1:プログラミングの基礎が理解できている
  • STAGE2:クローンアプリを開発できる
  • STAGE3:オリジナルアプリを開発できる
  • STAGE4:集団開発ができる

STAGE1: プログラミングの基礎が理解できている

プログラミングの基礎です。いわゆる文法ですね。

STAGE2: クローンアプリを開発できる

基礎を利用して、実際にアプリ開発のチュートリアルをやってみるのがよいと思います。
よくあるのだと、ツイッターと同じ機能を実装するチュートリアルみたいなものですね。

STAGE3: オリジナルアプリを開発できる

クローンアプリを何個か作っていると、どうやってアプリを創れるのかがわかるので、組み合わせてオリジナルのアプリを開発してみるのがよいです。オリジナルアプリ一個あると、採用でかなりモテます。(というかこれは採用面接の切符みたいなものなので、最低限ここまで行けるとよいかと思います)

STAGE4:集団開発ができる

基本的にWebサービスは、一人で全部開発することはありません。チームメンバーと一緒に開発するので、チームで開発するための作法を学ぶ必要があります。

Webアプリをゼロから作るには、何を学べばいいの?

言語に関しては、

  • サーバーサイドの言語:Ruby
  • サーバーサイドのフレームワーク:Ruby on Rails
  • フロントエンド:HTML, CSS, JavaScript
  • フロントエンドのフレームワーク:Bootstrap

それ以外に関しては、

  • ターミナル、コマンドラインの使い方
  • Gitの使い方
  • Herokuという、アプリをアップロードできるSaaSツールの使い方

などです。

サーバーサイドの言語は、PythonやJavaじゃダメなの?

もちろん、ほかの言語を使ってもよいと思います。が、条件があります。

  • 適切なチュートリアルを自分でググって見つけられる力があること
  • 日本にはよいチュートリアルがないので、基本的には英語でググれること

です。Rubyでゼロからアプリを作るためのチュートリアルは、日本でかなりいいものがあります。

しかし、Python等はあまりいいのがありません。一応あるにはあるのですが、Bootstrapとのかかわりが前提を吹っ飛ばした内容になっていることが多いです。

個人的には、とりあえずRubyでゼロからWebアプリを作れるようになったうえで、ほかの言語に手を出してみるのがよいかと思います。

どんな教材を使えばいいの?

次に、どんな教材を使えばいいのか説明します。

STAGE1:プログラミングの基礎が理解できている

このフェーズでは、とにかくプログラミングの基礎的な文法を学びます。その際はProgateで本当に充分です。

Progateは初心者向けにめちゃくちゃわかりやすくプログラミングを教えてくれるので、ここで学びましょう。

だいたいの難しさを書いておくので、簡単なものから始めてみるのがよいと思います!

≫HTML & CSS 難しさ ★
≫JavaScript 難しさ ★★
≫Ruby 難しさ ★★★
≫Ruby on Rails 難しさ ★★★★
≫Git 難しさ ★★
≫Command Line 難しさ ★★

演習コースまでやると、かなり力になると思います。

※よく3週くらいやって、またほかの言語の基礎をずっと勉強している人がいますが、初心者はそれをやってもあまり意味がないのでやめておきましょう。

STAGE2:クローンアプリを開発できる

このフェーズでは、とにかくコピー(クローンアプリ)を開発していきます。
最初からゼロからアプリを作るのは相当しんどいです。ですので、チュートリアルをみながら手を動かしつつ、
他人の作ったアプリの真似をしていくのがよいと思います。

基本的には、Railsチュートリアルという教材を進めていくのがよいです。

≫Railsチュートリアル(完全無料)

Railsチュートリアルでは、実際にゼロからツイッターのコピーを作っていきます。機能としては

  • コメント投稿機能
  • いいね機能
  • フォロー機能
  • プロフィール更新機能

など、いわゆるWebアプリで最低限必要な機能をすべて実装する方法を学ぶことができます。
これに沿ってプログラミングを学習していくと、相当力がつくようになります。

ただし、このフェーズで一気にレベルがあがります。ただコピペしているだけなのにエラー地獄に陥るので、がくっとテンションが落ちます。大変だけどググりながら解決していくことで、すごく力がつくようになります。頑張ってみてください。

STAGE3:オリジナルアプリを開発できる

さて、ここまでできたら、オリジナルアプリを開発してみましょう。Railsチュートリアルほど複雑ではなくても、例えば

  • フリーWIFIが存在するカフェをまとめたログイン制のサイト

みたいなシンプルなアプリを作ってみるのがよいと思います。

もしあまりアイディアが出てこなかったり、「マッチング機能を入れたい!」みたいな、Railsチュートリアルにはないような機能が必要になる場合は、UdemyなどのコースでRailsアプリの作り方を解説しているチュートリアルを使ってみるのがよいかもしれませんね。

STAGE3ぐらいまでスキルを身に着けられれば、採用面接などに行ってもよいと思います。

面接の際には何を気を付ければいいのか

採用の担当者が見たいのは、こういう点です。

  • 自分自身でアプリを開発したときに、この機能はどうやって実装したのか説明できること
  • 実装したコードの中身についてちゃんと説明ができること

中身がわかっていないまま、ただコピペで作ったことがばれると、即落とされます。

自分自身の頭でちゃんと理解したうえで、コードを実装していること、またそれが他人に説明できることが、集団で開発する際には重要となります。ですので、オリジナルアプリ開発をしているときに、ちゃんとわからないことをしっかりと調べて開発をしていれば、高評価をもらえると思います。

どういう会社がいいのか

未経験で、エンジニアになりたい場合、即戦力採用ではありません。なので、ある程度社内で教育できる体制があるような事業会社がいいです。具体的には、

  • 社員数30-100人程度の中小企業
  • エンジニアを未経験で育成できるような環境が整っている

みたいなところに、直接応募をかけてしまうのがよいと思います。

基本的には、Wantedlyで気になる会社を見つけて、そこに採用面接を受けに行くのがよいかと思います。
もしくは、結構エンジニア募集に関しては、Bosyuでやっている場合があるので、エンジニア界隈のヒトをたくさんフォローして、
チャンスがあったら応募してみるのもいいかもしれません。

STAGE4:集団開発ができる

余力があれば、チーム開発のスキルがあると非常によいでしょう。
チーム開発ができるレベルであれば、間違いなくスキル面では安心だと思います。

プログラミングで挫折する場合は?

プログラミングを学んでいると、ほとんどSTAGE3で挫折します。

  • みたことのないエラー
  • 新規機能の実装方法がわからない

など、かなり困ることが多いです。

そういう場合は、プログラミングスクールを利用してみるのがいいと思います。

どのプログラミングスクールがおすすめか

プログラミングスクールとしておすすめなのは、Techacademyです。

TechAcademyは、最短4週間で未経験からプロを育てるオンライン完結のスクールです。
どこかに通う必要なく、自宅でもプログラミングやアプリ開発を学ぶことができます。

特にGoodなポイントは

  • 自宅にいながらオンライン完結で勉強できる
  • 受講生に1人ずつ現役のプロのパーソナルメンターがつく
  • チャットで質問すればすぐに回答が返ってくる

でしょう。こちらも詳細な商品情報は、公式を見てください。

僕はこのTechAcademyは受講していないんですが、実際に受講された方にインタビューしてみました。

≫【体験談】TechAcademyの評判を確かめにエンジニアに転職された卒業生にインタビュー【PR】

彼曰く、

  • 担当メンターが1人就いてくれる
  • 週2回のオンライン面談がある
  • オンライン上でのメンターのレスポンスは早い

とおっしゃっていました。CodeCampの場合は、メンターは指名して、毎回変わるんですが、TechAcademyは一人がつく形のようです。

料金も相当お手頃ですので、おすすめですね。

詳しくは下記記事にインタビューがあるのでご覧ください。

≫【体験談】TechAcademyの評判を確かめにエンジニアに転職された卒業生にインタビュー【PR】

TechAcademyも無料体験ができるようです。まずは無料体験に申し込んだうえで、レッスンを受けてみるのがよいかと思います。

TechAcademyで無料体験を受けてみる

確実にエンジニアとしてのキャリアパスを歩みたいのであれば、STAGE3クリア後に、プログラミングスクールに行くのがおすすめです。

その他、よく寄せられる質問について

その他、よくエンジニアになるために寄せられる質問にお答えします。

「Pythonを書きたいのですが、どういう会社に行けばいいのでしょうか」

未経験の場合、あまり言語にこだわらない方がいいです。それよりも、エンジニアリングの素養をしっかりと数年間で身に着けられる環境にしっかりと身を置けば、あとで言語の学びなおしがいつでもできます。しっかりとエンジニアリングを学べる環境に入社したうえで、言語については考えればいいと思います。

「大学生なのですが、どうしたらエンジニアになれますか?」

基本的に上記3つのステージを達成した後に、Wantedlyなどで未経験でエンジニアの採用をしたい会社に応募してみるのがよいと思います。

「最初からプログラミングスクールに行っておくべきですか?」

特に必要はないと思います。STAGE3まで独学で勉強して学習が進められれば十分かと思いますね。いうてプログラミングスクールも、基本的にはオリジナルアプリを作るところまでコミットしてくれるだけなので、とりあえずSTAGE3までの学習方法で進めていくのがよいかと思います。

あとは、仮にプログラミングスクールに行く場合は、Googleの検索結果だけではなく、SNS(ツイッター)での評判も確認してください。Gooogleの検索結果は、プログラミングスクールが力を入れれば簡単にハックできてしまうので、炎上していたとしても隠し通せてしまいます。

「社会人なんだけど、今後本格的にエンジニアになりたいです!どうしたらいいですか?」

エンジニア転職をもし検討されているのであれば、大切なのは以下二つのスキルです。

  1. ゼロからアプリ開発を行い、ポートフォリオを持っている状態
  2. エンジニア業界のことを理解している。SESなどのキーワードを知っていて、今後ちゃんとスキルアップを目指せるような職場を選ぶだけの知識がある。

①に関しては、この記事でかなり説明しました。②に関しては、やはり業界知識をしっかりとつける必要があります。例えば、「エンジニア転職」といっても、エンジニアにどれくらい種類があるかわかりますか?

例えば、

  • フロントエンドエンジニア: Webサイトの見た目の部分を実装するエンジニア
  • サーバーサイドエンジニア: データベースと画面の処理をつなげるコードを書くエンジニア
  • インフラエンジニア: Webアプリが動作する環境を整備するエンジニア。いわゆるコードはあまり書かない
  • テストエンジニア: 作ったアプリをテストするエンジニア。ほとんどコードは書かない。

他にもさまざまなエンジニアの職種があります。

実は求職者が一切これらの知識を知らないことをいいことに、一切コードを書かないような案件を転職エージェントで紹介されるようなこともあります。ですので、しっかりとエンジニア業界の知識を身に着けておくことが重要です。詳しくは以下の記事で解説しているのでぜひ読んでみてください!

個人的には、エンジニアのスキルも、業界の知識も、転職案件もちゃんと持っているポテパン・キャンプは非常におすすめできます。ポテパン・

「ネット上でどういうヒトをフォローしておくと、正しいエンジニアの情報が入ってきますか?」

プログラミングスクールや、転職あっせんにあまり利害関係がないヒトをフォローしておくのがよいです。(プログラミングスクールや転職エージェントは紹介して成約すると、紹介したヒトにお金が入る仕組みになっているので、どういう意図でそれを紹介しているのか正しく判断できる場合はそういうヒトをフォローするのがいいかとおもいます。)

僕が個人的にフォローしておくといいなぁと思うヒトのアカウントを載せておきますね。

ほかにもフォローしておくといいヒトはこちらの記事にまとめてありますので、ぜひ。

まとめ

ということで、最短でエンジニアになるための学習方法まとめです。まず、エンジニアになるためには、

  1. プログラミングスキル
  2. 業界知識

が十分必要です。プログラミングスキルをしっかりと身に着けるのであれば、

  • STAGE1:プログラミングの基礎が理解できている
  • STAGE2:クローンアプリを開発できる
  • STAGE3:オリジナルアプリを開発できる
  • STAGE4:集団開発ができる

の段階を踏んでいくとよいかと思います。業界知識については、ネットだけ見ていてもなかなかわからないかと思います。そういう場合は、Techacademyなどのプログラミングスクールに通いつつ、転職紹介をしてもらうのがいいかもしれません。