Beginner's luck - A story about learning and teaching Clojure

Preview:

DESCRIPTION

Have you wanted to learn Clojure but didn't know where to start? Have you wanted to teach Clojure but aren't sure how to work with students? Beginner's Luck is an interactive presentation where student and teacher share their experiences both learning and teaching Clojure over the past four months. The first part of the presentation will be a dialog where both student and teacher will switch off sharing experiences and coding examples of things that went well and the numerous surprises they encountered along the way.

Citation preview

Beginner s LuckA story about learning and teaching Clojure

All that mentoring is just going to slow you down!

Mentoring

Having an extra pair won’t slow you down

You don’t have much to loose, but could gain a really good developer

The best new developer on your team may be the one you make

Developers

Need to know how to mentor and teach

Even senior devs need to be spun up

Devs who are learning don’t leave

How did I get started?

Den of Clojure

So how do you determine if you are

compatible?

Bloom's TaxonomyAssessing

Evaluate-----------------------------------------------

Synthesis---------------------------------------------------------------------------

Analysis-----------------------------------------------------------------------------------------------------

Application----------------------------------------------------------------------------------------------------------------------------------

Comprehension------------------------------------------------------------------------------------------------------------------------------------------------------------

Knowledge

Knowledge

Knowledge

What are the first 2 pieces when creating a function?

Comprehension

Comprehension

What does this code do?

Application

Knowing is not enough, we must

apply.-Bruce Lee

Application

What would you use to add expressions to a let?

What tools might resolve this problem?

Analysis

Analysis

Compare the following functions?

Synthesis & Evaluation

Synthesis & Evaluation

What could we change to improve the execution time?

How do I build the lesson?

Backwards Design

Establish a goal

What fundamentals get you to the end

Teach the fundamentals in small pieces

Tie things back together

Show how the solution can be generalized to other problems

Prepare

If you don’t have a set goal, focus on the fundamentals

Don’t Fret

Onward to the yaks

Pairing

terminal based editor

tmux

ssh reverse tunnels FTW

pair in the repl

Emacs isn't that hard

compatible

level of understanding

environment

goal

plan

rhythm

How do teachers get better at teaching?

customer

Problem set 1

How do you get values in a map?

Recap

“get” a value out of a map

Maps are functions that take keys

Keys are functions that take maps

Problem set 2

How do you represent an anonymous function?

Recap

Longhand notation for anonymous functions

Shorthand notation for anonymous functions

If the anonymous function is simple enough, try just passing the function

Problem set 3

How can you process large datasets?

So large that they may not fit into memory?

A person

Random person

A reasonably sized random person

Are they a mutant?

Are they a mutant?

Are they a mutant?

Random mutant

Random mutant

Flip a coin

Flip a coin

People generator

People generator

People generator

Random people

Recap

Values in a map

Anonymous functions

Infinite lazy sequences

Filters

closing

Teaching is something you can learn

Practice and commitment

Help improve http://clojure-doc.org

Denise Zimmerman

@westzimm

Daniel Glauser

@danielglauser

Resources

• EDx, Project Euler, books

commonality = problem sets

• Tutorials have value when current

• Meetups that were 75% hacking