Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
プログラミング初心者に教えるときは「身近な比喩」が重要なのだ! / Metaphor is I...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Yoshiaki Yoshida
December 08, 2018
Technology
5.8k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プログラミング初心者に教えるときは「身近な比喩」が重要なのだ! / Metaphor is Important for Beginner Programmer
Yoshiaki Yoshida
December 08, 2018
More Decks by Yoshiaki Yoshida
See All by Yoshiaki Yoshida
技術ブロガーを育てる!ブログメンタリングで何を教えているのか / Passion for Blog Mentoring
kakakakakku
8
38k
プロジェクトの成功を支える ZenHub と モブプログラミング / ZenHub and Mob Programming
kakakakakku
1
6k
楽しく!アウトプットを習慣化しよう / Let's Enjoy Output
kakakakakku
3
7.1k
さぁ!今すぐプロジェクトリーダーに立候補しよう / Be a Project Leader
kakakakakku
3
10k
プロジェクトをリードする技術 (Kyash 社 再演) / Project Leading is Skill for Kyash
kakakakakku
4
2.3k
プロジェクトをリードする技術 / Project Leading is Skill
kakakakakku
45
52k
Mackerel で ECS をどこまでモニタリングできるのか / Monitoring ECS with Mackerel
kakakakakku
0
14k
[2018/01/30] Redash 初心者向けハンズオン / Redash Meetup #0.1
kakakakakku
0
2.5k
プログラミング初心者に Rails を教えるコツ / Tips for Teaching Rails
kakakakakku
5
4.4k
Other Decks in Technology
See All in Technology
ITエンジニアを取り巻く環境とキャリアパス / A career path for Japanese IT engineers
takatama
4
1.8k
AI-DLCを活用した高品質・安全なAI駆動開発実践 / AI Driven Development with AI-DLC
yoshidashingo
0
150
Dynamic Workersについて
yusukebe
2
630
ルールやカスタム機能、どう使う?理想の出力を引き出すために今知りたいIBM Bob 5つの機能
muehara
1
360
新規事業を牽引する技術選定 〜フルスタックTypeScript開発の実践事例〜
nullnull
3
360
noUncheckedIndexedAccess、3時間、1万円。 / noUncheckedIndexedAccess, 3 Hours, 10,000 JPY.
kaonavi
1
330
生成 AI × MCP で切り拓く次世代 SRE!自律型運用への挑戦と開発者体験の進化
_awache
0
170
LLMと共に進化するプロセスを目指して
ymatsuwitter
12
3.6k
PHP と TypeScript の型システム比較:AI 時代の「型」は誰のためにあるのか? #frontend_phpcon_do / frontend_phpcon_do_2026
shogogg
1
260
AWSシリコン最前線 〜AI時代のチップ選択を読み解く〜
htokoyo
1
210
SIer20年! 培ったスキルがスタートアップで輝く時
shucho0103
0
690
価格.comをAI駆動で全面刷新する ー 30年分の技術的負債を返し、次の30年の土台をつくる ー / AI Engineering Summit Tokyo 2026
tkyowa
50
56k
Featured
See All Featured
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
160
Technical Leadership for Architectural Decision Making
baasie
3
400
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.6k
The Language of Interfaces
destraynor
162
27k
Designing for Timeless Needs
cassininazir
1
250
The SEO identity crisis: Don't let AI make you average
varn
0
480
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.2k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
560
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.5k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
130
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
200
Transcript
プログラミング初心者に教えるときは 「身近な比喩」が重要なのだ! 2018.12.08 @kakakakakku
吉田慶章 @kakakakakku - ブロガー - https://kakakakakku.hatenablog.com - プログラミング講師の仕事 (副業) を2年ほどしていた
- 生徒さんとビデオチャットで 1 on 1 - 担当 : Ruby / Ruby on Rails \カック/
教える?伝える? - プログラミング初心者に教えるときに「身近な比喩」を使うと良い - 「プログラミング講師じゃないから, 関係なさそう」 - プログラミング講師に限らず, 誰でも「教える (伝える)
機会」はある - 新入社員に教える (伝える) - デザイナーなどの, 異なるロールのメンバーに教える (伝える) - 新しくプロジェクトに入ったメンバーに教える (伝える)
教えるときに何が必要? - プログラミング初心者に対しては 「生徒さんと同じ目線で考えられること」が重要 - そして「粘り強く何度でも伝え, 常に笑顔でいること」も重要 - プロダクション環境での実装経験などは, あればあるほど良い
- ただし, 必ずしも「メタプログラミングなど黒魔術に精通している」必要はない
「生徒さんと同じ目線で考えられること」って?
「if ってなんですか?」 と聞かれたらどう答える? 自分が初心者だった頃を覚えてる?
「if ってなんですか?」 (ダメな例) 当たり前すぎて説明できていない 「if とは if です」
「if ってなんですか?」 おおお, なるほど! 身近にたくさん if がありそう! 「if とは if
です」 例えば, 電車の時刻表を見ると, 平日は黒文字, 休日は赤文字になっているよね? 平日 or 休日など, 条件分岐が必要なときに使うんだよ!
プログラミング以外で たまにあるシチュエーション
年末年始に 実家に帰る人もいるでしょう
「ねぇ, エンジニアだよね?」 こんなこと言われたことはない?
「ねぇ, エンジニアだよね?」 ちょwww 直せないwww 「冷蔵庫直せない?」
親戚に自分の仕事を どのように「身近な比喩」を使って伝える? \そこで/ ( というのは, 皆さんの宿題として残しておく )
Ruby / Ruby on Rails で 連想できる「身近な比喩」とは? - 例えば, each
- 例えば, Router + MVC - 例えば, REPL (irb, rails console)
例えば, each members = ['A', 'B', 'C'] members.each do |member|
puts member end どこから来た member ? each って何のこと ? | って何 ? 全然わからない! と言われたら どう説明する?
コンビニのレジとお客さんを連想する A B C B C C A B
処理フローを連想できるようになる members = ['A', 'B', 'C'] members.each do |member| puts
member end 1番前にいる お客さん レジで接客を受けているお客さん お客さんが並んでいる
例えば, Router + MVC Router Controller Model View なぜこんなに細かいの? と言われたら
どう説明する?
株式会社 Rails (大企業) を連想する Router Controller Model View 複数の部署があり ハンコをもらって
承認を進める感じ (役割を明確に) データが必要な場合は モデル部署に依頼する
例えば, REPL (irb, rails console) > User.find(1) > User.find([1,2,3]) >
User.find_by(name: 'kakakakakku') > User.count なぜ, わざわざターミナルを開いて コマンドを実行しないといけないの?
LINE Bot に天気を聞くイメージ 今日の天気は? 今日は何曜日? ユーザー番号 = 1 は誰? 現在のユーザー数は?
お手軽に確認できたら便利だよね?
まだまだ, たくさんある - 文字列 / シンボル / 配列 / ハッシュ
とは? - Bundler / Gemfile とは? - rails db:migrate とは? - belongs_to / has_many / has_many through とは? - STI (Single Inheritance Table) とは? - などなど
「エラー」を楽しむ
「エラー」= 恐怖体験? - 特にプログラミング初心者は, エラーが出ると, 思考停止してしまう - そして, 学習するモチベーションが一気に下がってしまう (英語もよくわからない)
- 挫折する原因の1つ - 職業プログラマでも, エラーは大量に出るよ!ということを事実として伝える - そして「いかに早くエラーの原因を特定できるか」がスキルであることも伝える
例えば, NameError Did you mean? は超ヒント このあたりにミスがありそう
例えば, SyntaxError 構文が間違ってそう 既に動いている実装を見比べればわかるかも? (ヒント : カンマ)
エラー探偵になってもらう & 解決できたときの喜びを大切にしてもらう ある程度慣れてきたら binding.pry もペアプロ形式で教えることが多い
- 2017.11.25 発売 - 初心者を対象にした本ではないものの, 第11章「Ruby のデバッグ技法を身につける」が素晴らしい - バックトレースの読み方 -
print デバッグ - トラブルシューティング方法 - などなど
- 2018.11.22 発売 - タイトルに「超入門」とある通り, 本当に初心者でも理解できるように工夫されている - 「変数はオブジェクトに貼る名札である」 - 「irb
はプログラムを1行ずつその場ですぐに実行できる道具」 - 「エラーが起きても, パソコンは壊れない!安心して!」 - if の解説にも多くのページが使われている
まとめ - プログラミング講師に限らず, 誰でも「教える (伝える) 機会」はある -そのときに, 連想できる「身近な比喩」を使うと良い - プログラミング初心者に,
エラーを楽しんでもらう - エラー探偵になり, 解決できたときの喜びを大切にする \皆さんも「身近な比喩」を探してみませんか?/
fukabori.fm #2 https://fukabori.fm/episode/2 \ ゲストに呼んで頂き, プログラミング講師などの話をしたー! /
Thanks