18時間耐久!地獄のPHPブートキャンプでPHPの学び方を教わってきました!
高円寺のコワーキングスペース、こけむさズのイシジマさんが代表をつとめる、ザ・マーズナレッジ株式会社主催のハッカソン、「PHPブートキャンプ」に参加してきました!
PHP初心者どころか、その日入門でもOK。土曜の昼間15時から日曜9時まででCMSを各々作る!という地獄のブートキャンプでした。
僕は人が作ったコードをちょいちょいといじるのと、フレームワークとにらめっこするのと、wordpressのテーマを作るくらいのレベルなのでゼロからではないですが、ゴリゴリ書けるわけでもなく・・・。
体系的にきちんと学んだ事がなかったので、リファレンス読み会に参加したかったというのもあり参加しました!
そんなドMなハッカソンの参加者は約30人。恐ろしい・・・。
講師はマーズナレッジ取締役の佐々木多生さん。
先日のニコニコ超会議のニコ動超チューニング祭り最優秀賞が記憶に新しい武藤さん、株式会社イノーバCTOの佐藤さんも途中から助っ人講師としてご参加いただきました。。。。今更ですけどやたら豪華ですね!
というわけで、例によってブログを書き終えるまでが勉強会・ハッカソンということで、軽くまとめておきたいと思います。
この会の基本方針
手取り足取り教えるような優しい勉強会ではなく、プログラミングを学ぶ為のメソッドを提供する!
といった感じです。正確には違うのかもしれないけど多分合ってる。
今回の学習法
軽く1時間弱くらい、このイベントの説明、参加者の自己紹介タイム、学習法の案内があり、あとはひたすらPHP.netのマニュアルを8時間かけて読み、次の8時間でCMSを作り、最後1時間で成果発表という流れで行いました。
ちなみに、これは多生さんのところのバイト君に昔試して成功した方法のようです。
で、実際の内容はといえば、甘くない。全然甘くない。マゾい。
PHP.netを読み込みさえすれば、ヘタなネットの情報はいらない!
どの言語でも公式ウェブサイトのドキュメント以上に新しくて正確な情報はないのです。
wikipediaはネット関係の情報は割と正確。
ネット関係の用語に関してはwikipediaはほぼほぼ正確!
php.netを読んでわからない単語をwikipediaに突っ込めばきっとわかる!
でも際限なくwikipediaを巡回することになってしまう前に、なんとなーく最初のわからなかったことをわかるようになったらwikipedia巡りはやめちゃってよいよ!
しっかり読みすぎると時間がいくらあっても足りなくなるので、全体をざーっと読んでしまう。
あとからなんとなく「こんなことがリファレンスにあった気がするな!」とわかる程度で十分。
関数リファレンスなどをざーっと見るだけでも、その言語で何ができるのかの大枠は掴めるはず!
実にシンプル。ひたすら読むだけです。
開始2時間くらいで早くも飽き始めます。
5時間くらいでかなり飽きています。
8時間も経つと、読むのが辛くてぐったりしつつ、早くコードが書きたくなります。
という恐ろしいロジックにより、コードを書きたくて仕方が無いテンションに精神状態を持って行かれるのです。
なんということでしょう。こんな恐ろしい学習法があったとは。。。
誰しもが疲れきった顔の中コードの海へ・・・
時間は深夜0時。ぐったりしている参加者達に告げられたのは
- 朝8時までにきちんと動くCMSを
- データベースを使って
- フレームワークの使用とネットからのコピペは禁止で
- WEBアプリケーションにとって最低限のセキュリティ対策を行って
作るという課題でした。
何かしらのコンテンツをマネジメントするシステムであれば何でも良くて、思うがままに作る。したいこと、設計からみんな頑張ってね!という。
とはいえ、環境構築やSQL文あたりはPHPそのものからははずれるので助け舟を出します!という親切設計でした。
と、いうわけで僕の作ったものはこんな感じのウェブサイト。
ついでにgithub。
https://github.com/90zbear/18hPHP
詳細ページと管理画面つきの掲示板みたいな感じで作っていたのですが、ただの掲示板じゃあなあと思ってとってつけたyoutubeのDATA APIに記事タイトルを投げて検索最上位のものを謎に貼付けるという無駄機能を実装。
ユーザー管理をDBでやるのは間に合いませんでした・・・。
動画を再生しながらコメント投稿すると画面遷移の関係で駄目な感じになるので、時間があればAjaxも調べながら書きたかったなあ・・・。
そしてdb関係の処理を書いている関数が汚いのもきっとclassとか覚えればいいんじゃね!と思いつつ。
いやー、エンジニアさんは凄いっす。本当。
セキュリティ的には多分エスケープとcsrf対策的なのはできてる?気がする?といった感じです。できてるのかな・・・。
とまあそんなかんやで8時間の作業ののち、最後の成果発表へ・・・。
成果発表
やはり、皆さん大なり小なりやり残したことや、最終的に動ききらないなどといった状況ではありましたが、時間の許す限り多くの人の成果発表を行いました。
自分の普段関わっていたり使っているサービスのクローンや簡易版を作っていた人。
こんなのあったら良いなを作っていた人。
何か一つを実装したいな!と思って作っていた人。
色々な方向性で作っている人がいました。
ゼロから18時間かけてここまで行くというのは凄い事だと思います。
たとえ完成しなくても、やりたいことは皆さん明確に見えていたのが一番良かったなあと思いました。
最優秀賞と言っていただけたとはいえ、ぜーんぜんなので、もっとじっくりセキュリティまわりは勉強しないとなあと思いつつ、基本に立ち返って引き続き勉強したいと思います!
皆様、長丁場お疲れさまでした!今度どこかのもう1ランク上のハッカソンにお互い出れるように頑張りましょう!
また、主催・講師の多生さん、お疲れ様でした!マーズナレッジのメルマガ登録したので、面白そうなイベントがあればまた顔を出させていただきますのでよろしくお願いします!