How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a Better Place
How to Become
Rich, Famous, and
Popular While Using
Your Programming
Skills to Make the
World a Better
Place
(Maybe)
Greg Wilson
2
5-15% use GPU clusters
to analyze petabytes
in the cloud
85-95% send each
other spreadsheets
by email
Scientists
3
It Is Therefore Obvious That...
We should put more computing in the curriculum!
But it's already full
4
It Is Therefore Obvious That...
And even if we did...
...who would teach those classes?
5
If you build a man a fire,
you'll keep him warm for a night.
If you set a man on fire,
you'll keep him warm for the rest of his life.
— Terry Pratchett
7
What We Actually Teach
Unix shell => Task automation
Version control => Track and share work
Python/R/MATLAB => Modular programming
SQL => Data management
Make => Reproducibility
8
How We Teach
● Peer instructors
● Teach in pairs
● Learners use their own machines
● Live coding
● Sticky notes
● Collaborative note-taking
● Iterate, iterate, iterate...
14
What We've Accomplished
● Honestly don't know
● Anecdotally, save people 10-20% of
their time for the rest of their careers
● And prepare them for petabytes and
clouds
15
What I've Learned
1. We know a lot
about learning
2. Most people
would rather fail
than change
3. There are lots of
gaps to fill
23
Generalizes Well
First-class support for diffing and
merging spreadsheets will get more
scientists to use version control than
anything else we can do.
3 developers x 8 months (?)
(even if it's optimistic...)
24
Speaking of Version Control
● Git is an awful tool
● git-man-page-generator.lokaltog.net
● But it's the price people have to pay in
order to use GitHub
25
Speaking of Version Control
● A rational re-design of Git is possible
and worthwhile
● Opportunity #3
● Also generalizes well
Andreas Stefik and Susanna Siebert: "An Empirical
Investigation into Programming Language Syntax."
ACM Transactions on Computing Education, 13(4), Nov.
2013.
26
A Puzzle
● Thousands contribute
patches to open source
software projects
● Millions have edited
Wikipedia
● Why don't people build
lessons this way?
27
All Together Now
● We've shown it can be done
● And that it's useful
● This presents more opportunities
28
A Small Part of the Reason
● Slideshow formats
aren't diffable either
● But HTML alternatives
are impoverished
29
A Small Part of the Reason
● Neither can create web-
native videos
● Proof: pause a video, highlight the
text being displayed, and copy it
32
To Sum Up
● First-class support for peer instruction
● Diff for all! (Excel first)
● A rational reconstruction of Git
● Browsercast
● Rocket science
● Fill in the gaps