未経験エンジニアはフロントエンドから入門するべきだと思う理由

こんにちはMIYACHIN(@_38ch)です。先日こんなツイートをしました。

この記事は、未経験からプログラミングを始める人で、どの領域・どの言語から始めるべきか悩んでいる人に対して書いています。

この記事の内容

  • 僕の経歴紹介
  • 未経験エンジニアはHTML/CSSから始めよう
  • フロントエンドをやると差別化できる理由
  • HTML/CSSの学習が終わったら次はVue.js

タイトルにある通り、未経験エンジニアはフロントエンド技術から入門するべきです。

フロントエンド技術というのは、ユーザーが直接触れるUI(ユーザーインターフェース)に関わる言語、例えば、HTML/CSS/JavaScriptのことを指します。

ただ、JavaScriptと言っても最近はフレームワークが無数にあるので、僕のおすすめを記事の途中でも紹介していきます。

僕の経歴紹介

この記事を書いている僕は、文系(経済学部)の大学を卒業し、卒業後1年間、ITスタートアップでインターンをして、プログラミングを勉強したのち、新卒で某外資系のIT企業にソフトウェアエンジニアとして入社しました。

僕が初めて、プログラミングに触れたのは、大学4年生を休学してカナダに留学しているときでした。当時IT企業に就職したいと思っていたので、暇な時間に毎日1~2時間くらい、ドットインストールというサイトでビデオをみながら、ひたすら写経をしていました。

そして帰国後、インターンを始めることになって、そこで、少しHTML/CSSでマークアップする仕事をもらえるようになりました。そこからコーディング自体が楽しくなって、エンジニアに転向して、PHPやJava、Node.jsなどのサーバーサイド言語やSQLなどのDB周りの領域も勉強し始めるようになりました。

未経験エンジニアはHTML/CSSから始めよう

すでに書いた通り、僕はフロントエンドからエンジニアキャリアをスタートしました。

HTML/CSS/JavaScriptをある程度理解して、サーバーサイド言語を勉強しはじめました。

いま振り返ると偶然なのですが、この順番の学び方でよかったなと思います。

今まで何人ものプログラミング挫折者をみてきましたが、その多くは、サーバーサイド言語のロジックから学び初めて、「これ何のために必要なの?」となるパターンです。

普段から多くのアプリやWebサービスに触れている僕たちは、自分の書いたコードが画面にどう反映されるかがわからないと面白くありません。

HTML/CSSであれば、多くのプログラミング挫折者を生み出した、「開発環境のセットアップ」をする必要はないですし、自分の書いたコードを即座にブラウザで確認することができます。

なので、とりあえず、プログラミングを始めたいという人は、HTML/CSSから始めることをオススメします。

そしてHTML/CSSを使って自分のイメージする画面をある程度作れるようになったら、JavaScript→Vue、React、AngularなどのJavaScriptフレームを勉強するながれがいいのではないでしょうか。

フロントエンドをやると差別化できる理由

そもそも、フロントエンド技術、特にここ数年ででてきたAngular、Vue、Reactのようなフレームワークは、情報系の大学の授業では勉強しません。

つまり、大学時代にプログラミングを学んでいた情報系のエンジニアでもフロントエンドを開発できる人は少ないと思われ、後から未経験がキャッチアップしても追いつける可能性が高いです。

その一方でサーバーサイド言語(Java、PHPなど)はレッドオーシャンになっているんじゃないかと思います。

現に僕が働いている会社でも多くのエンジニアがいますが、その多くはサーバーサイド担当もしくはDB周り専門の人が多く、フロントができるというだけでかなり重宝されます。

転職エージェントと話をした時も、サーバーサイドで勝負するよりもフロントエンドで勝負する方が転職は楽と言われました。

同じ努力をするなら、ブルーオーシャンで努力をした方が見返りは多いので、みなさんフロントエンドから始めましょう。

フロントエンド開発のつらい側面

フロントエンドが楽なのかというと、そうではない側面もあります。

それは、技術の流行り廃りが激しいという点。

フロントエンド界隈は、他の技術領域に比べて新しい技術が次々と登場してきます。そのため、導入した最新のフレームワークが1年後には負の遺産になっていることも多々あります。

フロントエンドエンジニアとしてキャリアを積み上げていく以上、常に新しい技術をキャッチアップするという宿命と向き合っていく覚悟が必要になります。

HTML/CSSの学習が終わったら次はVue.js

エンジニア初心者界隈では常識だと思いますが、まずは、HTML/CSSをProgateで勉強してフロントエンドのベースを身につけたら、次は、JavaScriptを勉強します。

何度も書いている通り、最近の流行りは、Angular、Vue、Reactですが、その前にJavaScript自体を一通りやっておきましょう。なぜなら、言うまでもなくJavaScriptフレームワークはJavaScriptをベースにできているので、JavaScriptを理解していないと学習効率が下がります。

ただ、JavaScriptを100%理解している必要はなく、50~60%くらい理解したら、フレームワークを勉強し始めても良いと思います。

その上で僕がおすすめするのはVue.jsです。

正直、Reactは書いたことがないので、フェアな比較はできませんが、Angularはちょっと気にしないといけないファイル数も多く、初学者には辛い印象を感じたので、Vueをオススメします。

ちなみにVueの開発者のEvan Youは元GoogleでAngularの開発をしていて、そこから独立してVueを作っています。

Vueを勉強するには、シンプルに公式のチュートリアルをやるのがオススメですね。日本語バージョンがあるので、1日1時間くらいやれば1週間で80~90%は完了します。

もしくは英語のできる人であれば、Vue Schoolというサイトもオススメです。

この記事では、プログラミング入門者に向けて、フロントエンドから始めようという提言を書きました。何かご質問などあればTwitterのDMでご連絡いただけると助かります。