ProgateでPHP Ⅰを履修した

無料プログラミング学習サイト、「Progate」でPHPを履修してみた。
CやJavaといった関数型言語をある程度扱える身として、一区切りついた「PHP Ⅰ」が終わった段階で所感を。

基本はCやJavaと同じ

 「PHP Ⅰ」は基本文法の説明と簡単なフォーム(テキストボックス、送信ボタン、それらのデータの受け取りなど)の作り方だった。変数や代入、if文やfor文など、基本はCやJavaと同じ(もしくは似た)構文で記述でき、「はいはいだいたい同じね」という感じだった。経験者は特に苦労しないはず。この先のカリキュラムを見ると、オブジェクト指向もサポートしているようだが、それもJavaやC++が分かっていれば問題なさそうに思える(少なくとも概念そのものに関しては)。

しかし決定的に異なる点も

 触って初めに驚いた(というか慣れなかった)のは、「型」がないことだった。"$"の有無で、変数かそれ以外かを区別するだけで、変数が指しているものが数値だろうが文字だろうが配列だろうが関係ない。Web系の言語には動的型付けのものがある、とはかねてから聞いたことがあったが、実際目の当たりにすると不安でしかない。C/C++では特にポインタ絡みで代入ミスなどを繰り返し苦悩してきたが、そういったエラーが起こらないかとヒヤヒヤする。また、''(シングルクォーテーション)と””(ダブルクォーテーション)の違いが意外と重要で、CやJavaでは「文字」と「文字列」の違いだが、PHPでは「変数が展開されるかどうか」という違いである。Cでいうとフォーマット指定子が代入されるかされないか、ということで、意識したりしなかったりする(後述)。
 勿論、根本的に違うのはHTMLありきの言語という点だ。あくまでHTML文書を動的に生成するための言語であり、PHPだけでは完結せずHTMLの知識も要する。実はHTMLはほとんどわからないので、なんで先にPHPやってんだ、って話なんですけど…(笑)。なのでHTMLを絡めた動作(フォームなど)は意外と苦労した。ここはWeb系言語の経験の有無が現れる(当然だが)。

Progateのレッスンの質は

 そんなこんなでPHPには色々感じたわけですけど、Progate側は使っててどうなのかと。ここに関してはまだカリキュラム全体が終わっていない(まだ1/5)ことを考慮すると早計になりかねないが、一応思ったことだけ。

説明・見本が具体的でわかりやすい
 構文の解説で、「こうしたらこうなる」「ここがこうなってる」という説明が豊富で、プログラミング初心者でもわかりやすくなっていると感じた。誘導やヒントも多く、「何をして欲しいか」というのが見ればわかるため演習もすんなり突破でき、「そんなに難しくないんだな」と感じられる。

細かな説明はない
 一方で、わかりやすさを重視した結果、参考書を読んでいると分かるような細かな話は少ないように思えた。「ここをこうしたらどうなるのだろう」という答えは直接的には分からない。そのため例えば、演習の際に課題を無視して試しで実行してみるなどをする必要がある。
 他にも、先述の通り動的型付けの仕様上、例えば文字に対して加算などはしてはならないのだが、それを強く意識させるような説明や課題はなく、足りない部分は自力で補う必要性を感じた。
 総じて、「あ、これProgateでやったやつだ!」となれない限り、一々ミスに躓いてしまうことになりかねないと思った(ここには言語仕様が関わるので、経験の有無に関わらない)。勿論、カリキュラムが進むにつれ細くされていくかもしれないので、現時点で電源するものでもないが。

案外わるくないぞProgate

 ホントにさわりのさわり、という段階までしか進めていないし、結局プログラミング自体は経験者なので、私の所感が妥当とは到底思えない。サービスの形態や構想を踏まえると、無料でこの質の教材が利用できるのはかなりいい。細かなところは参考書なりGoogle検索なりで補うとして、「とりあえずわかる」という段階に行くにはうってつけになるのではないかと感じた。
 今しばらくはPHP(それと前提知識気味のHTML&CSS)だが、JavaScriptやPython、他にもSwiftにも興味があるので(かなり欲張りだ)順次学んでいくつもりだ。

(余談
 前回(初投稿時)、「目次設定」(自動で目次が補完される機能)がうまく使いこなせていなかったので、今回は目次設定が生きるようにしてみた。でもプレビューできず投稿するまでどうなるか分からないっぽいので、おかしかったら「コイツ使い方わかってねぇな」とスルーしといてください。)

この記事が気に入ったらサポートをしてみませんか?