未経験の自分でもできるのかなぁと不安に思っていたのですが、
「プログラミングはビジネスツールとしてなり得るか」
というのを自分自身で体験してみるのもいいかなと思い、チャレンジ中。
何から手を付けたら良いのか、ネットで調べていると、Progateというオンライン学習サイトの口コミが良かったです。

実際にサイトにアクセスすると、ワンコちゃんのイラストがあり、全体的にやさしい感じ。
「初心者の自分でもなんとかなるかもしれない!」
っていう気持ちになりました。
さらに、サイトのトップには、
プログラミングで人生の可能性を広げよう
と書いてあるじゃないですか。
まさに、自分がしたいことだったので、もう、ここに決めました。
とはいえ、お金がないので、いきなり会員にならず、まずは、無料会員登録で。
ユーザ登録すると、無料会員でも思ったよりいろんな講座を受講できます。
そのなかで、PHPの講座は……。
ありました!
学習コース
PHP I
言語バージョン: PHP 7.0
4h 修了時間
4時間分を無料会員に受講させてしまうなんて、Progateさん、太っ腹ですね。
さっそく、チャンレジしました。
「1 章:PHPとは?」の学習(echo)
………………。
…………。
……。
が、いきなりつまづきます。
「PHPはHTMLに埋め込んで使うことができます」
ってあるのですが、
「HTMLってなに?」
おそらく、HTMLっていうのを知っておいた方がPHPをより理解できるのだろうと思いつつ、とりあえず、先に進みます。
基本的には、スライドショーで知識を学び、最後に試験形式での実践。
この講座ですが、試験形式で、分からなければ、説明されているスライドにジャンプできるボタンがあって、再度、学び直すって感じです。
試験については、自分が答えた画面と模範解答が左右に表示されており、どこが違うかが一目でわかるようになっています。
なかなか一発で全問正解にならなかったので、この仕様はとても便利でした。
そして、無事にクリアできました!
twitterとの連携もあり、うれしくて発信しちゃいました。
「2 章:PHPの基礎を学ぼう」の学習(データの種類・変数・文字列)
このあたりから、ミスが多くなっています。
・コードの文末の「;」を入れ忘れ
・「”」と「’」の混乱
ちなみに、PHPでは「”」と「’」はどちらでも良いみたいで第1章にはそういう記述がありました。なので、ずっと「”」を使っていたのですが、この章から「’」だけが回答に記載。
つまり、
PHP で ダブルコーテーション と シングルコーテーション の違い
が良くわからなくなってしまいました。
「いつかどこかでこの違いについて説明があるだろう」
って期待しつつ、先に。
で、とりあえず、レベルアップ。
うれしかったので、ツィートしちゃいました。
そして、レッスンは先に進みます。
「変数の値の更新」まで進めました。
うおおおおおおおおおお!
このあたりから、かなりキツイ。
「なぜ、「=」がイコールじゃないの?」
うーん、「=」は等号じゃなくて、代入って、どういうこと?
さらに、省略形で大パニックに。
「+=」とか「ー=」とか「++」とか「ーー」とか。
「そりゃ、省略できるかもしれないけど、省略するのをやめようよ」とボソッと独り言を。
なんか、資格試験に出てきそうだから、なんとか頑張る。
でも、泣きそう。
っていうか、泣いた。
結局、スライドの説明を何度も往復して、課題はクリアできました。
正直に言っていいですか?
この段階で、プログラミングが大嫌いになりました。
いや、正しくは、「数学のマニアックさ」に途方に暮れたというか、省略とかやめましょうよ。
数式の省略形がなければ、楽しかったのになぁ。
はぁ。
「ここでつまづくのは自分だけなのかなぁ」なんて思いながら、ここを乗り換えないとどうしようもないので、一旦、PHPの学習は途中でやめて、調査。
この数式の省略形ですが、「複合代入演算子」っていうらしいです。
ネットで調べると、多くは
「プログラムでは数式の省略形は良く使うので覚えておけ」
っていくのが多く、なかなか複合代入演算子を説明したページが出てきません。
自分の中で、まぁまぁ納得できたのはこちらですので、ご紹介しておきますね。
また、PHP以外でも、javaとかPython(フィツオン?なんて読むんだろ)とか、まぁ、他のプログラムでこの省略形は使うことも分かったので、仕方ないものだとしてとりあえず、理解はして先に進むことにしました。
そして、「文字の連結」のところでようやく出てきました。「”」と「’」の違い。
ダブルクォーテーションで文字列を囲んだ場合、中の変数を{}で囲むとその部分が変数に入っている値で置き換えられます(変数展開)。
シングルクォーテーションで文字列を囲んだ場合は変数展開されず、変数が{}で囲まれていてもそのまま文字列としてみなされます。
あまりピンときませんが、まぁ、いつか使い分けて利用することがあるんでしょうね。
「3 章:条件分岐」の学習(if・else・elseif・&&・||・switch)
条件分岐については、まぁ、そういうルールだっていう受け止め方をすると、理解が早かったです。
とはいえ、ここでも何度もスライドに戻っての繰り返して、なんとか演習課題をクリアすることができました。
「if」「 else」「elseif」といった応用問題がまぁ、面倒くさかったですが、この課題もクリアできました。
ただ、このあたりから、プログラミングのコツのようなのに遭遇しました。
模範解答ですが、空白をうまく入れているので、読みやすいんです。
「 」(スペース記号・半角スペース)をどこに入れると読みやすいのかなとか、あとは、改行の位置と改行後の始める場所。これらが、初心者だからでしょうけど、まぁ、自分は適当でした。
間違いじゃないんでしょうけど、そういったところも意識しないといけないんじゃないかなと思いつつ、次の課題もクリアできました。
さんざん、ifでの分岐をやったあとに、「switch」を習うと、便利さに感激しつつ理解することができました。あ、でも、
プログラミングではどっちでも良いのであれば、どっちかに統一してほしい
と、少しイラっとしましたが。
ただ、少しだけ、楽しさも感じることができました。
単純にタイピングミスでエラーが発生した場合、エラーメッセージがProgateの実行環境で表示されるのですが、それを追跡するのが、意外と面白いです。
まぁ、すぐに模範解答を見ちゃってもいいんですが、そこは探究するようにすると、ちょっとプログラマーになった気がします。(実際、プログラマーはそんなことしないかもしれないですが。)
「4 章:配列を使ってみよう」の学習(配列・連想配列)
条件分岐が終わったら、「配列」の学習となります。
Progateの説明が非常に分かりやすく、初心者でもすんなり理解することができました。
ただ、「配列のメリット」が良くわからず。
おそらく、意味があって、配列という考え方があるんでしょうけど、何のために配列が必要なのか分からないまま、演習課題は終了し、レベルアップ。
と、ここままで、もう3時間ぐらい経過。
まだ折り返しに来たところです。
この講座は「想定学習時間4時間」だから、自分の場合は2倍ぐらい必要なのかも。
それにしても、疲れました。