Webエンジニアとして就職するまでに身につけておきたいスキル<前編>
本日は、Webエンジニアとして、未経験者が就職するのに必要なスキルの基準を記載しますね。
Webエンジニアのスキル
以前にもお話しましたが、エンジニアでは実務未経験者であっても、一定のスキルが求められることが一般的です。と言っても、どの程度勉強すればいいのだろう・・・となる方が多いのではないでしょうか?
学校の入学試験のように、過去問が本屋で売っているわけではないので、基準が分かりませんよね?
弊社:「無料PHPスクール」では、
★簡単なWebサイト/アプリであれば、 設計から開発、サーバ公開(リリース)まで一人で出来る。
をゴールに設定しています。
本日は、こちらをもう少し具体的に書かせていただきますね。
Webエンジニアは、学習しなければいけない領域が広く、一般的には下記のような分野に、精通していることが望ましいです。
- フロントエンド:HTML5/CSS3、JavaScript/jQuery、(Photoshop)
- サーバサイド(バックエンド):PHP、Ruby、Java、Python、Perl、C#.net、Node.js
- データベース:MySQL、PostgreSQL、Oracle、MS-SQL
- インフラ:Linux、Windows、AWS/Azure/GCP
長くなりますので、2回に分けて解説していきたいと思います。
フロントエンド:HTML5/CSS3、JavaScript/jQuery、(Photoshop)
まずは一般的に、「画面系」と呼ばれるフロントの部分です。
完全な分業体制のシステム開発会社ではサーバーサイドのエンジニアは触らないこともありますが、新人に適した仕事であり、また、基本、「フルスタック」なので、Webエンジニアの必須スキルの一つです。
要求されるHTML/CSSのスキルは、下記が挙げられます。
- HTMLを使って、サイトのコーディングができる○CSSのプロパティが、リファレンスを見ずに、書ける
- 意図した場所に、意図したコーディングをすることができる(完璧でなくても良いです)
- JavaScript(jQuery)を使って、簡単なHTML/CSSの挙動を変えることができる
なお昨今では、下記のような技術も使えると、より有利になります。
- lessやsassといった、CSSプリプロセッサを用いたCSSコーディング
- Flexboxを使ったコーディング
- レスポンシブサイトを意識したコーディング
- スマホサイトのコーディング
- gulpなどタスクランナーの使用経験
わかりやすいゴールとしては
「自分一人で、Webサイトのコーディングができる」
になります。
学習方法としては、やはり実際にWebアプリを丸ごとを、1つ作ってみると良いと思います。
もしくは、興味があるサイトを見ながら自分ならどう、コーディングするか?を考えて、実際にやって見ましょう。
例えば、facebookを見て、画面部分だけでもいいので、どうコーディングすればこのようなサイトになるかを考え、実際に書いてみるのです。
これは一部であっても、大変勉強になります。
また、あまり、エンジニアがやることではありませんが、Photoshopを使って、簡単なバナー制作はできると良いですね。
エンジニアは、一般的に、デザイン部分には携わらない(=スキルがなくてできない)ことが、ほとんどなので、差別化になります。
サーバサイド(バックエンド):PHP、Ruby、Java、Python、Perl、C#.net、Node.js
ここからは、いわゆるサーバサイドのプログラミングの範疇になります。PHPを前提として、話を進めますが、他の言語であっても要求される知識や技術はほとんど変わりません。
基本的には、一番深く習熟する必要があるので、未経験者といえど、若干深く勉強しておく必要があります。
配列の基本操作
プログラミングは結局のところ、「どこからかデータを引っ張ってきて、加工して、どこかに送る」ということを、延々とやります。
そのデータは、ほとんどの場合、配列という形で、定義(格納)されていますので、配列の操作が自由自在にできることが大前提です。
野球でいうと、この分野はキャッチボールや素振りに相当するぐらい、非常に大切な領域です。
配列処理の大切さは、どの言語であっても例外はないです。
基本的なエラー消去
プログラミングを学習し始めていると、最初のうちは、ほとんどまともに進みません。エラーがボコボコでてきてしまうからです。
そういったエラーを、素早く消せないと(解決できないと)作業そのものが、進みません。
最初のうちは、一つのエラーを潰すのに何時間も考えてしまうことがありますが、徐々に、パターンがわかってきて、慣れれば、見た瞬間に潰せるようになります。
もちろん何年、仕事をしていてもはまってしまうエラーは出てきます。ただ、基本的なものであれば、スグに潰せるようになっておきましょう。
ファイルの入出力、データベースへの入出力
これは外部とのデータ連携ですね。多くのWebアプリは、よほど単純なものでない限り、外部にデータを保存します。
例えば、Amazonも、書籍のデータは大量のデータを管理しているソフトに収められています。
そのソフトのことを、データベース(DB)と言いますが、ただのテキストファイルなこともあります。
そのデータベース(またはファイル)から、データを取り出して、加工し、データベースに保存する、といった操作は、スムーズにできるようになっておきましょう。
オブジェクト指向の理解
ある程度の規模のWebアプリになってくるとデータベース、ログイン、メール送信など様々な機能が必要になってきます。
これらをうまく使い分けるには、「オブジェクト指向」という概念を理解して、使いこなせないといけません。
初心者にとっては、「オブジェクト指向」はかなり鬼門で、多くの方がここでつまずきます。
しかし、「オブジェクト指向」を使うと使わないのとでは、できることや保守性(メンテナンスのしやすさ)が大きく変わってきますので、必ず使えるようになっておきましょう。
機能とファイルの分割
「オブジェクト指向」にも通じますが、複雑なアプリであれば、機能ごとにオブジェクトを作り、ファイル自体を分割します。
役割ごとにファイルを、適切に分けられるかで作業しやすさが、変わってきます。
役割ごとにざっくりとでも、ソースを分割できるようになっておきましょう。
セッション
ログイン情報など、比較的長い期間のデータを取り扱う場合、セッションやクッキーを使うことがあります。
ECサイトやSNSを作るときは、ログインした時の情報をセッションで管理しておく必要があります。
通常のリクエスト・スコープ(POSTやGET)とセッションを適切に使い分けられるかでできることが、かなり変わってきます。
スキルを身につけるために
これらのスキルですが、教材を読んで1つ1つ覚えるというのも大切ですがそれだけでは身につきません。
お勧めするのは、掲示板などのアプリを作成し、自分なりにどんどんカスタマイズを加えていくことです。
どんなアプリでも拡張していくうちに必ず、上記機能を全て実装しきります。それが、最速でスキルを身につける方法です。
初心者の方はぜひ参考にしてください!
次回は、データベースやインフラに入っていきたいと思います。