【0からPHPを学ぶ方へ】PHPの学習方法
見出し画像

【0からPHPを学ぶ方へ】PHPの学習方法


この記事を書こうと思った理由は、先日参加した未経験エンジニアと企業を繋ぐ会というイベントで、これからエンジニア転職を目指す沢山のプログラミング学習中の人と出会い、彼らの多くがまだHTML/CSSなどを勉強中でこれからサーバーサイドの学習を始める、PHPに興味があるけど学習方法が分からない。と言っていたので、学習を進めるうえで参考になればと思った為です。

唐突な自分語りですが、私は異業種からエンジニア転職を目指すにあたり、QUELCODE(名前が変わって今はKAKELCODEというらしいです)というプログラミングスクールに通いました。

多くのプログラミングスクールがRubyを教えるなか、QUELCODEではPHPを教えています。Rubyよりも案件数はPHPの方が圧倒的に多いそうなので、未経験からエンジニア転職を目指す人がPHPを選択するのは合理的かなと思います。

ただ、今振り返ると、私がエンジニアとして仕事を始めるまでプログラミングスクールで学んできたことは、正直プログラミングスクールに通わなくてもできます。(継続できるかは別の話)

また、エンジニアとして仕事を始める段階での私のPHPの理解度はとてもとてもひどいものでした。(今でもまだまだひどいものですが)

ですので、これからエンジニア転職を目指す人には、より効率よく、より深くPHPを学んでいただけたらと思い、「今自分が0からPHPを学び直すならこの方法でやるかな」という事をお伝えします。(前提としてHTML/CSSは終えているとします。まだ終えていなければProgateやドットインストールで先に学習してください)

※プログラミングで一番難しいのは継続することだと思います。いくら学習方法を知っていても、継続して実行しないと意味がありません。また、テキストなどでは理解できないことも出てくるかもしれません。

そういった場合に、メンターや学習仲間がいると継続もしやすくなると思います。過去に私が書いたこの記事の「環境づくりに関して」という項目が参考になるかもしれませんので、よければ読んでみてください。

まずはProgateから!

PHPを学ぶには環境構築が必要です。それほど難しくはないのですが、全く0から、しかも周りに聞ける人がいない。という場合には環境構築の途中で詰まる可能性があります。

それだとせっかく楽しいプログラミングを学ぶ前に挫折をしてしまいますし、それはとてももったいないです。

ですので、まずは環境構築のいらないProgateをオススメします。

やる範囲は、画像の2つくらいでいいと思います。道場コースもなんならやらなくてもいいと思います。無料の範囲だけで大丈夫です。

画像1

オブジェクト指向のところも今はまだやらなくてもいいと思います。(理解するのが難しすぎて挫折につながると思います。)

ここで大切なのは、とりあえずPHP 1は全部最後までやることです。文法の書き方を暗記する必要は一切ありませんし、今分からないことは継続して学習すれば必ず分かるようになるので、些細なところは気にせずまずはやりきりましょう。

ちょっと考えて答えが分からなければ、ヒントを見たり、答えをすぐに見てください。無理に自力で解こうとする必要はないです。

最後までやりきったらお祝いにビールを飲みましょう🍻

PHPのエラーについて知ろう!

無事ProgateのPHP 1を終えたら、エラーについて軽く学びましょう。

なぜエラーについて学ぶ必要があるかというと、学習を進めると何度もエラーに出くわすと思います。私も日々コードを書いていてエラーがたくさん出ます。

エラーは沢山の種類があります。プログラミングの実行を途中で止めてしまうものや、とりあえず無視しても動くもの(無視しちゃダメなんですけど)もあります。

そして、エラーメッセージは英語で表示されます!

慣れてくると、エラーメッセージはどこにどんな問題があるか教えてくれるとても有り難い存在ですが、最初のうちはエラーが出るたびに本当に嫌になると思います。

そして、エラーについて知らないと、エラーの対処方法が分からない→プログラミングが動かない→つまらない→つまらないから辞める。という美しい流れの完成です🏋️‍♀️

そうならないためにも、どんなエラーがあるのか。また、ざっくりとした対応方法を知っておくことはとても有益なことだと思います。

この本がオススメです。

オススメのポイントとしては、とにかく安い。99円です。安いのに結構ためになることが沢山書いてあります。ですが、今とりあえず読むのはPART 1~3だけで大丈夫です。

画像2

