Webエンジニアになるには。エンジニアになるために必要な技術6個
世間では、プログラミング学習の必修化などが話題になっていますが、 プログラミング学習の延長線上であるWebエンジニアになるにはプログラミングを勉強するだけでいいのでしょうか?
何か必要な資格があるのでしょうか。この記事ではそんな疑問に答える形でWebエンジニアになるために必要なことをまとめてみました。
Webエンジニアになるには
エンジニアになるために必要な技術
先にWebエンジニアに必要な技術をあげてしまうと以下のようなものになります。- PHP or Rubyなどのサーバサイドのプログラミング言語
- Javascript,JQueryなどのクライアント言語
- HTML/CSSなどのWebサイトを装飾する言語
- ソースコードの管理を行うGit
- データベースの知識
- コンソール画面を操作するためのUnixコマンドの知識
いざエンジニアを目指したは良いもののプログラミング以外にも必要なことが多くて挫折したという方も多いと思います。
エンジニアになるには資格を取って置くと有利?
転職など、職種を変える際に検討するのが資格の取得ですが、これはWebエンジニアに転身する際にはあまり役には立ちません。
確かに、ITパスポート、基本情報技術者などの資格がありますが、Web業界ではこれを持ってないと評価が下がるということはありません。 資格を持っているということで最低限の知識はあるのだなという評価にはなりますが、エンジニアとして転職するために「基本情報技術者取ってきました!」みたいなのは少し的が外れた努力になります。
一番評価されるのは資格よりも、自分で手を動かしてアプリケーションを作ってみたなどの活動です。
基本情報技術者などの資格はSIerでは割と評価されると思いますが、Webエンジニアになるために資格を取得するのはおすすめしません。
いくつか技術があるけどそれぞれどんな技術?
経験のない方は、MySQL、PHP、Ruby、Gitとかアルファベットを並べられてもピンと来ない方もいると思うので、 それぞれの技術がどういったもか、どういう状況で使うのかというのを書いて行きます。
その1 PHP,Rubyなどサーバサイドの言語
使う場所 : サーバサイド
なぜ必要か? : ユーザからのリクエストを受けて、結果を返却するため
最初は、ザ・プログラミングのサーバサイドのプログラミング言語です。 サーバーサイドのプログラミング言語などというとJava,Ruby,PHPなどがあるのですが、Web系ではPHPやRubyなどの言語の採用が目立ちます。
サーバサイドってなに?
いきなりサーバサイドとか言われてもわからない方が多いかとは思うのですが、システムの世界、もっというとWebアプリケーションの世界には、クライアントという概念と、サーバという概念の二つが存在しています。
このクライアントとサーバが通信を行うことで、あの便利なFacebookやTwitterのようなサービスを実現しています。
こう聞くと少し難しい話に聞こえますが、クライアントというのは割と馴染みの深いGoogle ChromeやSafariなどのブラウザです。普段意識することはあまりありませんが、ユーザがブラウザを使ってサイトにアクセスする際にサーバに向けてリクエストを送っています。
リクエストというのは依頼のことで、例えば https://google.com というURLをブラウザに打ち込むと「Googleのあの検索窓のページを表示してね」という依頼になり、それに反応したGoogleのサーバが結果を返して、あの有名な検索窓が表示されます。
現在のほとんどのサイトがこのような仕組みになっており、このリクエストに応じた処理を記述するのがPHPやRubyのようなプログラミング言語です。
なぜサーバサイドのプログラミングを覚える必要があるか?
今までの説明でお分かりのように、サーバサイドがないとブラウザでアクセスしても真っ白なページが表示されるかそんなページがありませんと表示されてしまうだけなので、必須の技術になります。
その2 JavaScript,JQueryなどのフロントサイド言語
使う場所 : フロントサイド
なぜ必要か? : ユーザのアクションに応じて、動的にページを変化させるため
フロントサイドと言うのは、サーバサイドの逆の概念でクライアントとも言います。 ユーザが電話番号を打ち込むべきのところに「あああ」とか打ってきたら、電話番号を入れてくださいと表示するなどユーザのボタンをクリックしたり、キーボードで入力したりのようなアクションに応じて画面を変化させるのに使われます。
JQueryってなに?JavaScriptと違うの?
JQueryとは、JavaScriptで書かれているので乱暴に言うと同じものです。
が、JQueryはJavaScriptのフレームワークなので、JavaScriptでよく使う処理を記述量少なく実装できるように考案されたフレームワークになります。
JQueryを使うとボタンを押せなくしたり、入力欄に入力された値を取ってきたりと言うことができます。
なぜJQuery,JavaScriptを覚える必要があるのか?
先に説明したのと同じように、JQuery、JavaScriptがあるとユーザのアクションに応じてページを変化させることができます。
クライアントサイドでできることが増えると、いちいちユーザのアクションの結果をサーバに問い合わせずに結果を返すことができるのでユーザエクスペリエンスの高いWebサービスをつくることができます。
また、JQueryなどが使えるとアニメーションなどもできるので、ユーザが使っていて楽しいサイトを作ることが可能になってきます。
その3 HTML/CSSなどWebサイトを装飾する言語
使う場所 : フロントサイドというかWebページそのもの
なぜ必要か? : Webページをユーザが使いやすいように装飾できるため
HTMLとCSSは一緒に語られますが、その大まかな役割はHTMLはページの構造を表現して、CSSはそのHTMLを装飾します。
HTMLだけでは、簡素でプレーンなページしか作れないので、CSSでそれを装飾してあげると言う感じです。
HTML/CSS自体はデザイナーさんの方が得意だったりすることが多いので、そこまで深く突き詰めるかは個人の興味次第なのですが、デザイナーさんとコミュニケーションを取るにしても最低限の知識は必要ですし、個人でサービスを開発している場合は自分でコーディングを行わないといけないので、最低限の知識は習得している必要があります。
その4 バージョン管理で使うGit
使う場所 : プログラミングのソース管理
なぜ必要か? : システム開発の現場では複数人で開発を行うので
Gitはプログラムのソースコードを管理する仕組みです。だいたい開発チームに一つはリポジトリと言うプログラムソースのマスタがあるのですが、開発を加えていく中でそのマスタのプログラムに変更を加えて行きます。
開発者が一人であれば、ゴリゴリソース管理など気にせずプログラミングをしていけば良いのですが、複数人で開発している場合変更するファイルがバッティングしてしまうことがありその調整を行う必要があります。
Gitはそれらの作業をうまいことやってくれるツールで、マージなどの機能を使えばそれぞれの変更を自動でマスタリポジトリに反映したりしてくれます。またgitでは変更の履歴を管理してくれるのでどこでバグを埋め込んでしまったのか?や誤ってソースを消してしまった、変更してしまったと言う場合も簡単にバージョンを戻して対応することができます。
エンジニアの中には一人でサービス作ってドカンと当ててしまう人もいますが、そういった人は稀で多くは数名〜数十名の開発メンバーと協同して開発を行うことになるので基本の技術の一つとなっています。
その5 MySQLなどデータベースの知識
使う場所 : 主にサーバ側。アプリケーションのデータを保存・参照したい場合。
なぜ必要か? : アプリケーションのデータを保存する必須のツールなので
Webエンジニアになるには、MySQLやPostgresSQLなどデータベースの知識も必須となります。 今日のアプリケーションでは、ユーザの情報やECサイトであれば取引の情報などをデータベースに保存することが当たり前となっています。
どんなシステムを作る場合でもデータベースにデータを
・保存する ・参照する ・削除する ・更新する
と言うことが基本的な動作になるので、データベースを知っていくとこもWebエンジニアになるには欠かせないものになっています。
その6 コンソール画面を操作するためのUnixコマンドの知識
使う場所 : コンピュータをコマンドで操作
なぜ必要か? : Webシステムの開発の現場では当たり前に使われるので
非エンジニアの人はなかなか信じてくれないのですが、コンピュータと言うのは基本的にコマンドと呼ばれる文字列を打ち込むだけで操作することができます。
コンピュータの電源を落としたり、ファイルを消したり、作ったり普段マウスを使ってぽちぽちしているもののほとんどがコマンドで実現できます。
Webエンジニアになぜこれが必要なのかと言うと、Webアプリケーションのサーバと言うのはコマンドで操作を行うことが基本なのでこのコマンド操作ができないと自分が作ったアプリケーションも起動できないです。
本番環境に反映する前に自分のPCで開発している時でもコマンドで操作を行うことが基本となります。慣れればなんてことはないのですが、最初はちょっと癖があるので苦労する部分ではあると思います。
まとめ | Webエンジニアになるために効率的な学習方法
ここまででお分かりのようにエンジニアになるために必要な知識は結構あります笑。
自分これらを勉強してきたので今エンジニアとして働けているのですが、今ちょっと振り返ってみても「よく勉強したな」と褒めてあげたいです。笑
「ここまで読んでみてこんなにたくさん勉強できない!!」
「こんなにまだ知らないことがあるのか。ワクワク。」
と言う人と色々あると思うのですが、今は自宅にいながら勉強できるサービスも充実してきています。エンジニアになるための勉強方法の比較は以下の記事にまとめています。
記事の中でも触れていますが、やはり一番効率の良いプログラミングの学習方法はプログラミングスクールに通うことだと思います。個人的な経験からしても、独学でかなりの時間を無駄にしてエンジニアになったので、今学生の頃にもどれるのであればソッコーでプログラミングスクールにいくためのお金を貯めてスクールに通っています。
現役のエンジニアから教えてもらえるというのはやはり、かなり貴重な経験になります。経験者から学ぶ場合、単にプログラミングの書き方だけでなくエンジニアとしての癖や勉強の仕方、身につけるべき習慣も一緒に学べるので、経験者から学んだ場合の成長の速度や効率がそうでないのと比べて全く違います。
下手に独学で勉強して焦ってスキルの低いうちに転職するとそれはそれで教育環境の整っていない会社に入ってこき使われるだけなんてことになりかねません。転職先を紹介してくれるスクールも多いですし、そういった所の会社はフィルターにかかっていることも多いので安心して転職できます。
現役のフリーランスとして活動している私がオススメするプログラミングスクールもこちらでまとめておりますので、興味ありましたらぜひご一読ください!!