![見出し画像](https://assets.st-note.com/production/uploads/images/10202230/rectangle_large_type_2_49c2480af93d31623e2a8702d432273c.jpeg?width=800)
【初心者向け】未経験からWebエンジニアへ転職するための7つのポイント
「今の仕事では将来が不安」
「WEB業界に興味がある」
「エンジニア転職したい」
そんな想いを抱いてる人向けに書きました。
元Webエンジニア(もどき)だった私がこの仕事をする上で知っておいてほしいことを書きました。
プログラミング初心者やこれからWeb系のお仕事をしたいと考えてる方向けに、この業界で仕事していく上で勉強すべきことをお伝えします。
ちなみに私は努力を怠り、すぐに諦めた結果、ついていけなくなり、Webエンジニアのお仕事を辞めてしまった身です。なので偉そうなことは言えません。
ただし、この経験を反面教師にしてあなたにはWebエンジニアとして活躍してほしいと考えています。
まずはプログラミング未経験者もしくは初心者という方向けに書きます。
1.HTML・CSS・Javascriptは必ず覚える
プログラミングすら未経験、初心者の状態でもぼくのように拾ってくださる会社はあるかもしれません。(第2新卒で入社)
しかし、0からエンジニア転職を目指すあなたに知ってほしいのは「プログラミング」に関わる部分では覚えることが非常に多いということです。
Web系であればフロントエンドからバックエンドまで幅広くカバーする必要があります。
そのためにもまずはHTML, CSSの基礎は押さえましょう。
これはWebの基礎の基礎となる部分です。
ウェブサイト制作をしている会社のコーダー(コーディングする人)は皆、HTMLとCSSでウェブサイトのレイアウト部分(「見た目」)を作り込んでいることでしょう。
こういったレイアウト部分の工程を「フロントエンド」と言います。(厳密には違うかもしれないが、イメージしやすいため、ここではこのように定義する。)
さらにフロントエンドで活躍する人は、HTMLやCSSでコーディングしていくだけではありません。
「Javascript」というプログラミング言語で、ウェブページに動きを加えていく方もいます。
例えば、名古屋のネット企業「エイチーム」のウェブサイトは以下のような感じ。
ご覧の通り、こういう動きのあるウェブサイトを実現するのがCSSやJavascriptの役目です。
ウェブサイト制作のコーダーは大体この「HTML+CSS+Javascript」でフロント部分のコーディングをしています。
2.プログラミングを習得する
WebエンジニアあるいはWebのプログラマを目指すのであれば、ここのレイアウト部分をやりつつ、機能部分(「動き」)を作っていかなくてはなりません。
要するに「プログラミング」のことです。
当然、プログラミング言語を覚える必要があります。
先に説明した、HTMLやCSS, Javascriptももちろん覚えないといけませんが、それらに加えて「 PHP」、「Ruby」、「Java」、「Python」などのWebアプリ向けのプログラミング言語を習得する必要があります。
これらはWeb系では人気かつよく使われている言語です。
HTMLやCSSと異なり、サーバやデータベースと連携しなければなりません。
ここがWebプログラミングの核となる作業です。
会社によっては、HTMLとCSSでレイアウト部分を作る人、PHPやRubyなどで機能部分を作る人、という様に分担制を採用しているところもあります。
しかし、大抵はこれらを一人でやることが多いとおもいます。
ちなみに私は初めて触れたプログラミング言語は「Ruby」でした。そして、就職してからは「Java」、次に「PHP」でした。
最初からプログラム開発の方に力を入れてやっていたからか、HTMLやCSSの部分をあまりがっつり勉強していなかったことも続けられなかった原因だとおもう。
基本的にはプログラミングの練習しながら、HTMLやCSSを同時に習得していくのが一番いいのかもしれませんね。
しかしこれを独学でやるのは忍耐力と根気が必要です。
自宅にいながらプログラミングを学習できるサービスとして、Progateやドットインストール、CodeAcademy、Udemyなど様々存在しています。
まずは、これらを上手に活用しながら、プログラミングを習得していくのが良いでしょう。
ただし、これらに永遠と取り組んだとしても基礎は理解できても上達は見込めないのが現実です。
プログラミングが上達するには、やはり自分で0から何かアプリをつくってみることが上達への一番の近道です。
もし頼れる人がいるなら、その人を頼るべきです。
もし頼りがいない場合は、オンラインでも対面でもプログラミングスクールで講師に教えてもらいながら、習得していくのが近道かもしれません。
自分の場合は、上司がいたこととお金をかけたくないという想いから、プログラミングを無理に独学で身につけようとしてました。
しかし、結局何もできないまま月日が流れてしまいました。
なので、多少お金はかかっても専門家から学ぶことをお薦めします。
3.フレームワークの使い方を覚える
2のプログラミングと関係してくる部分です。
各言語(CSSやJavascript含む)にはよく使う機能をあらかじめ準備し、コードの書き方をシンプルかつ共通化して扱う「フレームワーク」というものが存在します。
以下参考に。
基本的には各プログラミング言語のコードの書き方を覚えることが最優先です。
しかし、多くのWebサービス企業はこの「フレームワーク」をつかって、プログラミングにかける時間と労力を最小限にして、コードの書き方の共通化を実現しています。
各言語、一例ですが代表的なものに以下の様なフレームワークが存在します。
・CSS → Bootstrap, Renaissance.css, Skelton
・Javascript → jQuery, Node.js, React.js, Vue.js
・PHP → CakePHP, FuelPHP, Laravel
・Java → Struts, Spring, Play
・Ruby → Ruby on Rails
・Python → Django, Bottle
通常のプログラミング言語とフレームワークでは処理部分で書き方が少し異なっていますが、ベースとなる考え方は同じです。
まずはプログミングそのものを覚えるようにしましょう。同時並行でフレームワークでの書き方の規約を身につければいいです。
4.サーバの使い方を覚える
フロントエンドで「HTML + CSS + javascript」でレイアウトのコーディングをしている方と最も異なるのが、この「サーバ」周りを扱うかどうかです。
フロントエンドと対をなす意味で「バックエンド」、「サーバサイド」と呼んだりします。
そもそもサーバとはウェブサイトはもちろん、各サービスのコードやデータベースを置く「土地」みたいなもの。
これがないとウェブ上に公開してサービスを使ってもらうことができません。
web系であれば、アプリケーションサーバ・データベースサーバ・ウェブサーバなど様々なサーバが存在してきます。
ウェブサービスをサーバ上で動かすならば、サーバ上にウェブサーバ(ApacheやNginxなど)を構築する必要があります。
また、サーバは物理の筐体で購入し、OSをインストールするか、クラウドサービスを借りなければいけません。
今や格安でサーバをクラウド上で借りれるレンタルサーバがあります。よく使われるレンタルサーバとしては以下があります。
・さくらクラウド、さくらVPS(提供:さくらインターネット)
→レンタルサーバの代表格。気軽にサーバをレンタルできる。
・X Server(提供:エックスサーバ)
→WordPress運営で豊富な実績あり。
・GMOクラウド(提供:GMOクラウド)
(グループのGMOインターネットのクラウドサーバも有り)
また、運用するサービスが月々の利用者の変動が予測しにくいこともあるでしょう。
そういう場合は従量制のクラウドサーバを利用しましょう。
代表的なのは、
・Amazonの「Amazon Web Service(AWS)」
・Microsoftの「Microsoft Azure」
・Googleの「Google Cloud Platform(GCP)」
・アリババの「Alibaba Cloud」
などのlaas型のクラウドサーバがWeb系でも人気になってきている。
いずれを選ぶにしても、サーバOSのLinuxの使い方をある程度習得しておく必要があります。
UbuntuでもCentOSでもどちらでも構いません。
CUIのコマンド操作に慣れておくことが重要です。
Windowsサーバを利用するのもいいですが、こういったレンタルサーバやクラウドサーバ事業者の多くは安く安定的なサーバとしてLinuxを採用しています。(もちろんWindowsも採用している)
ウェブサービスを作ったり、運用するなら、このサーバ構築や運用の仕方も覚える必要があります。
5.データベースの使い方を覚える
次にデータベースです。
そもそもデータベースてなんだかわかりますか?
昨今様々なサービスが各社から提供されています。
例えば、どのWebサービスも初めて利用するときには、ログインアカウントの登録をしますよね。
Gmailにしろ、Facebookにしろ、Twitterにしろアカウントや個人情報を登録しないと使えないでしょ?
このアカウントを登録するときに入力した情報が「データベース」上に書き込まれ、ここにデータが保存されます。
データのやりとりが発生するWebサービスを作るなら、このデータベースも必要です。
具体的にはデータベースサーバ(DBサーバ)を構築しなければならない。
DBサーバを実現するソフトウェアに「MySQL」, 「PostgreSQL」, 「Oracle」などがあります。これら総くくりで、RDBMS(Relational DataBase Management System)と呼びます。
最近ではこれらを覆す、NoSQL仕様の「Mongo DB」なども出てきています。
以前勤めていた上司に言われて最も印象に残った教えがある。
『Webサービスを作るときに重要なのはデータベースの構造を理解し、きちんと設計・構築すること。』
プログラムをつくるときも改修するときも、またサーバやネットワークの設計をするときもこのデータベースの構造をきちんと把握し、精密に設計・構築することで良いウェブサービス・アプリケーションができるということです。
データベースの構造がむちゃくちゃだと、新規の機能追加をするときもすごく大変なんですよ。
だからこのデータベースの作り方・運用の仕方はしっかり学ぶべきです。
6.原理原則を把握する
プログラムを作ったり設計する上で最も大切なのは、原理原則を理解するこことです。
プログラムが動く仕組み、
インターネットに繋がる仕組み、
サーバが処理する仕組み、
データベースが処理する仕組み、
など数え上げたらキリがないですが、それぞれに基礎となる原理原則があります。
ここはどんな時代になっても必要となる基礎です。
特にWeb系の技術の移り変わりは非常に早いです。昨年使った流行った技術が今年は枯れ始めているなど、よくあることです。
そんな移り変わりの早い業界だからこそ、原理原則を身につけることが重要です。
これからプログラミングやサーバを勉強しようと考えているならば、それぞれの仕組みを理解することを念頭に置いておきましょう。
7.根気強く努力する
未経験者や初心者に最も心に刻んで欲しいことです。
辛抱強く、根気強くプログラムを書き続けよ。
特に初めの頃はエラーばかりでさっぱりわからないでしょう。
そのエラーがどこが原因で発生しているのか見つけるのに苦労します。
例えば、
・プログラムの書き方に問題があるのか
・サーバ側の設定が間違っているからなのか
・動作に必要なソフトがインストールされていないからか
・必要ツールも揃い、書き方も正しいが、導入されているソフトやツールのバージョンが古いもしくは新しいから不具合が発生したのか
このように考えられる原因は一つずつ追っていくしかありません。
だから、ログを見る習慣を身につけましょう。
ログと友達になるつもりで、ログの内容を把握し、わからなければググるということが大切です。
とにかく最初はトライ&エラーの繰り返しです。エラーを根気強くググるんです。
ここが続けられるか続けられないかの分かれ目になります。
ぼくは途中挫折しました。
いや、やる気もなく甘えていただけです。偉そうなことは何も言えません。
しかし、これからWeb系の仕事、あるいはプログラミングが必要な仕事に就こうとおもうなら、休みを返上してでも勉強する覚悟をもつべきです。
先ほど、この業界は技術の移り変わりが早いと説明しましたね。
常に新しい技術にチャレンジするくらいの意気が必要です。便利だと思うツールはすぐに試するくらいのメンタルで臨みましょう。
個人でフリーランスとして働くことを考えているならば、技術にこだわる必要はないとおもいます。
しかし、スタートアップやベンチャーの会社でアプリ開発をやる場合は、技術を駆使するのは重要な要素です。
覚えるべきことがたくさんあります。
こういうことも含めて楽しいと思えればきっと立派なエンジニア・プログラマになれるとおもいます。
最後に
自分のように中途半端な状態でやめてほしくないという想いから、今回記事に書きました。
Web系は本当に技術開発が早いです。
常にトレンドをウォッチすることもエンジニアとして必要です。
これからプログラミングを始める人、プログラミングを始めて少ししか経ってない人にこの内容が少しでも手助けになれば幸いです。
この記事が気に入ったらサポートをしてみませんか?