Web開発したいと思う未経験者は何から学ぶとよいのか

エンジニア

こんにちは。現役フリーランスWebエンジニアの@Masaweb4です。
元々はサーバーサイド。現在はフロントエンドエンジニアとして活動中で企業に常駐し開発業務に携わっています。

ぜひ、最後までご覧ください。

SNSを見ていると、HTML、CSSから始める人。JavaScriptを学ぶ人。最初に学んでいる内容はいろいろでおもしろいと感じました。

僕もまた、おそらく他の人とは違う経歴でWebエンジニアになりました。

現役でWebエンジニアをしている僕が、未経験者に教えるとしたら何から学ばせるか、どのように学んでもらうかを考えてみたいと思います。

もちろん、Web開発といってもいろんなWeb開発の仕方があるので、そのあたりも考慮して考えます。

Webエンジニア経験10年以上の僕がどのようにしてWebエンジニアになったのか

ポートフォリオ

僕がWebエンジニアになるまでについて話したいと思います。

元々は他の業種にいてWeb開発の仕事がしたいと思い、仕事をしながら独学でWebの勉強をしはじめました

まず最初にはじめたのはHTML,CSS,同時にPhotoshop,Illustratorなど並行していろんなことをはじめました。

理由はホームページを作れるようになりたかったからです。HTMLとCSSからはじめたらヘッダーに画像作らないといけんと思いPhotoShopに手をだし、ロゴ作らんとと思いIllustrator使いはじめて、楽しくていろんなことに手を出してしまっていました。

Webエンジニアの目指し方としては一番だめな方法かもしれません。

そんなこんなで半年くらいでホームページ作ったり、WordPressでテーマ自作したりWebシステムも作り、それを持って小さなWebシステム会社に面接に行き、拾われWebエンジニア人生がスタートしました。

今、Webエンジニアになってみて、この学び方はないなと思います笑。いろんなことに手を出すとWeb開発全体を理解するのには有効ですが、社員になってわかったのはどのスキルも仕事では通用しないということでした。

技術は通用しませんでしたが、運良く自分の学んだ内容が無駄だったり間違いということはなく、仕事をしながらスキルアップすることで、その後の仕事に活かすことはできました。

小さなWebシステム会社で開発する場合に学ぶこと

小さなシステム会社で学ぶこと

小さいWebシステム会社の場合デザイナーは不在なところが多いため、デザインできたりコーディングができると重宝されます。というかできることが多いと重宝されるということです。

また小さなシステム会社の特徴としてサーバーサイドは得意なエンジニアはいるが、フロントエンドが得意という人が少ないためフロントエンドの需要が大きくなりやすいです。

小さなシステム会社でWeb開発するために最初に学ぶことは?

僕が未経験者に最初に学ばせることは、HTML,CSSの基本を勉強してもらいます。HTML,CSSはWeb開発の基本なので0から作れなくても、修正できるくらいの知識は必要です。

HTML,CSSの学び方は?

HTML,CSSは本を1冊読む、ネットで調べる程度で十分だと思います。学ぶことは多いので、ここに時間を使いすぎない方がよいかと思います。プログラミングしている中で自然と知識が増えるので心配ありません。

ちなみにこの本は読んだことないですが、たにぐちさんの本は何冊か読んでみてわかりやすいと思ったので、この本を選んでみました。PHPの本とか書いていたような気がします。

小さなシステム会社でWeb開発するために2番目に学ぶことは?

その後は、もしフロントエンドもやっていきたいという場合は、JavaScriptというかjQueryを使えるように勉強をさせると思います。セットで使う場面があるためです。

ただ僕はWeb開発の基本はサーバーサイドだと思っているのでフロントエンドエンジニアを目指さないのであれば、PHP, Rubyあたりを勉強させると思います。

サーバーサイド(バックエンド)の言語をPHPかRubyにしたのは、小さめのWebシステムの会社で使われる言語としてPHP,Rubyが多いからです。

僕はたまたま既存のシステムがJavaだったためJavaをやりましたが、開発の時間を考えるとPHPやRubyの方がアジャイルでどんどん開発しやすいため採用されやすいからです。

