Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
プログラミング初心者に Rails を教えるコツ / Tips for Teaching Rails
Search
Yoshiaki Yoshida
January 11, 2018
Technology
4.4k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
プログラミング初心者に Rails を教えるコツ / Tips for Teaching Rails
「プログラミング初心者に Rails を教えるコツ」を発表した
http://kakakakakku.hatenablog.com/entry/2018/01/12/102123
Yoshiaki Yoshida
January 11, 2018
More Decks by Yoshiaki Yoshida
See All by Yoshiaki Yoshida
LocalStack を使ったサーバーレスアプリケーション開発 / Serverless Development with LocalStack
kakakakakku
1
570
技術ブロガーを育てる!ブログメンタリングで何を教えているのか / Passion for Blog Mentoring
kakakakakku
8
38k
プログラミング初心者に教えるときは「身近な比喩」が重要なのだ! / Metaphor is Important for Beginner Programmer
kakakakakku
2
5.9k
プロジェクトの成功を支える ZenHub と モブプログラミング / ZenHub and Mob Programming
kakakakakku
1
6.1k
楽しく!アウトプットを習慣化しよう / Let's Enjoy Output
kakakakakku
3
7.2k
さぁ!今すぐプロジェクトリーダーに立候補しよう / Be a Project Leader
kakakakakku
3
10k
プロジェクトをリードする技術 (Kyash 社 再演) / Project Leading is Skill for Kyash
kakakakakku
4
2.3k
プロジェクトをリードする技術 / Project Leading is Skill
kakakakakku
49
54k
Mackerel で ECS をどこまでモニタリングできるのか / Monitoring ECS with Mackerel
kakakakakku
0
14k
Other Decks in Technology
See All in Technology
E2Eってつらくないですか?E2Eの管理コストを下げる手段とその実践
akaboshinit
6
3k
kaonavi Tech Night#2
kaonavi
0
120
Microsoft Entra Kerberos で実現するクラウド デバイス管理
tamaiyutaro
1
390
増え続けるプロダクトの品質をどう担保するか。ProductSpecとTypeScriptによる取り組み
joere
3
380
Building Audio Plugin Ecosystem for Android in 2026
atsushieno
2
140
自律的なチームを作るためにTechPMがやらないこと
ny7760
1
510
eBPF 簡介 2026 版
shunghsiyu
0
180
推論基盤と Scale-Up Interconnect の現状と制約から俯瞰する技術動向
markunet
2
800
20261031_IoTLT_vol140_kitazaki_v1.pdf
kitazaki
0
170
コードレビューをなくして見えたもの
henteko
0
130
re:Invent2026 事前勉強会 歴史と愉しみ方10分LT編
toshi_atsumi
0
120
AI時代のエンジニアの情報発信〜個人の発信を組織の力に変える〜
ryo_kawamata
1
7.3k
Featured
See All Featured
GraphQLとの向き合い方2022年版
quramy
50
15k
Navigating Weather and Climate Data
rabernat
0
580
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
Git: the NoSQL Database
bkeepers
PRO
433
67k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
450
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
670
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3.1k
Designing for humans not robots
tammielis
254
26k
Building a Scalable Design System with Sketch
lauravandoore
464
34k
Exploring anti-patterns in Rails
aemeredith
4
560
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
4
4.4k
Transcript
プログラミング初心者に を教えるコツ 2018.01.11 表参道.rb #30 吉田慶章 @kakakakakku
吉田慶章 @kakakakakku - インフラ, サーバサイド, 認定スクラムマスター, 技術広報など - 趣味は「ブログを書くこと」 -
http://kakakakakku.hatenablog.com/ - 「アウトプット芸人」もしくは「アウトプットアスリート」
今日は「プログラミング講師」の話を
副業 - 2017年1月から プログラミング講師 (Rails) の副業をはじめた - TechAcademy「ウェブアプリケーションコース」のパーソナルメンター - 1年間で,
30名以上の生徒さんを担当した - ビデオチャットで実施する
「教える」を仕事にする - 「技術を教えること」を仕事にしたかった - 「生徒さんが挫折せず学び続けられるように導くこと」が最大のやりがい - 良い講師になる素質は「生徒さんと同じ目線で考えられること」 - 決して「メタプログラミングなど黒魔術に精通している」必要はない -
コミュニケーション能力は確実に必要
1年間の講師経験から学んだコツを紹介
コツ1 : 連想できるように身近な例を出す - 例えば, each - 例えば, Router +
MVC
例えば, each members = ['A', 'B', 'C'] members.each do |member|
puts member end
処理フローを連想できない 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 複数の部署があり ハンコをもらって
承認を進める感じ (役割を明確に) データが必要な場合は モデル部に依頼する
Router は道案内を連想する Router 「東京」に行くなら「下の道」ですよー 「/users」に行くなら「users#index」ですよー
連想の繰り返し - 文字列 / シンボル / 配列 / ハッシュ -
Bundler と Gemfile - rails db:migrate - rails console ( REPL ) - belongs_to / has_many / has_many through - STI (Single Inheritance Table)
ポイント2 : プログラミングの原則を押し付けない - 例えば, DRY / KISS / TDD
- 例えば, パーシャル
プログラミングの原則とは - 例えば - DRY (Don’t Repeat Yourself) - KISS
(Keep It Simple, Stupid) - TDD (Test-Driven Development) - 「ツライ過去を経験しているから」わかることだったりする - プログラミング初心者にとっては, 遠回りのように感じる
例えば, パーシャル <%= render 'shared/items' %> なぜ, ファイル名と同じように _ を付けないの
? なぜ, わざわざ別のファイルに書くの ?
実際に「バグを経験してもらう」 b.html.erb c.html.erb a.html.erb xxx を yyy に変更してみましょう! yyy yyy
xxx 「あー!修正忘れました!」
ポイント3 : エラーを解決するプロセスを楽しんでもらう - 例えば, NameError - 例えば, SyntaxError
エラー = 恐怖体験 ? - エラーが出ると, 思考停止してしまう - 学習するモチベーションが一気に下がってしまう (英語もよくわからない)
- 挫折する原因の1つ - 職業プログラマでも, エラーは大量に出るよ!ということを事実として伝える - 「いかに早くエラーの原因を特定できるか」がスキルであることも伝える
例えば, NameError Did you mean? は超ヒント このあたりにミスがありそう
例えば, SyntaxError 構文が間違ってそう 既に動いている実装を見比べればわかるかも?
エラー探偵になってもらう & 解決できたときの喜びを大切にしてもらう ある程度慣れてきたら binding.pry もペアプロ形式で教えることが多い
第11章「Ruby のデバッグ技法を身につける」 - バックトレースの読み方 - print デバッグ - トラブルシューティング方法 -
などなど 初心者にも参考になる
まとめ
まとめ - プログラミング初心者に教えるのは, エンジニアリングとは別次元のスキルだと思う - 1人1人にパーソナライズした教え方をする - 「連想できるように身近な例を出す」ことは効果的 - エラーが出たら「探偵」になって,
楽しんでもらう \楽しすぎる/