ゼロからのPHP独学勉強法10ステップ【現役PHPエンジニアが伝授】

プログラミング勉強方法
※このページの内容に広告・PRが含まれます。

PHPを独学で学ぼうと考えると様々な疑問が出てくるかと思います。

  • PHPを独学で進めたいけど何から始めればいい?
  • 自分の勉強法って正しいの?
  • そもそもPHPを独学で習得するのは可能なの?

など、PHPを独学で学習しようと考えると「何から始めたらいいのかわからない!」という方は多いかと思います。

 

そこで今回は、開発リーダーを務めた経験もある現役PHPエンジニアが

  • PHPの独学勉強法を
  • そもそも独学可能かということも含め
  • どこよりも細かく

PHPで簡単なWebアプリケーションを作れるようになるまでの10ステップを解説します。

この記事を読むことで、以下のことについて理解できます。

  • 独学でPHPを学ぶ必要な知識を知れる
  • 1人でWebアプリケーションを作るまでの道筋がわかる

それでは、具体的なステップについて見ていきましょう。

PHPを独学で進めるために必要な知識

一般的に、PHPはプログラミング初学者にとって学習しやすい言語だと言われます。

なぜなら、PHPは他の言語と比較しても以下のような特徴があるためです。

  • プログラムのルールが厳格でない
  • 広く使われている言語のためネットにも情報が多い

しかし、PHPの学習を進めようと思うとかなり多くの人が挫折を経験しています。

なぜなら、PHPを学習するということは、PHPだけでなくその周辺の技術についても知識が必要になるためです。

PHPの学習には周辺技術の学習が必須

上記でもお話しましたが、PHPの学習を進めるにあたってPHPだけ学習すればいいわけではありません。

もし、あなたがWebアプリケーションを作りたいと考えるなら、PHP以外にも以下の学習が必要になります。

PHPの学習に必要な知識
  • データベースの基礎知識
  • CookieやSessionの知識
  • GETやPOSTなどHTTPリクエストの知識
  • PHPを動かす環境構築の知識

なぜなら、PHPはWebに特化した言語であり、上記の知識はWeb開発では必須の知識ばかりのためです。

HTMLとCSSを理解している人ならWebサイトを作れて当たり前と思いますよね。同じようにPHPでWebアプリケーションを作れる人は、上記の周辺知識も身につけていて当たり前ということなのです。

これは、PHPのみに当てはまるわけではなく、RubyやGoなどといった全てのサーバーサイド言語に当てはまります。

つまり、どのプログラミング言語においても「言語以外にも学ばなければならない知識がある」ということを覚えておく必要があるでしょう。

PHPの独学に必要な時間の目安

先ほど言ったように、PHPのみを学習すればいいわけではありません。

では、PHPを独学で学ぶために必要な学習時間はどれくらいか?と言うと、最低300時間は確保したいところです。

300時間というのはHTMLとCSSも学んでいない完全初心者の場合なので、HTMLとCSSの学習を終えている方は短縮することも可能です。

ただし、正しい学習ステップを踏まずなんとなく300時間学習しても時間の無駄になってしまいます。そのため、具体的な学習ステップについて次の章で解説していきます。

本章のポイント
  • PHPの学習はPHP以外の周辺知識も必要
  • 学習時間の目安はおよそ300時間

 

PHPの独学勉強法10のステップ

では、具体的にPHPを独学で学ぶステップを見ていきましょう。

Step1:HTMLとCSSを学ぶ

まずPHPを学ぶにあたって、HTMLとCSSの知識を身につける必要があります。

なぜなら、PHPで書いたコードは最終的にHTMLに変換されてWeb上で表示されるためです。

そのため、HTMLやCSSの知識をつけていないのにPHPの学習を始めると、最終的に出力されるHTMLやCSSが理解できないという状況になってしまうのです。

したがって、まず初めにHTMLとCSSの学習を進める必要があります。その具体的な学習はProgateの「HTML」「CSS」を中級コースまで進めるのがいいでしょう。

コースは以下のコースを学習しましょう。以下のコースを全て学習しようと考えると月額1,078円(税込)かかりますが、それだけの価値は十分にあります。

HTML&CSSの上級コースやその他のコースについて学習しなくてもいいのか?と思われるかもしれませんが、Progateだけで完全にその言語を理解をすることはできません。