独学で基本を学んでも仕事で使う技術は応用がほとんどなので、どのようにすると機能を実装できるのかを考える必要がでてきます。そしてそれを実装できる技術も必要です。

PHP, Rubyの学び方は?

僕がPHP, Rubyあたりを学ばせる場合、まずは初級の本を1冊読んでもらいます。if文の使い方、for,foreachなどのループの使い方、基本をざっくりと理解してもらいます。

初級の本は読みやすさは人により違うと思いますが、評価高い本は多くの人が理解しやすいように書かれているとおもうので、この1冊を選びました。

「パーフェクトPHP」ですが、このパーフェクトシリーズは奥が深いので、いずれ読んでもらいたいです。少し古くなってしまいましたが、内容はとても良いです。

本を読んでもらった後は、フレームワークとはどんなものか勉強してもらい、APIの作成をしてもらいます。アクセスされるとJsonを返却するといった内容のタスクを実装してもらいます。

ブラウザからアクセスし、それを受け取りJsonを返すというプログラムはサーバーサイドではよく使われる開発内容です。順を追って一つ作るとフレームワークとプログラム言語の知識が増えると思います。

2、3本のAPIを作ったら基本的な理解はできているはずです。初心者の方は開発の一部分を学ぶとそれが実際にどのような場面で使われるのかということが理解しにくいため混乱する場合があると思います。

なので僕が学ばせるとしたら、一通り流れで実装してみるという点に重きをおきたいと思いました。

小さいシステム会社はいろんなことをやることになるため、長くいるとサーバーサイドをやっていてもフロントエンドもできるようになります。僕がそうだったように。

小さなWeb開発会社に務める場合の作業をまとめると以下のようになります。

MEMO
  1. 最初はHTML,CSSから始めるのがよい
  2. フロントエンドが希望なら、HTML,CSSと並行してJavaScript(jQuery)を覚えるとよい
  3. PHP、Rubyあたりからはじめるのがよい
  4. 1冊本を読み、概要を理解する。
  5. プログラム言語と一緒にフレームワーク(PHPはLaravel、RubyはRuby on Rails)を理解する
  6. 一部分のみでなく、0から通して開発して理解する
  7. 続けていれば、フロントエンドもバックエンドできるようになる

SIerでWeb開発する場合の学ぶこと

プログラム言語Java

SIerで社員として働く場合は、新卒であれば入社後に半年くらいの研修があったりするため、そこでJavaを学ぶ機会があるかもしれません。

中途の場合は経験を求められるため、未経験での転職厳しいかもしれません。

SIerでWeb開発するために最初に学ぶことは?

それでもSIerで仕事をするために学ぶとしたら、覚える順番として、まずJava言語が最優先かと思います。僕が何度かJoinしたプロジェクトはすべてJavaでした。Javaの安定感とエンジニアのレベル等を考えると無難な気がします。

PHPあたりの言語はエンジニアの能力の差が大きいです。未経験者が手軽に始められる言語ということもあり、プロジェクトにjoinしてくる人の中にはかなりスキルが低い人がいたりします

これはスキルが低い人が悪いわけでなく、そのような状態でプロジェクトにアサインしてくる会社が悪いわけです。上司と一緒の場合は仕方がないですが、一人で参画してくる場合もあります。

Javaの場合は、理系の学校で学んでいたり、大企業で最初に学ぶ言語だったりするためエンジニアの質が悪くないという点で大企業は採用しやすいと思います。

SIerの場合はJavaとセットでOracleのデータベースを採用しているところが多いので、そちらの知識もあると良いかと思います。

その他、エクセルのスキルも多少あるとよいです。ドキュメントの整備やデータベースのデータを作ったりする時に使います。

作業の内容は分担されるため、エンジニアで参画した場合にHTML,CSSあたりをさわることがあまりないと思っていいでしょう。使ったとしてもBootstrapが使えるくらいで大丈夫かと思います。

Javaの学び方は?

Javaで使われるフレームワークは2020年現在はSpringかSpring bootがほとんどだと思います。学び方はPHP, Rubyと同様に1つAPIを作ることで大丈夫だと思います。

