外出先でAIとプログラミングを復習してみた

笠ヶ岳の山頂で傘をさす「あるく」 プログラミング学習

家でプログラムの勉強をする際は、
購入した教材本を閲覧しながら学んでいますが、
外出時に本は重くて持っていけません。

「外でどうやって勉強すればいいんだろう?」と
Claude(Fable5)に聞いてみました🤔

※このブログはキャラクター同士の会話形式で進みます。 → 登場キャラクター紹介はこちら

外出時にPCが使える場合の勉強例

登山道途中でHTMLクイズを解いている「あるく一行」

Claude(Fable5)に以下要望しました。

あるく
あるく

今は実践編の本を見ているけど、入門編の内容もうろ覚えなので、
基礎から復習できるものがいいな。

で、PCの場合、見てるだけだと勉強にならなそうなので、
実際にコードを書くようにしたいね。

AI先生
AI先生

いま見ている実践編はHTML&CSS実践講座で、うろ覚えなのは入門講座(HTML/CSSの基礎)のほう、という理解で進めますね。

進め方はこうします。

  1. 腕試しクイズ(今ここ)── どこが抜けてるかをまず特定する
  2. 抜けてた箇所だけ解説 ── 全部やり直すのは時間の無駄なので
  3. VS Codeで書く課題 ── 手を動かすパート。書けたらコードを貼ってもらってレビュー

「読むだけにならない」ためのポイントは、クイズも答えを見る前に自分で答えることです。間違えていいので、まず答えてみてください。



理解度チェックの腕試しクイズ

腕試し:HTML/CSS基礎 3問(易しい順)

Q1. 次のうち、HTMLの書き方として正しいのはどっち? 理由も一言で。

▽html

A: <p class="note">お知らせ</p>
B: <p class=note>お知らせ</p>


Q2. CSSで、class="note" が付いた要素だけ文字を赤にしたい。
  セレクタの書き方は?(頭の中でCSSを1行書いてみてください)


Q3. 次のCSS、<p> の文字色は最終的に何色になる? 理由も。

▽css

p { color: blue; }
.note { color: red; }

▽html

<p class="note">こんにちは</p>

3問とも、調べずに今の記憶だけで答えてみてください。答えを聞いてから、抜けている箇所に合わせて次の解説と課題を組みます。

全問正解なら基礎は生きてるので、すぐレイアウト系(flexboxあたり)の実技に進みます。

あるく
あるく

Q1: A(””がついてないとクラス名として認識されないから)
Q2: .note { color : red; }
Q3: 赤色
かな

AI先生
AI先生

3問とも正解です。しかも答え方が良いですね。

Q2で頭の中だけじゃなく、ちゃんとCSSを書けているし、Q3で詳細度の結果を即答できている。「うろ覚え」とのことでしたが、基礎の幹はしっかり残っていますね。

Q3を正解できたということは、セレクタの優先順位(詳細度)の感覚が生きているということ。ここが抜けている人が一番多いので、基礎の解説パートは飛ばして大丈夫です。

???
???

へえ、3問とも正解。いい感じじゃない。

あるく
あるく

あ、ありがとうございます!!! そういってもらえると嬉しいです!!😆
(・・・って誰だろう?)

ライ太
ライ太

あるく、目がハート😍になってるぞ。

ミナ
ミナ

こんにちはー😃
(・・・ってもう! あるくさん、美人にデレデレしすぎでしょ!!😡) 

ゴンさん
ゴンさん

お、カエデ先生、来とったんか。

カエデ
カエデ

ゴンさん、お久しぶりです。
夏山シーズンになったので、診療所開けに来ましたよ。

ゴンさん
ゴンさん

もうそんな時期やな。
カエデ先生は、夏の間に山小屋の診療所に来てくれるお医者さんやで。

あるく
あるく

初めまして、あるくです! よろしくお願いします!!!

ミナ
ミナ

ミナです! よろしくお願いします!

ライ太
ライ太

オイラはライ太だ。よろしくな😤

カエデ
カエデ

みんな、よろしくねー。
・・・ところで今って、AIにプログラム習ってるところだったの?

AI先生
AI先生

はい、そうです。

あるくさんの理解度チェックをして、
外でも復習できるコンテンツ作りを進めていますよ。

