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