どのプログラム言語もオブジェクト指向の考え方を理解する必要がありますが、JavaあたりはPHP、Rubyと違い静的な型付け言語なのでごまかしがきかないというか、プログラムの設計をしっかりとするため少々難易度が上がると思います。

SpringかSpring bootを一緒に覚えていくと良いと思います。他のサーバーサイドのプログラム言語も同様ですが、フレームワークを使わないでJava開発をするということがないためです。

SIerの場合、まとめると以下のようになります。

MEMO
  1. JavaとOracleについて理解をする
  2. Spring, Spring bootを理解する
  3. エクセルも使えると尚良い
  4. フロントエンドよりバックエンドの需要が大きい

中規模のWeb制作会社で開発する場合に学ぶこと

Webツール

僕が未経験だったら目指すのはここあたりの企業かと思います。新しめの技術を使うため開発が楽しい。

フロントエンドとバックエンドの担当が分かれているところが多いですが、自分の希望が通りやすいためいろんな技術を学べる。

中規模のWeb制作会社でWeb開発するために最初に学ぶことは?

フロントエンドエンジニアを目指す場合

フロントエンドエンジニアを目指す場合は、HTML,CSS,JavaScriptあたりから勉強をはじめるべきで、今時は小規模の場合はJavaScriptというよりはjQueryを使うため使えるようにしておくのがよいと思います。

また、フロントとバックエンドを分担するということはフロント側も何かしらのフレームワークを使うことになるかと思います。2020年現在はVue(Nuxt).jsとかReact,Angularあたりを使えるようになる必要があります。

最近のフロントエンドは、以前より難易度が上がっており、エンジニアの需要も増えています。

フロントエンドの学び方

JavaScriptのフレームワークはJavaScriptの理解が前提となっており、いきなりフレームワークに入ると混乱します。まずはJavaScriptの理解に注力しましょう。

公式のドキュメントを見ながらチュートリアルをやってみます。ネットでドットインストールProgateあたりで基本を学ぶのもありだと思います。

JavaScriptを理解するだけでも時間がかかります。それに加えてフレームワークまで学ぶと考えると時間がいくらあっても足りないと思います。

それでも時間があり独学で学ぶのを選ぶなら別ですが、僕はWeb開発の会社に入りたいと思うなら、プログラミングスクールに入ります。

理由は初心者の方はつまりやすいため、できれば、メンター(教えてくれる人)がいる方がよいと思うからです。つまずいた時にすぐに質問できる環境であれば進捗もよくなりどんどん進められるということがあります。

またプログラミングスクールの多くは就職先までサポートしてくれるからです。未経験でWeb制作会社に転職したいという場合は特にプログラミングスクールはおすすめです。就職すると受講料が戻ったり、割引になるスクールもあります。

サーバーサイドエンジニアを目指す場合

サーバーサイドエンジニアを目指すならPHP,Ruby,Pythonあたりですが、Pythonエンジニアは能力が高めのエンジニアが人手不足なだけで、初心者がPythonを学ぶ必要があるかというと、僕はまだ早いのかなと思っています。次のステップでもよいかなと思っています。

サーバーサイドなのでSQLも一緒に覚えたいところです。またフレームワークの使い方も覚える必要があります。PHPであればLaravel、RubyであればRuby on Railsを理解しておく必要があるかと思います。

企業によって採用する言語やフレームワークも違うため、目指す企業によって学ぶ内容を変えることが必要かもしれません。

サーバーサイドの学び方

サーバーサイドの学び方は上で書いた方法と一緒で、フレームワークを使いAPIを作ってみるのがよいです。独学でWeb制作会社を目指すのであれば実績として少し複雑なAPIを作ってみたり、アピールできるものを作るのが理想です。

即戦力になれそうというくらい評価してもらえるような準備が必要です。

中規模のWeb制作会社で開発する場合は、まとめると以下のようになります。

MEMO
  1. フロントエンド、バックエンドで学ぶ内容が異なるため目標を決める
  2. フロントエンドの場合は、HTML,CSSは基本。jQueryまでは必須のスキル。
  3. フロントエンドの場合はVue(Nuxt).js, React, Angularあたりを使えるようになるとよい
  4. サーバーサイドはPHP, RUbyあたりから始めるのがよい。企業によってその他PythonやGoなどを使用する場合もある
  5. プログラム言語と一緒にフレームワーク(PHP: Larabel, Ruby: Ruby on Rails)は必須
  6. またSQLの理解も必須
  7. 難易度が高めの実績を作る

