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
510
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
69
What Changed & Why
brettchalupa
0
46
Developer Roles & Levels Explained
brettchalupa
0
56
Testing Rake Tasks
brettchalupa
0
250
Learning to lib Again
brettchalupa
0
58
Tools of a Ruby & JavaScript Developer
brettchalupa
1
180
History of a Thriving Codebase
brettchalupa
0
44
Other Decks in Programming
See All in Programming
PSR-15 はあなたのための ものではない? - phpcon2024
myamagishi
0
140
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
480
[JAWS-UG横浜 #76] イケてるアップデートを宇宙いち早く紹介するよ!
maroon1st
0
480
range over funcの使い道と非同期N+1リゾルバーの夢 / about a range over func
mackee
0
110
Exploring: Partial and Independent Composables
blackbracken
0
100
Zoneless Testing
rainerhahnekamp
0
120
Spatial Rendering for Apple Vision Pro
warrenm
0
110
Beyond ORM
77web
7
970
テストコード文化を0から作り、変化し続けた組織
kazatohiei
2
1.5k
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~ / WebSocket Server in PHP - To know reactive applications
seike460
PRO
2
520
Security_for_introducing_eBPF
kentatada
0
110
MCP with Cloudflare Workers
yusukebe
2
220
Featured
See All Featured
Building Applications with DynamoDB
mza
91
6.1k
Into the Great Unknown - MozCon
thekraken
33
1.5k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
1.2k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
YesSQL, Process and Tooling at Scale
rocio
169
14k
Scaling GitHub
holman
458
140k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
How to Think Like a Performance Engineer
csswizardry
22
1.2k
Typedesign – Prime Four
hannesfritz
40
2.4k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
2
290
The Cost Of JavaScript in 2023
addyosmani
45
7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.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!