Web系初心者必見!!!! 戦力になるために学ぶべきこと5つ

こんにちは!あさもっちゃんです!!

業界未経験で入ってきた時って、知らないことが多過ぎて辛いですよね。 僕も最初は知らないことだらけで、毎日が勉強の連続でした。 でも、結構無駄なことまで色々と学んでいました。

今回は、自分の経験を踏まえて、Web系のエンジニアとして戦力となるために知っておいて欲しいことをまとめてみたいと思います。 覚えるべき優先順に並べましたので、ご一読ください。

プログラミング言語(及びフレームワーク)

まずはじめは、仕事をする上でもっとも重要な「プログラミング言語」を覚えましょう。 プログラミング言語は、色々な処理を書いて大きなアプリケーションをつくり上げるために必要です。

Web系のエンジニアとして覚えなければいけない言語は多いです。 まず、必ず触ることになるのが、我々がWebページを見るときに使用される言語は「HTML/CSS/JavaScript」です。 これら3つは必ずセットで覚えましょう。 「HTML」は画面に表示する内容の形式を定義する言語、「CSS」はHTMLで表示される内容を装飾する言語、 「JavaScript」はブラウザ上で動かすことができるプログラミング言語です。 これらはWebブラウザ上の表示を司っているため「フロントエンド」「クライアントサイド」等と呼ばれています、

逆に、「バックエンド」「サーバーサイド」などと呼ばれるものもあります。 役割としては「画面表示に使用するためのデータの処理」や「外部システムとの連携」を司っています。 これらを実現する言語は様々あり、「Ruby」「PHP」「Java」「Scala」「Go」などがよく使われます。 初心者にオススメするのは「Ruby」もしくは「PHP」です。

Ruby」は「構文わかりやすく読みやすい」「制約が少なく書きやすい」という特徴があり、初心者が学ぶのに適した言語です。 また、「Ruby on Rails」「Sinatra」など、Webアプリケーションを構築するためのフレームワーク(ツールのようなもの)があります。 特にRuby on Rails」は高速に開発ができるため、スタートアップの会社でよく使われます。

PHP」は古くからWebの技術として親しまれてきた言語で、Webページを作るのに特化した言語です。 「Zend」「CakePHP」「FuelPHP」「Laravel」などのフレームワークがあります。 古くから使用されていたというのもあり、案件がたくさんあるので就職に強いという特徴があります。

まとめとしては

  • フロントエンドは「HTML」「CSS」「JavaScript」の3つ
  • バックエンドは「Ruby」もしくは「PHP」のどちらか

を覚えましょう!!!!

DB及びSQL

サーバー側のアプリケーション内で溜め込んだデータは、アプリケーションが止まるとなくなってしまいます。 サーバーが止まってもデータを生き残らせるには、どこかに保存する必要があります。 Webアプリケーションとしてデータを保存する際に使用するのは、ほとんどの場合「DB(データベース)」というシステムを利用します。 初学者の方なら、「MySQL」「PostgeSQL」「SQLite」「DB2」「Oracle」は聞いたことがあるのではないでしょうか。

上記5つのDBは、「RDB(Relational DataBase)」と呼ばれる方式のDBとなっています。 そして、RDBを外部から操作するために使用される言語が「SQL(Structured Query Language)」です。 SQLを利用することによって、DBにデータを登録したり取り出したり消したりすることができます。

WebアプリケーションからDBを利用する際、 多くの場合は「O/Rマッパー(Object / Relational Mapper)」を使用するため、 ほとんどの場合はそこまでSQLの知識がいらなかったりします。 しかし、O/RマッパーはDBを簡単に扱えるようにしただけで、複雑なことをさせるにはSQLの知識が必要になってきます。

また、開発作業中、目的のデータがDBに入ったかどうか等、DBの中身の確認するためにもSQLが必要になってきたりします。

これを知っておかないと、サーバーサイドで複雑なことをやろうとした時につまづきます。 できるだけ早めに学んでおきましょう。

Linuxコマンド

コンピュータ(Computer)というものは、ほとんどの場合は「OS(Operating System)」というものを動かしています。 個人がもつ「PC(Personal Computer)」としては「Windows」「Mac OSX」が有名です。 Webアプリケーションを設置するコンピュータのことを「サーバー(Server)」と呼び、その上で動かすOSは「Linux」が有名です。

映画でハッカーが黒い画面に白い文字が羅列したものを操作しているところを見たことがありますよね。 あの黒い画面を「ターミナル」と呼びます。そして、文字を入力することによって、OSを操作しているのです。

Web系のエンジニアが作ったアプリケーションはサーバーと呼ばれるコンピュータの中に設置します。 そして、このサーバーを操作する時に、黒い画面のターミナルを使用します。

ターミナルの操作を行う時に使用するのがコマンドです。

コマンドは色々な種類がありますが、Webエンジニアとして使用するコマンドはそれほど多くないです。 木構造ディレクトリ構成とその操作(cd, ls, cp, mv, rm, pwd等)、 使用したいコマンドの追加(RHEL系ならyum, Debian系ならapt等)、 ターミナル上でのエディタの使用方法(主にvim)などがわかれば大丈夫です。

テスト

自分たちで作り上げたアプリケーションが正しく動いているかどうかを確認するためにテストを行います。 テストって、研究分野になるほど奥が深くて難しいものです。 また、多くの人が退屈と感じる、非常に大変な作業でもあります。

しかし、このテストというものを意識できるようになると、

という利点があります。

Web系初心者が覚えるべき内容は「テストの種類」「正常系/異常系」「テストのコード化」の3つです。 これについても、後日改めてまとめ記事を投稿したいと思います。

Webの基礎技術(≒HTTP通信)

Webアプリを作るのだから当然っちゃ当然のことのように思えますが、案外わかってない人もいたりします。 ぶっちゃけ、プログラミングしていくだけなら知識はいらないです。 この辺りについては、フレームワークWebブラウザがよしなにやってくれるからです。

しかし、時にはWebの基礎的な技術、特にHTTP通信を理解してないと解決できない問題に直面することがあります。 これらを知っておくことによって、さらに上のエンジニアになれることは間違い無いでしょう。

この勉強をする時、初心者の場合は本を何周か読んでおくだけで良いかと思います。 後日改めて、この部分のまとめ記事を投稿したいと思います。

まとめ

というわけで、web系初心者が即戦力になるために覚えるべき内容5つでした。 5つって、数にしたら少なそうですが、実際には結構大変です。

自分の話をしてしまいますが、この記事を書いた自分自身でさえまだまだ至らないところも多いなと感じ、 エンジニア3年目も勉強ばかりやってます。 しかしこの2年間、空いた時間の7割を勉強に費やしたおかげで、 会社の年上のエンジニアに「10年選手かと思ったわw」と言わせるくらいには成長できました。

ちゃんと勉強すればみんな成長出来ます。これは本当です。 そして、案外みんな勉強してない&身についてないです。 だからこそ、多少勉強するだけでも十分に差別化出来ます

僕もまだまだです。是非とも一緒に勉強していきましょう!!!!