サラッとで大丈夫ですが、Part3だけちょっと時間をかけて読んでみてください。こんなことが書いてあったなーくらいでいいです。どんなエラーメッセージがあるか。なんて暗記する必要は一切ないです。

プログラミング学習全般に対して言えることだと思いますが、暗記は必要ないです。それよりも、頭の中に目次を作ってください。

「エラーが出たときには、あの本のPart 3を見ればだいたい解決方法載ってるよなー。」って、頭の中に目次を作るイメージです。

ここまでやったらお祝いにビールを飲みましょう🍻

大切なエディタ選び

さて、Progateで少しだけPHPのことを知り、本でエラーのことも少しだけ知りました。そろそろあなたのPCに開発環境を構築して、PHPの学習を進めていきましょう。

ここで大切なのは、エディタ選択です。

プログラミング続くか分かんないし、あんまりお金かけたくない。という方は無料のエディタでもいいかもしれません。体感的にVSCodeを使っているエンジニアが多いと思いますので、とりあえずVSCodeで良いと思います。

個人的にオススメしたいのはPhpStormという有料のエディタです。値段は1年で約10,000円です。(使用年数に応じて値段が変わるみたいですので詳しくはこちら

なぜPhpStormを勧めるかというと、PHPを書く上で便利な機能が標準で揃っているからです。例えば、文末のセミコロンが抜けていて文法的におかしかったり、括弧の閉じ忘れなど、よくあるうっかりした間違えを教えてくれます。

もちろん、VSCodeでもPhpStormと同じような機能を実現できると思いますが、自分で拡張機能を入れる必要があります。そして、それは0から学ぶ人には難しい場合があります。(拡張機能によってはパスを通したりが必要)

ですので、何もせずに色々よしなにしてくれるPhpStormをオススメします。

実はPhpStormはプログラミング学習を始めたばかりのころに薦めてもらいダウンロードしてみたのですが、多機能すぎてよく分からず(あと見た目があまり好きじゃない)ダウンロードしたのに使いませんでした。

ですが、実務を始めてから会社でPhpStormのライセンスを買ってくれることになり、それまで使っていたVSCodeからPhpStormに変えて使ってみると、本当に便利で重宝しています。

今でも見た目はVSCodeの方が好きですが、使いやすさでいうと圧倒的にPhpStormがオススメです。

有料ですが、30日の無料体験はありますし、年間で10,000円って月でいうと1,000円以下ですからね。

これで効率はかなり変わるので(私自身つまらない文法ミスに気づかず時間を無駄にしたことが何度もあります)、PhpStormを是非試してみてください!

ドットインストールでPHPを学ぼう!

ドットインストールは本当に学習に役立ちます。沢山のコンテンツがあり、これが月額1,000円はめちゃくちゃ安いと思います。

正直、ドットインストールだけで未経験者がエンジニア転職に必要なレベルまで行けると思います。

ですが、とりあえずここではさらっと行きます。PHP入門をやりましょう。

といいたいところですが、環境構築が必要です。ここが一つの鬼門かなと思います。

基本的にはビデオに従ってやれば間違いなくできると思いますが、万が一詰まって環境構築できない😇ということになれば、ドットインストールは一旦諦めましょう。環境構築で詰まったら、多分初心者で直すのは無理です。

ドットインストールで解説している環境構築方法以外にも沢山PHPを学ぶ方法はありますので、次のフォーム本に進んでください。そこで環境構築の方法が説明されています。

ドットインストールは無料でもいいですが、ちょっと音声スピードが早いので有料会員になってもいいと思います。(音声スピードを遅くできます)

ここまでやりきったらお祝いにビールを飲みましょう🍻

まずはフォーム本に取り組もう!

環境構築もしたし、PHPもProgate、ドットインストールで学んでちょっとずつ分かってきた。と少し自信がついてきたかなと思います。

ここからはテキストを使って学習しましょう。まずはこのテキストをやってみてください。便宜的に、フォーム本と呼びます。(追記:たにぐち本とフォーム本に取り組む順番を変えました)

内容としては後で紹介するたにぐち本と似ています。ですが、こちらの方が大分簡単だと思います。また、量もそれほど多くはないので、1冊を終えるのに時間もあまりかかりません。

次に紹介するたにぐち本から始めてもいいのですが、あちらはカバーしている範囲が広く内容も難しいため、フォーム本から始めることをオススメします。

まずは1冊をさらっとで良いので1周して、やりきった達成感を味わいましょう!この本もPHPが初めての人にとってはそれなりに難しいと思います。

この本の中で、環境構築やエディタのインストールの話が出てきますが、すでにドットインストールで環境構築を終えていたり、VSCodeやPhpStormなどのエディタをインストール済みの場合は「学習環境の準備」の項目は飛ばして構いません。

ちなみに、このテキストはこちらのブログで書かれていたものを書籍化したようです。

こちらのブログはプログラミング学習方法について色々参考になる記事が書かれており、とても役立つのでぜひ読んでみてください。

サイト上で無料でフォーム本の内容と同じようなことは読めそうですが、500円と安いし読みやすいのでKindleで買うことをオススメします。

ここまでやりきったらお祝いにビールを飲みましょう🍻

谷口本を1周しよう!

フォーム本をさらっと1周したら、次は「よくわかるPHPの教科書」をオススメします。便宜的に、たにぐち本と呼びます。

私は他にこのような初心者向けPHPのテキストをやっていないので、他の本でも代替可能かもですが、基本的にはこれをオススメします。(理由は後述)

私はKindle版で買ってiPadで見ていましたが、紙の本を買う場合にはブックスタンドを使うと非常に読みやすいのでオススメです。1,000円ちょっとですが大分はかどります。(適当にでてきたリンクを貼っただけなので、自分で調べて好みのブックスタンドを探してください)

実はこのたにぐち本を勧める理由として、Udemyでほぼ全く同じ内容が、たにぐち本の著者によりビデオで解説されているからです。

正直テキストだけ見てもわからないところが結構あると思います。ビデオで解説があるとすごく理解度が増しますので、書籍と併用を薦めます。

もしUdemyでビデオを購入される際はセール中に買ってくださいね!Udemyは頻繁にセールを行っています。絶対に定価で買わないでください。(定価は異常に高額なものが多いです。)セール中ならこのビデオは恐らく1,000円ちょっとで購入できると思います。

このたにぐち本ですが、正直最初はかなり難しいと思います。特にChapter 5,6とか最初は意味不明だと思います。

ですが、とりあえず最後まで1周しましょう。理解できてなくていいので、テキストを写経して、とにかく1周やりきることが大切です。

Chapter 3はさらっとでいいです。Chapter 5,6をやっていて、詰まった時や、「この関数なんだっけ?」という時に辞書的に見返してください。

繰り返しますが、Chapter 3に出てくる関数などを暗記しようなど思わないでください。

もしChapter 5,6でエラーにより動かなくなった場合は、コードをダウンロードして、ダウンロードしたコードを使って学習を進めてください。

ここまでやりきったらお祝いにビールを飲みましょう🍻

過去に私がこのテキストを使って学習したメモをブログにしましたので、よければ参考にしてください。

それと、著者のたにぐちまことさんはTwitterで色々情報発信をされていたり、Slackでコミュニティを運営されているので、もし質問などあればSlackで聞いたりしてもいいのかもしれません。

再びフォーム本!

たにぐち本を一周さらっと終えたら、もう一度フォーム本に戻ってさらっと2周目をしてみてください。1周目より大分理解度が上がっていると思います。

フォーム本の2周めが終わったら、たにぐち本ももう1周してください。たにぐち本の2周目を終えたら、よければ私が過去に書いた記事を読んでみてください。

SQLを学ぼう!

ここまで来ると、少しずつPHPのPostなど理解できてくるんじゃないかなと思います。ですが、依然としてたにぐち本のChapter 5,6が難しいのは変わらないと思います。

何が難しくさせているかというと、PHPもさることながら、SQLも書かれていますよね。個人的にそれがより難しくさせているかなと思います。(PHPがわかんないのに、SQLというもう一つ分かんないものが追加されてる感じ)

ここで一度SQLをさらっと学びましょう。Progate、ドットインストールの順番でやってみてください。

その後テキストを使うなら、定番はこちらのようです。大抵どのサイトでもSQLのオススメ本として薦められています。(キリン本と呼ばれてるみたいです)

私は上記本ではなく、テキストではまずこちらを使用しました。

このテキストに出てくる問題に、ブラウザ上の専用サイトで取り組むことができます。SQLは書いて覚えるのが一番いいかなと思うので、問題に沢山取り組めるこのテキストは個人的におすすめです。(キリン本は解説中心で問題数がかなり少ないです)

もし「スッキリわかるSQL入門」をやるなら、やる範囲としてはたにぐち本のChapter 4でやる事と同じ箇所をやれば大丈夫です。全部をやる必要はまったくありません。

ここまでやりきったらお祝いにビールを飲みましょう🍻

たにぐち本を難しくさせるもう一つの要因

SQLも学んで、たにぐち本に対しての抵抗はかなり少なくなってきたと思います。ですが、個人的にあと1つだけ、たにぐち本のChapter 5,6を難しくさせる要因があると思っています。

それはChapter 5−2で出てくるPDOオブジェクトです。この画像のような$memos->bindParamの ->って理解できます?

画像3

フォーム本の「PHPからデータベース接続、クラスとインスタンス、SQLのINSERT文、セッションの破棄」でもPDOに関しては少し触れられていますが、初学の内容を超えているので理解できなくても大丈夫です。と書かれていますね。

たにぐち本に取り組んでいた当時、結構私はこの辺りが理解できずもやもやしていました。(特に初めてPHPを学習したときはフォーム本の存在を知らなかったので、余計難しかったです。)

PDOについてはこちらの記事ではこう書かれています。

PDOの使用は前提知識として、「PHPでクラスとインスタンスの概念が理解できる」「PHPとMySQLの接続ができる」ことが求められるので、初心者には少し難しいかもしれません。

やっぱりちょっと理解するのが最初のうちはむずかしいんですよね。

このあたりスッキリしない人は、有料にはなってしまいますがProgateのPHP 2~4をやってみたり、Qiitaのこの記事を読むとすごく参考になると思います。Qiitaの記事はぜひ読んでみてください!

もう一度たにぐち本

ここまで来ると、1周目とは段違いにChapter 5,6の理解度が上がっていると思います。特に、Chapter 4のSQLを学ぶパートなんかは「めっちゃ簡単じゃ~ん」って感じになってると思います。

ここからは、Chapter 6で作ったものに対して機能を追加してみたり(いいね機能とか)してもいいかなと思いますし、ここまできたらたにぐち本は一度お役御免という感じでしょうかね。

ここまでやりきったらお祝いにビールを飲みましょう🍻

配列の学習

たにぐち本で学んできたことは基本はCRUD処理です。CRUDについてこちらの記事を引用します。

システムに必要な4つの主要機能である「Create(生成)」「Read(読み取り)」「Update(更新)」「Delete(削除)」の頭文字を並べた用語

CRUD処理がまずはちゃんと書けるようになることが大切ですし、この辺りきちっとできれば、正直私が実務にはいったときよりもPHPの理解力は上だと言えます。(私は実務開始時、この程度もおぼつかなかったです。PHPにしばらく触っていなかったこともありますが)

実務にはいって、CRUDができるようになってきた私が次になやんだのが多次元配列の扱い方です。多次元配列についてはこちらの記事を読んでください。

単なる配列をforeachで扱う。などは簡単なのですが、多次元配列になるとうまく値が指定できなかったり、操作するイメージがなかなか掴めず苦労しました。

もし私と同じ状況になった場合には、こちらの本がオススメです。

フォーム本と同じ著者で分かりやすいですし、配列だけを扱ったテキストは珍しいと思います。そしてとても安いのに、内容はとても充実しています。

終わりに

プログラミング学習について調べれば調べるほど、何を勉強して良いのかわかりにくくなると思います。学ばなければいけないことが多いですし、テキストも沢山あります。選択肢が多いほど迷うのは当然だと思います。

今回この記事で紹介したのも、数ある選択肢のうちの1つでしかありません。私はまだ実務半年の素人同然ですので、この学習方法が正しいとは限りません。

ですが、これまで勉強してきたことを振り返ると、この記事で紹介した学習方法を行っていればもっと早くPHPを身につけられたなと思っています。

派手さはなく、地道な学習方法だと思いますが、ここまで出来れば「どれくらいPHPできるの?」と質問された時に「生のPHPでCRUD処理はかけます」と言ってもいいのでは、と思います。

ここから先は、ドットインストールにあるPHPとJavascriptを組み合わせて行うレッスンをやってみたり、Laravelなどのフレームワークの学習に進んでもいいかもしれません。


この記事が気に入ったら、サポートをしてみませんか?
気軽にクリエイターの支援と、記事のオススメができます!
元派遣で外資IT勤務TOEIC900超えが唯一の取り柄のノースキルマン。プログラミングスクール #QUELCODE に2018年12月〜5月まで在籍。2019年7月から受託開発会社勤務。以前ははてぶでかいてました https://toshi65811.hatenablog.jp/