Title TBD

中途未経験からエンジニアを目指してエンジニアになりました。学んだことなど中心に書いていきます。最近はもっぱらnoteで書いてます。https://note.com/toshi65811

よくわかるPHPの教科書 1周終えて詰まったところと分かってないところ

こんにちは。Toshiです。現在通っているプログラミングスクールでPHPの学習をしていて、テキストとして「よくわかるPHPの教科書」を使用しています。

スクールではこのテキストを3周することが課題とされていますので、まず1周終わった感想などを振り返りとしてまとめます。

 

2019年9月8日追記:プログラミングスクールに通って、エンジニア転職をはたしました。実際に働いてみてからの記事と、プログラミングスクール通うまでに行っていた独学・挫折などについても記事にしたのでご興味あれば読んで頂けると嬉しいです。

toshi65811.hatenablog.jp

 

toshi65811.hatenablog.jp

 

かかった時間と日数

このように、全体で8日間かかり、学習時間は24時間ほどでした。1周目はとにかく最後までたどり着く。を目標にしていたので、理解度はかなり低いです。

 

テキスト開始時の知識

このテキスト使用開始時の私のPHPの知識としては、ProgateでPHPのレッスンを何度か繰り返したくらいです。(結構前にやったので、オブジェクトのこととかほとんど覚えてません)

 

どのように学習を進めたか

テキストだけだと理解が難しい部分があったのですが、スクール生からUdemyのビデオを勧められてテキストと併用しています。(Udemyは頻繁にセールをやります。私は1,200円の時に買いました。セールやってないなら買うのを待つか、このテキストを使う予定なら先に買っておくのもあり)

テキストと同じ方が作成されたビデオで、やることの流れもテキストとほぼ同じなので、独学でやるならビデオも合わせて利用されることをオススメします。

ちなみに私のやり方としては

  1. まずビデオ(1.5倍速)でこのレクチャーで何をするかの概要を掴む。ここでは単に見るだけでコードは書かない。(2周目後半の今では、1周目から1.5倍速はちょっと無理あったかなと思っています)
  2. 概要を理解したら、テキストを見ながらコードを書く。(ビデオと若干違うコードを書く場合があるので気をつける。例としてechoがprintになってたりとか)
  3. もう一度ビデオを見て、今書いたコードがどのような働きをしているのか?を理解する。

こんな流れで進めています。テキストで説明読むよりは、動画で説明を聞いたほうが私は理解しやすいです。補足的にテキストも読みますが、大抵動画で説明されたことと同じことが書かれています。

ただ、後半になってくると1つのビデオが長くなってくることがあります。(1つのビデオで10分超えたりとか。)そうすると、1のまずビデオ見て概要を掴む。が複数の内容に渡ることがあります。その場合は、全部のビデオを一度見るより、1つ1つの内容ごとに区切って進めるほうが理解を伴って進めやすいと思います。

作業環境としては、自宅であれば外部モニターでビデオを見て、手元のMacでエディタを開いてコードを書いています。外で作業するときは、このようにiPadでビデオを見てMacでコードを書いています。

f:id:toshi3arai3:20190118132346j:plain

逆光えげつな


ビデオ見ながらエディタも開く。をやるにはおそらく15インチ以上の画面サイズがあったほうがいいかなと思います。13インチでやると、やれなくはないですがこんな感じです。これMacのスクショ撮ったのですが、どれくらいの広さか全然伝わらないですね。

実際に並べてやると、Udemyの画面がかなり小さくなり、ビデオ内のコードの可読性がかなり低くなると思います。

f:id:toshi3arai3:20190118132527p:plain

ちょっとせまいかなー

 


1周終えるまでに詰まったところ

1. Chapter 3-1 エラーメッセージを表示する

f:id:toshi3arai3:20190118130314p:plain

エラーメッセージ表示のために、iniファイルの編集をしないといけないのですが編集するファイルを間違えてました。テキストの書き方だと、MAMP/conf内のファイルを編集するっぽく読めるのですが、正しくは、MAMP/binの中にあるiniファイルの編集をしなければいけませんでした。

 

対処方法として、phpinfoで設定画面を開き、その中に php.ini ファイルがどこにあるのか書かれているので、正しいファイルを編集しているか確認することが必要です。Loaded Configration File という項目です。

phpinfo関数による設定内容の確認 | PHPインストールと初期設定

 

ファイルの位置がLoaded Configration Fileから分かったら、ターミナルからファイルを開くと間違いがなく安心です。(スクールの先生ともくもく会でコーチの方に教えていただきました😭)

Macのopenコマンドでファイルを開く - Qiita

 

2. Chapter 5-2 MySQLへの接続

f:id:toshi3arai3:20190118130320p:plain

 

Stackoverflow見て解決。port 8889を入れてあげなければいけなかった。なので、

  $db = new PDO('mysql:dbname=mydb; host=127.0.0.1; port=8889;charset=utf8', 'root', 'root');
となる。

 

 

 

3. あとこれ。テキストのどの辺だったか忘れました。

 

4. Chapter 5-2 execを実行する

ここでデータをSQLを使って挿入するのですが、ビデオのコードを見て、エディタで実行してもうまくいきませんでした。データが挿入されないのです。

もし同じ状況になられたら、何が問題なのかはブラウザ上ではわからないので、ここで行うexec内のINSERT INTO以下をphpMyadminSQLで実行されることをオススメします。

私の場合はsalesに数値をしてしていなかったのでエラーが出ていました。(テキストのコードはsalesに値を入れるように指示があります。)

 

Chapter 6でログアウトがうまく出来ない。という問題がありました。これはindex.php内に書いたログイン情報が残っているかどうか。を確認するコードの位置の問題なのか明確ではないので、それに関してはスクールの先生に聞いて明確にします。

 

1周終えて分かってないところ

  1. Cookieってなに
  2. Sessionってなに
  3. MySQLのリレーションの貼り方なんやねん
  4. 変数から値を取り出す方法曖昧
  5. Get, Postの違いとは
  6. htmlspecialchars, ENT_QUOTESとりあえずおまじないとして入力してるけどなんやねん
  7. ->ってどんな働きしてるの
  8. ASって分かるっちゃわかるけど、説明しろと言われたら分からん
  9. fetchってなんや

ざっとこんな所でしょうか。Chapter 5以降はもうただただ写経って感じだったので、何がどうなってるのかはよく分からず進めていた感満載です。

2周目でやっていくこと

上記のとりあえず8つは2周目で理解を深めていき、3周目でなんとなく説明できる。くらいまではなりたい。今2周目のChapter 4途中くらいまで来てますが、Cookieなど少し分かってきました。(分かった気になってるだけ)

->のアロー演算子もこの記事を読むことで理解が深まりました。このあたりはオブジェクトのお話なんですね。

 

qiita.com

 

テキスト著者様からリプいただけて、オブジェクト指向のことは今はそんな深掘りしないほうがいいのかなとも感じました。

 

あとは、先日参加したもくもく会で指摘を受けたのですが、デバックのやり方が全然わからないのは問題だなと感じています。var_dump( )を使うとよいと聞いたので、スクールの先生に質問する前にある程度は自身で問題の切り分けを出来るように力をつけていきたいです。

 

2周目は理解を深めることを意識しつつ進めます。とはいえ、実際になにか作りながら学ぶのが一番だと思うのでスピード感を意識して早めに終えるようがんばります!

早くなにか作りたい!

 

※2周目突入前にこの記事読んでオブジェクトに対して少し理解深めたらかなりテキストの理解がスムーズになりました。

qiita.com