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
ふかぼれ!CSSセレクターモジュール / Fukabore! CSS Selectors Module
petamoriken
0
150
Jakarta EE meets AI
ivargrimstad
0
590
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
AWS IaCの注目アップデート 2024年10月版
konokenj
3
3.3k
Laravel や Symfony で手っ取り早く OpenAPI のドキュメントを作成する
azuki
1
110
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
870
とにかくAWS GameDay!AWSは世界の共通言語! / Anyway, AWS GameDay! AWS is the world's lingua franca!
seike460
PRO
1
860
GitHub Actionsのキャッシュと手を挙げることの大切さとそれに必要なこと
satoshi256kbyte
5
430
Why Jakarta EE Matters to Spring - and Vice Versa
ivargrimstad
0
1k
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
470
Pinia Colada が実現するスマートな非同期処理
naokihaba
4
220
初めてDefinitelyTypedにPRを出した話
syumai
0
400
Featured
See All Featured
Happy Clients
brianwarren
98
6.7k
RailsConf 2023
tenderlove
29
900
Navigating Team Friction
lara
183
14k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Intergalactic Javascript Robots from Outer Space
tanoku
269
27k
Testing 201, or: Great Expectations
jmmastey
38
7.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
131
33k
VelocityConf: Rendering Performance Case Studies
addyosmani
325
24k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
4 Signs Your Business is Dying
shpigford
180
21k
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Making the Leap to Tech Lead
cromwellryan
133
8.9k
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!