見出し画像

ジーズアカデミーでの2ヶ月を振り返って「来たるべきバカのためのパーフェクトPHP」

気がつけば2ヶ月が過ぎていた。
まったくnoteを書こうという気も起こらないほどにドタバタとした毎日。
ただ、せっかく「PHP選手権」という、ひとつの区切りでもあったので、この2ヶ月という歳月を残しておきたいと思う。

↓1ヶ月前のnote↓
ジーズアカデミーでの1ヶ月を振り返って「いつも心にツナマヨを」

「あれ?プログラミングがおもしろくない」

「くう・ねる・かく」というプログラミング三昧な日々を過ごしていると、
さすがに脳内の思考回路や、考え方もそれっぽくなってくる。

松屋での献立選びを、アルゴリズム的に表現しようとしてみたり、毎朝、コーヒーを買いに最寄りのコンビニに向かうモーニングルーティーンが脳内でfor文に変換されたり、いつからかプログラミング的なノリを獲得していることに気がつく。

1ヶ月前からはじまったPHPの授業も、HTML/CSSとJavaScriptだけでは、実現できなかったことができるようになり、"CRUD"という言葉に親しみを感じられるようになったころには、「自分がつくりたいものがつくれる」という楽しさを感じることができた。

「お!プログラミングおもしろいじゃん!」

しかし、物語は順風満帆には進まない。
そんなノリに乗ったまま、調子づいてLaravelを触りはじめたとき、そのノリは翻ってしまった。
急に、自分で、なにをしているのかがわからなくなってしまったのだ。

「あれ?ちゃんとコピペしているはずなんだけどな」
自分でなにをしているコードなのかが分からない、なぜそれが動くのかが説明できない、だから、エラーが起きても、どうしていいか分からない。
よって「ちゃんとコピペしてるのに!」という言い訳しか立たない。

フレームワークという武器を手に入れよう!とおもった矢先、いままでマニュアル運転していた手触り感が失われてしまい、オートマ運転になったプログラミングは、自分から離れた存在になってしまった。

勉強の哲学ー来たるべきバカのために

さて、ちょっと話を飛ばそう。
『勉強の哲学』という本がある。
勉強とはどういうことか?ということを深く考えてみよう!という書籍なのだが、勉強とは自己破壊である、と放り込んだあとに著者はこう続ける。

「勉強とは違うノリに移ることである」と。

たしかにそうだ。自分だって、ジーズアカデミーに入学する前なら、バス停に並ぶ人々をみて、FIRST IN, FIRST OUTだね!とつぶやく人間とは仲良くなろうと思わないだろうし、
レストランのメニュー表をみて、Grid systemを思い浮かべるようなやつとは酒も飲みたくない。
ただ、現状、いま自分はそんなノリになってしまっている(と思う)。

勉強を通じて、人は別のノリを手に入れるのだと。ふむふむ。
しかしながら、さらに勉強を進めていくと、「ノリが悪くなる」というのだ。

たしかに、だんだんと勉強中にノリが悪くなっている自分に気がつく。
「こういうもんだから」
「こういう決まりだから」
そんなことでは、気持ちが悪くなっている自分がいるのだ。

たとえば、このJavaScriptの非同期処理の記述はずっと気持ちがわるかった。

async function doAsync() {
   // 非同期処理
}
async function asyncMain() {
   // doAsyncの非同期処理が完了するまでまつ
   await doAsync();
   // 次の行はdoAsyncの非同期処理が完了されるまで実行されない
}

なんだ、このasync functionというのは?どういう文法なのだと。
それが「Async Functionとして定義した関数は必ずPromiseインスタンスを返します」という説明を聞いて、ようやく納得がいった。


たしかにノリが悪い(笑)。
このノリの悪さというのは、厄介なもので際限がない。

なぜ?なぜ?と深ぼろうとすると、ほぼ無限に深ぼることができるからだ。

・なぜJavaScriptではこのような書き方をするのか?
・ブラウザとはなにか?
・コンピュータはどのように通信しているのか?
・暗号化とはなにか?
・素数とはなにか?

もう切りがない(笑)

じゃあ、どうしろというのか、というと、
「ほどよいところでやめなさい」というのが著者の主張なわけだが、その「ほどよいところ」というのが、「享楽的こだわり」ということになる。

細かいな話は本書に譲るとしては「享楽的なこだわり」とは、「自分なりのこだわり」である。

「そんなのやっても意味ないよ」とか「そこまでやる必要はない」とか、
そんなことに構わずやらざるを得ない、それが「こだわり」である。