そのため、概要を理解できたら早めに次のステップに進むようにしましょう。

Step2:PHPの文法を学ぶ

続いて、PHPの学習に入っていきます。

まず、PHPを学習するにあたって、最初にすることはPHPを扱う基本ルールを覚えることです。

具体例を挙げるとPHPには以下のような処理を行うことができます。

  • 特定の値を保持することができる変数
  • 「1〜100を表示する」のような繰り返しの処理
  • 「変数が2のときだけ実行」のような特定の条件のときだけ実行する処理

これらのルールを組み合わせることによって、プログラムを組み上げアプリケーションを作ることができます。

上記のようなPHPの文法を学習するにも、まずはProgateで以下のレッスンを進めましょう。

Step3:デバッグの方法を知る

基本的なPHPの文法が理解できたところで、アプリケーション開発をする上で非常に重要なデバッグの知識を身につけて行きましょう。

デバッグとは、自分が想定しているようにアプリケーションが動作しているか確認する作業のことです。

 

例えば、以下のコードでは5が表示されてほしいのにブラウザでは何も表示されないケースがあったとしましょう。

<?php
  $text = 5;

  echo $txt; // ここで5が表示されてほしいけど表示されない
?>

ここで何も表示されないので、$txtの変数をvar_dump()で表示してみると

<?php
  $text = 5;
  var_dump($txt); // 値がNULLとなり5が表示されない

  echo $txt;
?>

ソースコードをよく確認すると、変数名が間違っており、$txtではなく$textということがわかったため修正できます。

<?php
  $text = 5;

  echo $text; // 5が表示される
?>

無事に表示が確認できることがわかります。

 

このようにプログラムが予想外の動きをしたときに、デバッグでその原因がわかるようになるのは必須の知識になります。

どうしてプログラムがその動作になるのか?を確認する作業を知っておくと、プログラミングの学習スピードも上がります。

Step1、2の復習も兼ねて電卓アプリを作ってみるといいでしょう。

学習ステップとしては、以下の2つになります。

