PHPをゼロから独学で学ぶ10ステップ【現役PHPエンジニアが伝授】

PHPをゼロから独学で学ぶ10ステップ【現役PHPエンジニアが伝授】

PHPを独学で学ぼうと考えると様々な疑問が出てくることでしょう。

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

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

そこで今回は、PHPを完全に独学で学び、1人で簡単なwebアプリケーションを作れるようになるまでの10ステップを解説します。

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

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

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

目次

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

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

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

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

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

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

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

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

もし、あなたがwebアプリケーションを作りたいと考えるのであれば、PHPの学習以外にも以下のような知識が必要になります。

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

なぜなら、PHPを使えるということは上記の知識は理解していて当たり前という認識で見られます。というのも、これらの知識なしでwebアプリケーション開発をすることはできないためです。

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

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

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

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

PHPを独学するためには、PHPのみを学習すればいいわけではありません。

では、PHPを独学で進めるために必要な学習時間はどれくらいか?という疑問が出てきますが、結論から言うと最低300時間は確保したいところです。

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

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

本章のポイント

  • PHPの学習はPHP以外の周辺知識も必要
  • 学習時間の目安はおよそ300時間

PHPを独学で学ぶ10のステップ

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

  • ProgateでHTMLとCSSを学ぶ
  • ProgateでPHPの文法を知る
  • 電卓アプリを通してデバッグの方法を知る
  • HTTPリクエスト(POSTとGET)を学ぶ
  • CookieとSessionを学ぶ
  • データベースを学ぶ
  • セキュリティを学ぶ
  • バージョン管理ツールを学ぶ
  • フレームワークを学ぶ
  • MVCの設計を学ぶ

PHPの独学ステップ1: HTMLとCSSを学ぶ

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

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

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

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

画像
出典: Progate

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

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

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

PHPの独学ステップ2: PHPの文法を知る

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

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

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

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

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

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

PHPの独学ステップ3: デバッグを知る

では、基本的な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が表示される

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

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

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

ステップ1,2の復習も兼ねて電卓アプリを作ってみるといいでしょう。

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

dotinstall

