前回の記事【結論】未経験の初心者がIT業界に転職する方法は3つ【最短】でご紹介したうちの最後の一つ、Webエンジニアになるために勉強すべきことをまとめました。
HTML&CSS基礎
HTMLコーダーのようにデザインカンプからすべてをコーディングできるだけの知識は必要ありませんが、最低限のサイトは構築できるくらいのHTML&CSSの基礎知識は必須です。
無料でオンライン学習できる範囲でも十分ですし、入門書籍を一冊やってみるのでもいいでしょう。
PHP or Rubyの知識
WebエンジニアになるにはPHPかRubyどちらかの言語から始めるのが一般的です。
- PHP:習得難易度が低く、求人件数も多い。wordpressもPHP製。ただしPHPしかできないエンジニアはできるエンジニアに馬鹿にされやすい傾向有り
- Ruby:PHPよりは多少難易度が上がるかもしれないが、その他に比べれば習得難易度は低い。求人数は現状ではPHPの方が多い
個人的にはPHPから始めて仕事にたどり着くことを最優先にし、PHPができるようになったらRubyも学習すればいいんじゃないかと思っています。
オンラインで無料学習できる範囲でもいいですが、プログラミング言語はやはりしっかりとした入門書を一冊は経験しておくべきかと思います。
年度の古いものでは使い物にならないものも多いので、新しめで評価が高い物から自分に合いそうなものを選ぶと良いでしょう。
JavaScript&jQuery応用
基本的になことはできるようにしておくとして、Webアプリを作るにはJavaScript&jQueryの応用が求められます。
例えばこのような形
- ファイルをアップロードしている間、画面にプログレスバーで進捗状況を表示したい
- 郵便番号が入力されたら住所を自動的に入力補助したい
大体はやりたいことで検索すればサンプルが紹介されていたりするので、それを参考に改修すればいけることが多いと思います。
ただ基本がわからないので改修の仕方もわからない、という場合には入門書などでまずは基本を学習すると良いと思います。
セキュリティの知識
Webでの情報漏洩は大きな問題として取り上げられていますよね。そんなことにならないよう事前にセキュリティについても学習しておく必要があります。
フレームワークの知識
現場での開発ではフレームワークを利用して開発を行うことがほとんどです。
現状の主なフレームワーク
- PHP:Laravel
- Ruby:Ruby on Rails
もちろん他にもありますが、まずはここから抑えておけば間違いないかと思います。
フレームワークとは何かというとよく行われる処理が簡単に利用できるようにまとまっていて開発効率や保守効率を上げられる便利なもの、というような感じです。
むしろフレームワークを使うことでカスタマイズが難しいということに陥ることもあるのですが、概ね開発効率は上がります。
さらに前項のセキュリティ対策も施されている場合が多いので、利用できるのなら利用した方が無難というわけです。
実サイトの作成経験
ここまできたら実際に何かサイトを作ってみると良いでしょう。始めは何か簡単な機能の模倣サイトで良いと思います。
よくあるのは掲示板なんかから作り始めてみるケースですね。インプットとアウトプットがあり最初に練習するには確かにちょうど良いかもしれません。
慣れてきたらツイッターやフェイスブックなど普段自分が使っているサービスを模倣してみるのが良いと思います。
最終的には何か外部APIを利用したオリジナルのアイデアを少し組み込んだWebアプリを作れれば上出来です。
データベースとSQLの知識
いざ掲示板を作ろうとすると今度はデータベースというものを勉強しなければいけません。
データベースで最もよく使われているのはMySQLかと思いますので、まずはMySQLから始めてみればOKです。
データベースとは何かというと入力されたデータを格納しておくものです。
掲示板であればスレッド名、書き込み内容などユーザーから入力されたデータを格納しておいて、必要に応じて取り出しサイトに表示できるようにするといった具合です。
Gitの知識
現場では複数人のチームで開発することも多いので、ソースの管理ツールとして現在はGitが使われることが多いです。
どういうことかというと、同じプロジェクトファイルを複数人が同時に編集してしまい、片方の更新を上書きしてしまうというような衝突を避けることが一つの目標になります。
一人で開発しているから大丈夫、必要ないと思うかもしれませんが、
- 機能Aを新規開発中
- 既存機能にバグがあったので修正したい
- 機能Aはまだ公開できる状態ではない
というような場合に一度機能Aを消すなりコメントアウトするなり無駄な作業が発生してしまいます。
Gitを利用してソースを管理していると、うまくブランチを切ればこのような場合にもすぐに機能A開発前の状態に戻りバグ修正、さらにその状態から機能Aの開発状態に戻すといったことも可能です。
採用面接時にはGitを利用してソース管理しているというのはプラスになることが多いはずなので、やっておいて損はないです。
Linuxの知識
ここから先はサーバー側の知識となります。Webエンジニアは開発だけではなく、サーバーのセットアップもこなすことが多いです。
サーバーを立ち上げ、ApacheやMySQL、PHPなど必要なものをインストールして開発したソースを設置し公開作業を行うといった具合です。
Linuxというのはサーバー側のOSのことです。windowsのようにグラフィカルな操作で操作をすることも可能ですが、ほとんどの場合コマンドラインという文字だけのインタフェースで操作します。
サーバーにSSH接続し、コマンドラインで諸々の操作を行う。こういった作業をこなしておくと良いでしょう。
Apacheの知識
Webサイトを公開するにはLinuxサーバーにApacheというものをインストールして設定する必要があります。
あまり難しく考えずにApacheをインストールして起動すればひとまずWebサイトは見れるようになると始めは考えてもいいでしょう。
慣れてくると公開前のサイトはIP制限やBasic認証で閲覧制限をかけたり、特定のURLでのアクセスをリダイレクト設定する方法などが必要になってきます。
MySQLやPHP等のセットアップ
サーバーへ必要なものをインストールしセットアップ、起動すればサイトの公開は目の前です。
サーバーを再起動してもそれらのモジュールがきちんと起動するように自動起動の設定などもしておく必要があります。
使用可能なメモリの容量を増やしたいなどがあればiniファイルの項目を設定する必要も出てきます。
こちらは稼働させながらつまづいたところを随時という具合になっていくかと思います。
学習方法
とりあえずは以上なのですが、ざっくり紹介しただけなので、不足情報深堀して随時情報追加していきます。
これだけでも個人でやるには結構大変な作業なので、もしどうしても一人では限界を迎えてしまった場合にはスクールなどの利用も検討してみてもいいかもしれませんね。
求人を探す
ここまで一通りの作業ができればひとまず求人に応募して採用の可能性はあるのかなというところです。
事業拡大になどによって完全未経験の募集もあるにはあるのですが、何もやっていない人よりは未経験でもこれだけ実践的に学習してきた人の方を採用する確率が高いはずです。
IT業界の求人情報に強いエージェントなどもありますので、また別記事にまとめて公開させていただきますね。