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
Educating with Ruby
Search
Brett Chalupa
September 21, 2013
Programming
1
490
Educating with Ruby
Why Ruby is a Great Language for Teaching (and Learning) Programming
Brett Chalupa
September 21, 2013
Tweet
Share
More Decks by Brett Chalupa
See All by Brett Chalupa
How to Level Up as a Developer
brettchalupa
0
65
The Difference Between Average and Great Developers
brettchalupa
0
30
Doing Your Best Work - Productivity for Ambitious Developers
brettchalupa
0
66
What Changed & Why
brettchalupa
0
46
Developer Roles & Levels Explained
brettchalupa
0
55
Testing Rake Tasks
brettchalupa
0
250
Learning to lib Again
brettchalupa
0
57
Tools of a Ruby & JavaScript Developer
brettchalupa
1
170
History of a Thriving Codebase
brettchalupa
0
44
Other Decks in Programming
See All in Programming
Amazon Qを使ってIaCを触ろう!
maruto
0
410
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
250
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
100
Remix on Hono on Cloudflare Workers
yusukebe
1
300
初めてDefinitelyTypedにPRを出した話
syumai
0
420
カンファレンスの「アレ」Webでなんとかしませんか? / Conference “thing” Why don't you do something about it on the Web?
dero1to
1
100
AI時代におけるSRE、 あるいはエンジニアの生存戦略
pyama86
6
1.2k
.NET のための通信フレームワーク MagicOnion 入門 / Introduction to MagicOnion
mayuki
1
1.7k
『ドメイン駆動設計をはじめよう』のモデリングアプローチ
masuda220
PRO
8
540
型付き API リクエストを実現するいくつかの手法とその選択 / Typed API Request
euxn23
8
2.2k
アジャイルを支えるテストアーキテクチャ設計/Test Architecting for Agile
goyoki
9
3.3k
CSC509 Lecture 12
javiergs
PRO
0
160
Featured
See All Featured
Testing 201, or: Great Expectations
jmmastey
38
7.1k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Happy Clients
brianwarren
98
6.7k
A better future with KSS
kneath
238
17k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
1.9k
It's Worth the Effort
3n
183
27k
Imperfection Machines: The Place of Print at Facebook
scottboms
265
13k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Speed Design
sergeychernyshev
25
620
Transcript
Educating with Ruby Why Ruby is a Great Language for
Teaching (and Learning) Programming Brett Chalupa
Who are you? Who are you?
Who are you? Hopefully someone who is interested in how
and why people learn programming.
Who are you? Maybe you have kids or are going
to have kids or teach people or want to learn programming yourself.
Who am I? Who am I?
Who am I? My name is Brett Chalupa.
Who am I?
Who am I? I work at Burton, as an associate
web programmer.
Who am I? I am an organizer of the annual
Burlington Ruby Conference.
Who am I? I teach Ruby to kids.
Who am I? I make things.
Introduction Programming is important? Right?
Introduction Look, even Mr. i.am is taking coding classes!
Introduction Programming is empowering.
Introduction Programming is exhilarating.
Introduction Programming is expressive.
Introduction Is programming accessible?
Introduction Is programming accessible? Yes.
Introduction Is programming accessible? Yes, but it is overwhelming.
Language Java, JavaScript, Python, C, C+ +, C#, Objective-C, Lua,
F#, Scala, Clojure, the list goes on and on.
Language There are quite literally hundreds of programming languages out
there, each with their own role in the world of computer science.
Language How does one pick a language to learn? Pick
a name out of a hat? Do some research?
Language Maybe you go to Stack Overflow or ask on
a forum.
Language If someone has had little-to-no exposure to programming, it
is difficult to know the intricacies of languages and how they work.
Language Do I use Netbeans, Eclipse, XCode, IntelliJ? What the
heck is the terminal?
Language Some languages are much more difficult to learn than
others, whether it is due the syntax, the tools, the community or the resources available.
Language There is one language, though, that is perfect for
those new to programming - Ruby.
Language Ruby is an expressive, open- source, object-oriented language that
is actually fun to program in from the beginning.
Why Ruby A person can learn Ruby and use it
for their personal projects. A person can use it at work projects. There is a demand for Ruby developers.
Why Ruby There is a logical path of progression.
Introduction to Ruby Ruby is really cool. So cool that
anyone naturally can read it.
Introduction to Ruby C++: #include <iostream> using namespace std; int
main () { for (int i = 0; i < 5; i++) { cout << "Save me!"; } return 0; }
Introduction to Ruby Ruby: 5.times do print "Konichiwa!" end
Introduction to Ruby Ruby: 5.times { print "Konichiwa!" }
Introduction to Ruby There is much more to a language
than looping and printing out words, but a lot of that elegance, readability and simplicity is common throughout Ruby.
A Brief History of Ruby Ruby is from Japan and
was initially created in the early 90s by a man named Yukihiro Matsumoto.
A Brief History of Ruby "I hope to see Ruby
help every programmer in the world to be productive, and to enjoy programming, and to be happy. That is the primary purpose of Ruby language."
Why Ruby Ruby covers a large amount of concepts that
are important in programming (and object- oriented programming).
Why Ruby And it leaves out the "hard" stuff.
Why Ruby There are "career paths" and you are not
just limited to using Ruby. You should pretty easily be able to hop into C+ +, Java, Python, etc. without too much of a problem.
Why Ruby Really inspiring and helpful community.
Why Ruby Great resources like: Hackety Hack _why's poignant guide
try ruby Learn Ruby the Hard Way Railscasts
How I Learned to Code It is story time.
How I Learned to Code I started dabbling with code
when I was 13 with some HTML and CSS on a Wordpress blog.
How I Learned to Code Let's rewind.
How I Learned to Code I grew up with the
Internet.
How I Learned to Code My first formal introduction to
programming in the education world was Java when I was 15.
How I Learned to Code Why is Java the go-to
language for high school AP computer science courses?
How I Learned to Code Onward! To College!
How I Learned to Code Python, AS3, C++, C# OH
MY .
How I Learned to Code Apprenticeships. Let me tell you
about apprenticeships.
How I Learned to Code I got apprenticeship doing more
HTML, CSS and Wordpress (and some thinking).
How I Learned to Code I got an apprenticeship where
I learned Ruby (and some Python).
How I Learned to Code At this point, on any
given day, I was coding in C++, C#, AS3, Ruby and Python.
How I Learned to Code I got to really see
the particulars each of those languages have.
How I am Still Learning to Code I decided to
leave school and do my own thing - to learn and grow in my own environment.
How I am Still Learning to Code I messed with
Lua. I continued to use C++ and C#. I tried to build games for iOS with Objective-C.
How I am Still Learning to Code After being stretched
too thin, I decided to pick one language and run with it.
How I am Still Learning to Code I picked the
one that made the most sense to me - Ruby.
How I am Still Learning to Code That focus allowed
me to become a better developer and really realize the problems that come with learning programming.
The Focus The focus really needs to be on creating
things and letting the language just be a tool.
The Focus The language needs to be the right tool.
Code Camps I taught two code camps this summer.
Code Camps The students were ages 9~13 (with a few
parent students as well).
Code Camps WOW. Kids are smart.
How I Taught Code Well, I used Ruby.
How I Taught Code I outlined what I wanted to
go over.
How I Taught Code I wanted to go over data
types, math, variables, user input, arrays, methods, loops, classes.
How I Taught Code I quickly realized that those all
mean nothing to someone new to programming.
How I Taught Code I went with the flow!
How Students Learn Code I found that the most effective
way to teach was by having exercises that were interactive, engaging and built upon each other.
How to Effectively Teach Code The examples, samples, labs, projects,
tests need to be fun.
How to Effectively Teach Code F U N
How to Effectively Teach Code Forget foobar, forget Hello World,
forget any boring example that is not silly, humurous or actually applicable in the real world.
Challenges Faced Creating exercises that do not fall into the
trap of being boring or non-engaging.
Challenges Faced Getting through the sludge of technical stuff (that
is still important).
What the Students Made What the Students Made
Madlib
Comcast Customer Support
Pointless Button
Pointless Button
Solar System
Yarn Calculator
How Programming Should Be Taught Gotta be consistent. Gotta be
fun. Gotta be real.
Needs to be Long Term I truly believe if anyone
wants to learn anything, they need to do it consistently and for an extended period of time (read as YEARS).
Why It Should Change My experiences learning and teaching really
let me see first hand the good and the not-so- good.
Why It Should Change I think the language and process
matter.
Why It Should Change Institutions, like schools, where students go
regularly are the best place to get new programmers on the right path.
How It Can Change It can change through conferences, code
camps, meetups, workshops and creating resources that are accessible.
How It Can Change However, what will really help change
the way programming is taught is by questioning how, why, and what.
Thank You Thank you so much for listening, I appreciate
your time.
Questions & Suggestions Please ask them and share them!