侍エンジニア塾では、受講生限定のQ&Aフォームで、学習の分からないところや疑問などを質問することができます。
実際に僕も使ってみて、回答までの時間も早く、内容もとても満足できたので参考にしてください。
すぐに参考になる返信がきた。
僕は下記の内容で質問しました。
目指す挙動 = 本日から1年後までの日付を出力する。
自分で考えたコードがまだ簡略化できそうな気がします。レビューしてくれませんか?
$japan_days = [‘日’, ‘月’, ‘火’, ‘水’, ‘木’, ‘金’, ‘土’, ];
for ($i = 0; $i <= 365; $i++){
$nextDay = strtotime(‘+’ . $i . ‘day’);
$day = date(‘n/j’, $nextDay);
$japan_day = $japan_days[date(‘w’, $nextDay)];
print($day . ‘(‘ . $japan_day . ‘)’);
print(“\n”);
}
参考書の課題を自分なりにアレンジして、365日分の日付を一気に出力するプログラムです。実際の挙動はこちら↓
自分の力で思った通りの出力ができたことにはとても満足しました。でも、コードを見ると、なんか見にくいというか、分かりにくいというか…。もっと良い書き方があるんじゃないかと直感的に思ったので、素直に聞いてみたのです。
すると、3時間後(思ったより早くてびっくり)には以下のような回答が来ました。
現役エンジニアの方のレビューはとても参考になりますね。教えていただいた通りに、下記のコードのように書き直し実行してみると、もちろん全く同じ出力結果になりました。↓
$japan_days = [‘日’, ‘月’, ‘火’, ‘水’, ‘木’, ‘金’, ‘土’, ];
for ($i = 0; $i <= 365; $i++){ $datetime = (new \DateTime())->modify(sprintf(‘+ %s days’, $i));
echo sprintf(
‘%s (%s)%s’,
$datetime->format(‘n/j’),
$japan_days[$datetime->format(‘w’)],
PHP_EOL
);
}
自分の書いたコードをレビューしてもらうことで学べたことが5つ。
質問して良かったと心底思いました。自分で考えたコードが、より分かりやすくなったからです。ざっと数えただけでも、以下のことが勉強になりました。
- DateTimeクラスを使うと簡単に日付を取得できる。
- modify()メソッドでタイムスタンプの変更ができる。
- sprintf()で文字列の整形ができる。
- 改行には定数がある。
- $datetime = (new \DateTime())->modify(sprintf(‘+ %s days’, $i));インスタンスの作り方をまだ理解していない。
たった1つの質問から、上記のことについて追加で調べることで、さらに学べたのです。
もし、自分のコードで出力できただけで満足して、次に進んでいたら…と思うと、レビューをもらえてかなり得しました。
Q&Aサイトは24時間質問し放題。
侍エンジニア塾はマンツーマンレッスンで受講生1人1人に担当インストラクターがつきます。
基本的に、学習内容はインストラクターに質問すればいいのですが、インストラクターも本業があるのですぐに質問に回答できないことがあります。
ですので、このようなQ&Aサイトが用意されているのです。学習を滞らせることがないように配慮されているのでとても有難いと思いました。
これからも、このシステムは大いに活用しながら学習を進めていきます。その方が、学べることの質と量が上がることを今回で確かめることができたからです。
まとめ
- 侍エンジニア塾のQ&Aサイトはいつでも質問できる。
- 返信も早い
- コードレビューもしてくれる
- 質問した方が学べる
今回は以上です。最後までお読みいただきありがとうございました。
関連記事
【侍エンジニア塾】インストラクターの変更はスムーズにできる。
【体験談】侍エンジニア塾の無料カウンセリングから初回レッスンまで