よろしければ、カエデ先生も見ていかれますか? 
医療の勉強法に通じるところがあるかもしれませんよ。



VS Codeで書く課題1 (flexboxで「横並び」を作る)

全問正解したので、「2:抜けてた箇所だけ解説 」は省略され、次に進みます。

AI先生
AI先生

読むだけにならないよう、ここからはVS Codeを開いてください。
題材は実践編にも頻出するカード型レイアウトにします。
LP作成でやったことの復習にもなるはずです。


課題1:カードを3枚、横に並べる

AI先生
AI先生

まず以下のHTMLをそのまま新規ファイル(flex-practice.html)に写経してください。コピペではなく手で打つのがいつもの流儀ですよね。

▽html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>flex練習</title>
  <style>
    /* ここにCSSを書く */
  </style>
</head>
<body>
  <div class="card-list">
    <div class="card">カード1</div>
    <div class="card">カード2</div>
    <div class="card">カード3</div>
  </div>
</body>
</html>

そのうえで、<style> の中に自分でCSSを書いて、次の状態を作ってください。

  1. カード3枚が横一列に並ぶ
  2. カード同士の間隔が20px空く
  3. 各カードに枠線(線種・色は自由)と内側の余白を付けて「カードらしく」見せる

ヒントが要る場合は「ヒントだけください」と言ってもらえれば、答えは伏せて方向だけ出します。書けたらCSS部分を貼ってください。レビューします。


うろ覚えでflexboxで横並びにしようと試みる(display: flex と gap)

やばいぐらい覚えてなくて、とりあえず適当に書いてヒントもらいました。

当てずっぽうで書いた答え

⬇️

AI先生のヒント1

⬇️

ヒント その1:flexboxで横並びに

正しい形式に直して貼ってみましたが、カードの枠線が出ません。

ヒントをもらって書き直した画面


ヒント その2:gapが効かないのは「子要素に書いている」から

gapは親に書かないと、子要素に働かないんですね。
親と子のどちらに書くか、勘違いしやすいところなので復習できて良かったです😀

AI先生のヒント2−2



ヒント その3:borderが表示されない原因は「単位の書き忘れ」

border: 1 solid black;」 と書くと枠線は出ません。CSSでは長さに必ず単位が必要で、1 だけだとブラウザはこの行をまるごと無視するとのこと。しかもエラーは出ない。これはしばらく触れていないと忘れそうです😅

AI先生のヒント2−1



修正後:flexboxでカードの横並びが完成

AI先生
AI先生

OK! 課題1クリアです。
枠線あり、20px間隔、3枚横並び──完璧です。
コードも「並べ方は親、見た目は子」がきれいに分離できていて、
.card-list.card の間に空行を入れて整理してあるのも読みやすいですね。
次は課題2:カードを画面幅いっぱいに均等に広げるに進んでいきましょう!

あるく
あるく

いやーやっとできたか。けっこう忘れているなぁ・・・。

ライ太
ライ太

最近いろんな山ばかり行ってて、勉強もご無沙汰だったんだろ?

ミナ
ミナ

夏山シーズンに泊まりで、山に行きまくるのは登山家の宿命だからね・・・。

カエデ
カエデ

AI先生が練習問題を作って、復習につきあってくれるみたいだから、何度でもやり直したらいいんじゃない?

あるく
あるく

はい!!! めっちゃ頑張ります!!!!!

ゴンさん
ゴンさん

現金なやっちゃな。ワシが言うたときはあんな返事せんかったやろ。

ミナ
ミナ

もう! 美人に声かけられると、すぐ調子に乗るんだから・・




まとめ

カエデ先生にメロメロになっている「あるく」と、それを呆れ顔に見ているゴンさん、若干嫉妬気味のミナ、WelcomeなAI先生。
興味津々なライ太

山に行き過ぎて、勉強が進まない「あるく」。
外で教材本がなくても勉強する方法を、AI先生に聞いてみました。

クイズによる定着度確認→練習問題までAI先生に作ってもらえたので、これを繰り返すことで、
外でも復習の機会を作れそうです。
(課題2はおいおいやっていきます)。

いろいろ忘れかけている初心者がどうやって勉強していくかについて、
次回は実践編の内容を中心に、考えていければなと思います。
ではでは👋