How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a...

33
How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a Better Place (Maybe) Greg Wilson

Transcript of How to Become Rich, Famous, and Popular While Using Your Programming Skills to Make the World a...

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 clustersto analyze petabytes

in the cloud

85-95% send eachother 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

6

What We Teach

Unix shell

Version control

Python/R/MATLAB

SQL

Make

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...

9

How It's Going

2011-11-072012-07-19

2013-01-062013-04-08

2013-06-242013-09-23

2014-01-082014-03-18

2014-06-152014-08-06

2014-09-272014-12-14

2015-02-092015-03-30

2015-05-252015-07-06

2015-08-272015-10-17

0

100

200

300

400

500

600

Workshops

10

How It's Going

Workshops

11

How It's Going

Learners

2011-11-07

2012

-05-16

2012

-10-08

2012

-11-30

2013

-02-06

2013

-04-18

2013

-05-30

2013

-07-18

2013

-09-21

2013

-11-14

2014

-01-18

2014

-02-24

2014

-04-29

2014

-06-16

2014

-07-19

2014

-08-23

2014

-09-24

2014

-11-07

2014

-12-18

2015

-01-29

2015

-03-02

2015

-03-30

2015

-04-29

2015

-06-04

2015

-06-29

2015

-08-03

2015

-09-06

2015

-10-01

0

2000

4000

6000

8000

10000

12000

14000

16000

18000

12

How It's Going

Instructors

2012

-05-27

2013

-07-20

2013

-11-17

2014

-04-19

2014

-07-07

2014

-08-07

2014

-10-03

2014

-11-05

2014

-11-13

2014

-11-20

2014

-11-27

2014

-12-13

2015

-01-07

2015

-02-06

2015

-03-01

2015

-03-12

2015

-04-20

2015

-05-26

2015

-06-12

2015

-06-26

2015

-07-05

2015

-07-10

2015

-07-14

2015

-07-28

2015

-09-02

2015

-09-25

2015

-10-13

0

50

100

150

200

250

300

350

400

450

500

13

How It's Going

Instructors

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

16

For Example

https://www.youtube.com/watch?v=2LbuoxAy56o

17

● Today's MOOC platforms don't support PI● Piotr Banaszkiewicz showed it's possible

github.com/pbanaszkiewicz/peer-instruction● Opportunity #1

18

The Jupyter Notebook

Text, math, code, and images

What hypertext was meant to be

19

The Jupyter Notebook

{

"cell_type": "code",

"execution_count": 9,

"metadata": {

"collapsed": false

},

"outputs": [

{

"data": {

"image/png":"iVBORw0KGgoAAAANSUhEUgAAArMAAAJA

CAYAAACe4e6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n

AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7qSIsH

...

20

The Jupyter Notebook

{

"cell_type": "code",

"execution_count": 9,

"metadata": {

"collapsed": false

},

"outputs": [

{

"data": {

"image/png":"iVBORw0KGgoAAAANSUhEUgAAArMAAAJA

CAYAAACe4e6sAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\n

AAALEgAACxIB0t1+/AAAIABJREFUeJzs3XdYFFfbBvB7qSIsH

...

Good luck diffing and

merging this.

21

It Doesn't Have to Be This Way

Tavish Armstrong and others

nbdiff.org

Opportunity #2

22

Generalizes Well

First-class support for diffing and merging spreadsheets will get more scientists to use version control than

anything else we can do.

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

30

Solution: Browsercast

HTML slideshow...

...with start times for slides...

...and a player that syncs with audio

github.com/twitwi/deck.browsercast.js-demo

(Bonus marks for a GUI timestamp editor)

31

Advantages

● Plays everywhere

● Mobile-friendly

● Accessible!● Searchable!● Diffable! (ish)

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

33

For More Information

http://software-carpentry.org

[email protected]

@swcarpentry

Thank You