デバッグの学習ステップ
dotinstall
Qiita
  • 電卓アプリをコピペする
  • function convertDispNum($num) {の次の行にvar_dump($num);と挿入して動作確認する

Step4:HTTPリクエスト(POSTとGET)を学ぶ

続いてHTTPリクエストについて学習していきましょう。

HTTPリクエストとは、簡単に言うとインターネットを通じてWebページを取得する依頼をすることをいいます(厳密には違いますが)。

例えばGoogleで「PHP 独学」と検索する際にも、「PHPを独学で学習するための情報ページを取ってこい!」というHTTPリクエストを投げています。

HTTPリクエストの学習では、まず以下の2つのリクエストについて扱えるようになりましょう。

  • POSTリクエスト
  • GETリクエスト

なぜなら、これらのリクエストでは、ページをまたいで情報を共有する際に必ず使うためです。

例えば、以下の「ユーザー入力画面 → 確認画面」のケースを考えてみます。

このようにページが移り変わったときに、ページ間で名前やメールアドレスを共有する方法の1つとして、POSTリクエストやGETリクエストが使われます。

HTTPリクエストについて学習する方法についてですが、実はStep3の電卓アプリでも使用されています。

まずは電卓アプリで、HTTPリクエストで「こんなことをしているのかな?」となんとなくイメージをつけてからお問い合わせフォームを作成するのがいいでしょう。

HTTPリクエストの学習内容
Samurai Blog

Step5:CookieとSessionを学ぶ

では、PHP初学者の多くの人がつまづくであろうCookieとSessionの学習方法について解説していきます。

CookieとSessionとは、正確な説明ではないのですが、ページをまたいでデータを共有するための仕組みと理解しておくとわかりやすいかと思います。

用途としては上記のHTTPリクエストと少し似ていると言えるでしょう。

ただし、上記のPOSTとGETとは大きく異なる点があり、CookieとSessionはログイン機能といった「何度ページを遷移してもデータを保持しなければならないケース」で使用されます。

したがって、上記のPOSTとGETの使い分けの例としては下記のように分類できます。

  • 一度きりでページをまたいでデータを保存したいケースはPOSTやGETリクエストを使う
  • 何度ページを遷移してもデータを保存したいケースはCookieやSessionを使う

 

学習方法としてはログイン機能を実装してみるといいでしょう。しかし、ログイン機能は一般的にデータベースも使用されるため具体的な学習方法は次のステップで解説します。

したがって、一旦ここの学習方法についてはスキップしてください。

Step6:データベースを学ぶ

PHPを独学するなら欠かせないデータベースの知識について学ぶ方法をご紹介します。

データベースとは、CookieやSessionのようにデータを保存しておく場所のことです。

CookieやSessionと何が違うのかと言うとCookieやSessionは、ある一定時間操作されないとデータが削除されます。

一方、データベースはデータを削除するための操作をしない限り永続的にデータが残ります。

  • 一度きりでページをまたいでデータを保存したいケースはPOSTやGETリクエストを使う
  • 何度ページを遷移してもデータを保存したいケースはCookieやSessionを使う
  • データを永続的に残したいケースはデータベースを使う

データが永続的に残るなら全てにデータベースを使った方がいいのではないか?と思われるかもしれませんが、全てにデータベースを使用するとWebページの表示速度が遅くなります。

したがって、実はHTTPリクエストで実現していることはデータベースを使用すると同様のことが実現できるものの、実際は上記のように用途に合わせて使い分けられていることを知っておく必要があるでしょう。

データベースで必須のCRUD操作

もう少し、データベースについて基本的な概念を知っておきましょう。データベースを学ぶ上で欠かせないのがCRUD操作という概念です。CRUD操作とは、

  • C・・・Create:データを保存する
  • R・・・Read:データを読み取る
  • U・・・Update:データを書き換える
  • D・・・Delete:データを削除する

というデータベースのデータをどう読み書きするか?という概念のことです。

難しく感じるかもしれませんが、メモ帳(=データベース)にメモを追加(=Create)したり、消したり(=Delete)するのと同じです。

データベースはCRUDで全て完結し、扱えるようになればどんなアプリケーションでも作ることができるようになります。

 

これらの勉強法は、Udemyの「PHPからLaravelまでサーバーサイドをとことんやってみよう」という動画で学習するのがいいでしょう。

この動画では、お問い合わせフォームなどの機能をLaravelで実装することを通じて、

  • Laravelの基礎やフレームワークについての知識
  • データベース
  • POSTとGETリクエスト
  • CookieとSession

についての理解を深められます。

XAMPPやMAMPという開発環境の構築方法も紹介されているので、この動画のとおりに進めていけば、Webアプリの開発を一通り体験することができます。

» Udemyの動画で学習する

Step7:セキュリティを学ぶ

セキュリティを学ぶと聞いただけで、難しそうと思われる方も多いでしょう。

実際、初学者にとってセキュリティは苦手意識が最も強い分野の1つであり、具体的なイメージを持ちにくい分野になるでしょう。

なぜなら、セキュリティを理解するためには、上記で紹介したようなPHPの周辺知識を理解しないとセキュリティの穴が発生する理由を理解できないためです。

したがって、この記事ではPHPを独学するにあたって最低限押さえておきたいセキュリティの知識だけを紹介します。

これだけは押さえるべき2つのセキュリティ知識

PHPを独学するとしても最低限押さえておきたいセキュリティ知識は以下の2つです。

  • SQLインジェクション
  • XSS(クロスサイトスクリプティング)

細かいセキュリティの知識については説明すると、それだけで1記事書けてしまうので省略しますが、上記の2つは最低限押さえておきたいところです。

具体的な学習方法についてですが、YouTube動画で参考になるものがあるので、まずはこれを観てみるのがいいでしょう。

おまけ:徳丸本でセキュリティについて学ぶ

セキュリティ対策については、現役のエンジニアもかなり参考にしている通称「徳丸本」と言われる「体系的に学ぶ安全なWebアプリケーションの作り方」という本があるので、こちらで学ぶのが最も確実な方法といえます。

しかし学ぶといっても、この本は非常に分厚いため通読して学習することはほぼ不可能です。

したがって、何か機能を実装する際に、セキュリティに問題がないかこの本を確認しながら実装するのが最も良いでしょう。

今後、Web開発者になる人にとって手元にあって損はしない1冊なので、購入しておいてもいいかもしれません(持っておくと面接で盛り上がりますw)。

Step8:バージョン管理ツールを学ぶ

続いて、必須ではありませんが、PHPを独学するにあたってGitというツールの使い方について知っておきたいところです。

Gitとは、ソースコードにバージョンをつけることで、以前のバージョンのソースコードに簡単に戻れるバージョン管理ツールのことです。

例えば、Gitを使用していないと以下のように編集したファイルが乱立します。

  • sample.php
  • sample_2.php
  • sample_最新.php
  • sample_最新_2.php

こうした状況を避けるためにも、Gitを使ってきちんと古いバージョンも新しいバージョンも管理できることが重要というわけなのです。

 

学習方法についてですが、まずは以下のYouTube動画を観て学習し、あとは実際にコードを書きながら慣れていくのがいいでしょう。

Step9:フレームワークを学ぶ

いよいよPHPの独学としては終盤に入ってきました。ここまで学習すると簡単なWebアプリケーションを作れるようになっていますが、仕上げとしてフレームワークについて学んでおきたいところです。

フレームワークとは、一般的なWebサイトで使用される

  • ログイン機能
  • フォーム機能
  • その他の便利機能

を簡単に作成できるようにしてくれている、骨組みのプログラムのことです。企業で仕事をする際にフレームワークを使用せずに開発することはまず考えられません。

PHPであれば「Laravel」というフレームワークが圧倒的な人気を誇っています。

出典: Google Trends

具体的な学習方法ですが、Laravelを学ぶのであればLaracastsというオンライン動画サイトで学ぶのがいいでしょう。

Laracastsは、初級から上級までLaravelの充実したコースを揃えており、無料で学習する分だけでもかなりのクオリティです。
» Topic: Laravel|Laracasts

一点だけ難点があるとすると英語ということですが、ソースコードを写経するだけでもかなり勉強になります。

どうしても英語に抵抗があるという方は、先ほど紹介したUdemyの「PHPからLaravelまでサーバーサイドをとことんやってみよう」という動画で学習しましょう。

Step10:MVCの設計を学ぶ

最後に、PHPの独学にあたって設計まで学べたら文句なしのレベルで優れています。

なぜなら、Webアプリケーションを長期的に運営したいと考えるのであれば、設計を学んでおくことは非常に重要なためです。

設計の学習を怠ってしまうとバグの発生しやすいコードになり、長期的には機能追加をすることが困難になります。

 

LaravelやCake PHPなどのフレームワークで最もベースになる設計の概念はMVCという概念です。

  • M・・・Model(データベースに接続する部分)
  • V ・・・View(HTMLなどの見た目を実装する部分)
  • C ・・・Controller(HTTPリクエストを処理する部分)

MVCの概念を学ぶためには、実際にWebアプリケーションを作るしか学習する方法がありません。

したがって、Step9で学んだ内容の、どこがModelでどこがControllerか?などを見直して自分で機能追加することが最も学習になります。

 

設計は非常に抽象的な概念です。そのため、設計を学ぶためには自分でwebアプリケーションを作り、

「このファイルはどこのディレクトリに置くべきだろう」
「このメソッドはどのファイルに書くべきだろう」

など試行錯誤を繰り返すことが非常に重要なのです。

ここまで来れば簡単なオリジナルWebアプリケーションが作れるレベルになっていると思うので、ぜひ学習を進めていってください!

設計の学習内容
  • Step9の内容でどこがModelやControllerになっているか考える
  • 簡単なオリジナルアプリケーションを作ってみる

 

PHPの独学に心が折れたら

ここまで、PHPの独学勉強法についてまとめてきました。

プログラミングを始めたばかりの人でも理解できるように、かなり具体的に学習方法を書いてきましたが、

正直1人でやりきるのは無理・・・

と思われた方もいるかもしれません。

実際、PHPは簡単と聞いて独学で始めてみたものの、学習に挫折する人も少なくありません。
» (関連記事)初心者がPHPを難しいと感じる理由と挫折しない勉強法を現役エンジニアが解説

挫折しそうな方はプログラミングスクールを利用してみるといいでしょう。

今では価格が安めのプログラミングスクールも充実してきているので、目的に合わせたスクールを選ぶことで費用も抑えることができます。

おすすめのプログラミングスクールも選んでおいたので、紹介します。

おすすめのプログラミングスクール

スクール名おすすめな人受講料年齢制限転職保証対応言語受講形態受講期間
tech boost30代でもエンジニア
に転職したい人
126,500円
+月額67,540円
(税込)~
なしなし・JavaScript
・Ruby
・PHP、など
オンライン
or
通学(渋谷)
3~12ヶ月
侍テラコヤある程度自分で学習
でき、分からない
ところを質問したい人
月額2,980円
(税込)~
無料プラン
あり
なしなし・PHP
・JavaScript
・Ruby、など
オンライン1ヶ月~
Programmer
College
無料でエンジニア
に転職したい20代の人
全て0円~30歳なし・Java
・PHP、など
オンライン1~3ヶ月
TechAcademy副業したい人99,000円
(税込)~
なしあり
(プラン
による)
・JavaScript
・WordPress
・PHP、など
オンライン1~4ヶ月

tech boost

tech boostは、エンジニアが選ぶプログラミングスクールNo.1!

運営会社がエンジニア向けの転職エージェントやフリーランスエージェントを運営しているので、キャリアサポートに強みがあります。

メンターは100%現役のエンジニアで、転職時のポートフォリオとして使えるオリジナルアプリ作成もできます。

入学金がかかるため料金は少し高めですが、着実にスキルを身につけられるため、料金に見合ったリターンがあると言えます。

まずは無料相談会で、あなたに合った学習プランを提案してもらうといいでしょう。

侍テラコヤ

侍テラコヤは、サブスクリプション型のプログラミング学習サービスです。

  • 質問し放題、回答率100%のQ&A掲示板が利用できる(しかも平均30分で回答が来る!
  • 月に1回、現役エンジニアのレッスンが受けられる
  • プログラミングやWebアプリ開発、機械学習などの50種類以上の教材が学習し放題

といったサービスが受けられます。

これだけの内容にも関わらず、料金も入学金は無料、月額料金も無料のフリープランがあります(ただし、フリープランだと一部の教材やQ&A、現役エンジニアのレッスンは利用不可)。

すべての教材が利用できる有料プランでも月額2,980円(税込)~という格安で利用できます。

この料金にも関わらず、未経験からエンジニアに転職・就職するための面接対策や職務経歴書の作成サポートも付いています。

 

いつでも退会可能で1ヶ月だけの利用もOK!(有料プランの場合は、途中解約で解約手数料が発生する場合あり)

まずは無料で始められるので、とりあえず登録してみましょう。

ProgrammerCollege

ProgrammerCollegeは、正社員経験が1年以上ある30歳までの方限定で、入会金も受講料も完全無料!転職しなかったときの違約金もありません

有料のプログラミングスクールと違い、受講者が転職することで企業から報酬を得ています。なので、他社スクールよりも就活支援が圧倒的に強く就職率も96.2%を誇ります。

マンツーマンでとことん質問できる環境があり、Java Silverの資格取得もできます(受験料も負担してくれます)。

TechAcademy

TechAcademyの副業コースは、はじめての仕事の受注を保証してもらえます。

オンラインでの学習に特化しており、毎日15時〜23時の間はメンターが常時オンラインで待機しているので質問し放題。

副業中の疑問解決や品質管理も、メンターがメンタリングとチャットでサポートしてもらえます。プロからのアドバイスを通して、実務をこなす力が着実に身につきます。

 

TechAcademyは無料体験も可能なので、どうしても不安な方はまずは体験してみるといいでしょう。

 

まとめ|PHPの独学は大変だけど不可能ではない!

この記事の中で出てきた学習のステップを再度まとめると、

という手順になります。ステップが多くて挫折しそうと思われるかもしれませんが、1つ1つのステップに数週間もかかるわけではないので、トータルで見ると約300時間あれば達成できるかなと思います。

学ぶことも非常に多く、プログラミングは難しいと思われるかもしれませんが、できるようになれば自分で様々なものが作れるため非常に楽しいです。

ぜひ、この記事を読んでPHPの独学でスキルアップしてもらえたらと思います。もし挫折しそうだと思ったのなら、プログラミングスクールの利用も検討してみてください!

タイトルとURLをコピーしました