Qiita

  • 電卓アプリをコピペする
  • function convertDispNum($num) { の次の行に var_dump($num); と挿入して動作確認する

PHPの独学ステップ4: HTTPリクエスト(POSTとGET)を学ぶ

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

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

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

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

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

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

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

画像

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

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

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

Samurai Blog

PHPの独学ステップ5: CookieとSessionを学ぶ

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

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

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

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

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

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

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

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

PHPの独学ステップ6: データベースを学ぶ

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

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

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

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

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

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

したがって、実はHTTPリクエストで実現していることはデータベースを使用すると同様のことが実現できるものの、実際は用途に合わせて

  • HTTPリクエスト
  • CookieとSession
  • データベース

を使い分けていることを知っておく必要があるでしょう。

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

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

  • C・・・Create(データベースにデータを保存する)
  • R・・・Read (データベースからデータを読み取る)
  • U・・・Update(データベースのデータを書き換える)
  • D・・・Delete (データベースのデータを削除する)

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

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

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

これらの勉強法は、「気づけばプロ並みPHP 改訂版–ゼロから作れる人になる!」という本で学習するのが、いいでしょう。

この本では、PHPでのショッピングカートの実装を通して、ここまで紹介した

  • POSTとGETリクエスト
  • CookieとSession
  • データベース

についての理解を深めてくれます。MAMPやXAMPPといった初心者にも簡単にできる環境構築方法を提供しているので今後の開発にも役立つでしょう。

PHPの独学ステップ7: セキュリティを学ぶ

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

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

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

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

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

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

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

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

具体的な学習方法についてですが、実はステップ6の書籍での学習にセキュリティについて書かれた項目が存在します。

書籍での学習を通してショッピングカート機能は出来上がっていると思うので、作成したショッピングカートのセキュリティ対策をしてみましょう。

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

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

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

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

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

PHPの独学ステップ8: バージョン管理ツールを学ぶ

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

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

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

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

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

学習方法についてですが、こちらもdotinstallで学習するのがいいでしょう。

dotinstall

また、以下の記事で仕事で使うGitコマンドを10個だけまとめているので、参考にしていただけたらと思います。

あわせて読みたい
仕事で使うgitコマンド一覧!初学者必見の10選を解説します
仕事で使うgitコマンド一覧!初学者必見の10選を解説しますgitを学習するにあたって、あまりのコマンドの数に圧倒されますよね。これって全部覚えなきゃいけないの?とりあえず仕事で使うコマンドだけ知りたい!僕が去年gitにつ...

PHPの独学ステップ9: フレームワークを学ぶ

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

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

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

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

2019年6月現在では、PHPであればLaravelというフレームワークが圧倒的な人気を誇っています。

画像
出典: Google Trends

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

画像
出典: Laracasts

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

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

どうしても英語に抵抗があるという方はTechpitでLaravelの講座を探してみるといいでしょう。動画講座ではありませんが、実践的な学習という意味ではおすすめです。

PHPの独学ステップ10: 設計を学ぶ

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

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

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

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

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

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

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

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

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

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

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

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

PHPの独学に心が折れたら

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

プログラミングを始めたばかりの人でも理解できるように、かなり具体的に学習方法を書いてきましたが、「正直1人でやりきるのは無理・・・」と思われた方もいるかもしれません。

実際、PHPは簡単と聞いて独学で始めてみたものの、学習に挫折する人も少なくありません。

あわせて読みたい
PHPって難しい?プログラミング初心者が簡単なPHPで挫折する理由
PHPって難しい?プログラミング初心者が簡単なPHPで挫折する理由プログラミング初学者向けにPHPは簡単だという情報が広く知られていますが、それは事実ではありません。なぜなら、PHPを始めとしたプログラミング言語はHTMLやCSSのよう...

そうした方は、以下にPHPでおすすめのプログラミングスクールについてまとめています。プログラミングスクールは高額で質が低いというイメージがあるかもしれませんが、それは全くの誤解です。

むしろ、そうした発言をする方の多くは、スクールに入りさえすればエンジニアになれると他人任せに思っている方もかなりいます。

中には金儲けのために悪徳なプログラミングスクールもありますが、良質なプログラミングスクールは、

  • 効率よくプログラミングを学ぶ環境を提供してくれる
  • 体系的なカリキュラムで必要なステップを押さえる
  • 最短でスキルアップをするノウハウがある

など、メリットが非常に大きいです。

僕も以前、プログラミングスクールのメンターをしていたのでわかりますが、良質なスクールほど未経験エンジニアを引き上げてくれる場所はありません。

もし、少し検討してみようと思われる方は、PHPに特化したおすすめのプログラミングスクールを紹介しているので合わせてご覧ください。

あわせて読みたい
【3ヶ月】プログラミングスクールでPHPをマスターしたい人が知るべき基準
【3ヶ月】プログラミングスクールでPHPをマスターしたい人が知るべき基準「PHPを学習しようと考えているけど、結局どのスクールがいいのかわからない」「ネットで検索してもみんな言っていることがバラバラだし…」今回は、現役でエンジニアを...

まとめ

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

  • HTMLとCSSを学ぶ
  • PHPの文法を知る
  • デバッグの方法を知る
  • HTTPリクエスト(POSTとGET)を学ぶ
  • CookieとSessionを学ぶ
  • データベースを学ぶ
  • セキュリティを学ぶ
  • バージョン管理ツールを学ぶ
  • フレームワークを学ぶ
  • MVCの設計を学ぶ

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

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

ぜひ、この記事を読んでPHPの独学でスキルアップしてもらえたらと思います。

もし、良ければぜひともTwitterのシェアやはてぶのいいね!をお願いします。

追記

ありがたいことにたくさんの方にいいね!やリツイートをしていただいています。さらに多くの方にこの記事を届けていただけると非常に嬉しく思います。よろしくお願いします。

関連記事

コメント

コメントする

目次