クライミングにおいても、ノーマットという「こだわり」がある(僕はやらない)。
岩登りをするわけだが、ロープもつけず、下にマットも敷かずに登るスタイルを「ノーマット」というわけだが、傍から見れば、それは正気の沙汰でない。ただの気狂いに見えるかもしれない。

ただ、そういう「自分なりのこだわり」というのが個性なのであり、それがあるからこそ、なにごとも楽しいと思うわけである。

来たるべきバカのためのパーフェクトPHP

さて、話をもどそう。
フレームワークを使いはじめてプログラミングが楽しくなくなってきた私。

じゃあ、どうしようかと考えたときに目についたのが、『パーフェクトPHP』という書籍だった。
それで叩けば、鈍器にでもなるような分厚さをしている本な訳なのだが、
なんと初版の発行は2010年、書籍内のPHPのバージョンは5.3である。

なんで、こんなものを手にとったのかというと、それは本書において、
フレームワークを自作できるからである。

同書に登場する関数や文法が、そのまま使えるかといえば、すでにPHPのバージョンアップにともない削除されているものすらある。

しかしながら、フレームワークが裏側でなにをしているのかを理解しようとするならば、それを実際に自分の手でつくってみる、というのが、なんとも遠回りでありながら、自分には魅力的に感じられた。

ならばやるしかない、ということでPHP選手権の4日ほどで、8章まで(300ページほど)読みつ、書きつつ、格闘し続けた。

ここでなにが言いたいのかというと「パーフェクトPHPをやろう!」ということではなく、「自分のこだわり」のために、勉強を屈曲させることの大切さである。

勉強法にも個性があるし、個人のこだわり(なにが苦しくて、なにが嬉しいか)にあわせて、学ぶスタイルも柔軟に取捨選択しようということだ。

たしかにプログラミングの勉強において、「わからないから」という理由で、立ち止まることはよくない。読み進めたり、コードを書いていく中で、身体に馴染み、理解できてくることも多い。

しかしながら、プログラミング(勉強)から得られる歓びは人それぞれによって異なる。
だからこそ勉強法とは多様なのであるだろうし、学ぶ方向性(戦略)があっていたとしても、戦術レベルでの勉強法が、個人にあっていなければ挫折してしまう(楽しくなくなってしまう)。

それが自分にとっては、手触り感のある背景の理解、だったということだ。

苦痛と情熱の先にある自己理解

そんなことをぼんやりと考えながら、Twitter・ドラゴン桜を見ていたところ、こんな診断が目についた。

まさに、個人のこだわりには「型」があり、それにあった勉強法があるのだ。そして、そのなかにも個性がある。
(ちなみに、わたしは感情保全型。たしかに大学受験から、こうだったような。。)

・まずはアウトプットしてみる(コードを書いて、動くことの歓びを知る)
・全体像のインプットをする(動画や書籍をバーっと見る)
・アウトプットしながら血肉化する(「わかる/できない」から「わかる/できる」への転換)
・「享楽的なこだわり」が出てきたら寄り道/回り道する
・ゴール(つくりたいものをつくる)に向けて教育を追加・更新する

というのが、いま時点での自分にあった学びのスタイルだ。
そして、きっと将来、学んでいく道の途中で「自分なりのこだわり」も変化していくのだろう。

勉強が自己破壊的なものであるとするならば、たしかに自分はジーズアカデミーに、新しい自分になるためにやってきたのだ。

一方で、どんなに環境が変化していったとしても、この自分、というものからは逃れることができない。
自分が何に歓びを感じるのか、どこまでの痛みなら許容できて、どこから先は「本当につまらなく」感じてしまうのか。
新しく勉強をするというのは、そんな自己理解のプロセスなのかもしれない。

ただ、この「自分なりのこだわり」というものが、学ぶことも、遊ぶことも、生きることも楽しくしてくれるならば、
多少の傷みと情熱が必要だったとしても、ノリが悪くなることには意義がある。

ぼーっとしていたって、自分なんて理解できるはずがない。享楽と格闘と内省を繰り返しながら、きっと僕は新しい自己と出会い続けていくのだろう。

『パーフェクトPHP』のあとがきにこう書いてあった。

「本書を読んで少しでも効率的に開発ができるようになったり、プログラミングの悩みが減ったり、あるいはプログラミングが楽しい、PHPがかわいいと思えるようになっていただければ幸いです」

いまぼくはPHPが少しかわいい。

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