フリーランスでWeb開発する場合に学ぶこと

wordpress

フリーランスエンジニアといっても働き方はいろいろあります。僕は企業に常駐しているフリーランスエンジニアです。契約なので月収制です。

今回、想定しているのは未経験で請け負って開発したいフリーランスエンジニアになりたい場合を考えてみたいと思います。

請負の契約について注意

企業に常駐するエンジニアの多くは時間で技術を提供し仕事をします。この契約は成果物に責任がありません。以下の記事にざっくりと書いているので見てください。

請負で仕事する場合は、成果物に責任が生じてくるという点があります。契約内容をしっかり見極めないと、トラブルになりやすいという点を理解しておきましょう。

企業に常駐するタイプの契約であれば常駐先の企業で使うプログラム言語の理解だったり合わせる必要がありますが、今回は請負で作業するフリーランスについて考えてみたいと思います。

フリーランスでWeb開発するために最初に学ぶことは?

フリーランスで請け負って仕事する場合は一人でWeb制作をすることを考えるとフロントもサーバーサイドもできるべきです。

僕は未経験からフリーランスのWebエンジニアになるというのはおすすめしませんが、請け負うということは一人でできない部分は外注することになります。

請け負う案件にもよりますが、外注に出すと、その分収入が減ることになります。

それでもフリーランスで開発したいという場合は、WordPressから始めるのがよいかと思います。Web開発の請負する場合に一番難易度が低いのがWordPressかと思います。

データベースからデータを取る部分も関数が準備されているため、自分でSQLを考える必要がないという点でも普通のシステム開発より難易度が下がります。

少しずつスキルアップして獲得できる案件の幅を広げていくとよいかと思います。

WordPressの学び方

このブログもWordPressですが、自分でブログを運営してみるのが一番早いです。ブログを運営することで以下の点を学べます。

POINT

  • ドメインの取得。設定
  • レンタルサーバーの契約
  • WordPressのインストール
  • テーマの設定

仕事を請け負う時に同様のことを依頼されるかもしれません。その時にわからない、やったことがないというと依頼する側も頼めなくなる可能性があります。仕事を請け負うということはプロなので責任を持って納品します。

WordPressはPHPでできているという点も大きいです。PHPは最初に学びやすいプログラム言語でもあり、WordPressで理解できてきたらLaravelあたりに入っていきやすくなります

また、WordPressではフロント側はjQueryが使えると十分なのでjQueryも学びましょう。jQueryに関してはドットインストールやprogateで十分だと思います。ネットで検索しても情報も多いです。調べるスキルも身につけましょう。

Web開発をどこでしたいかで学ぶ言語は変わる

どこで開発したいのか

Web開発といっても、どのような立場で開発するのかによって学ぶことも多少かわると思います。

僕自身、独学で学びましたが、仕事をしながら勉強していたため週末もずっと勉強、仕事の後も勉強して時間もかかりましたし、ドットインストールのようなサイトもなかったため理解に苦しむことも多かったです。

今は学びやすい環境がありますが、初心者の方はとにかくわからないことが多いと思います。僕がそうだったように。

そんな時に聞ける人がいるならSNSで教えてもらうのもよいと思います。なかなかよい回答もらえなかったりするならプログラミングスクールで学ぶ方が早かったりするので、自分に合った環境で学ばれるとよいかと思います。

多くの方がプログラミングを学び、将来一緒にお仕事ができたら嬉しく思います。


MEMO
  1. 未経験の方は早めに目標を決めましょう。
  2. 何を作りたいか、どんなものを作りたいか考える。そしてそのために何を学ぶか調べます。
  3. あとは独学でやってみる(プログラムを書いてみる)
  4. 独学で実績(公開できるレベルのもの)を作れるなら転職活動・就職活動をしてみる。
  5. 難しい場合はスクールに通い実績を作り、早めに就職する。