Skip to content

learnhaskell-brisbane/study_group_presentation_bfpg

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 

Repository files navigation

Presentation for the BFPG

What's the big idea?

  • Inspire people to learn Haskell.
  • Inspire people to start a group.

Outline

  • Introduction - 2mins - Sanj

  • The Group - 5mins - Matt

  • Chapter Leader Testimonial - 5mins - Katie

  • The Book - 5mins (Who's doing this?)

  • The Experience - 5mins (Who's doing this?)

  • Conclusion incl Q/A - 5mins (Whos's doing this?)

  • Door Prize - Live code example - 5mins - Andrew

  • The intro won't take 5 mins. I have reduced it to 2 mins. we can use the extra 3 mins somewhere else.

Introduction

  • Why we started the group
  • Motivation (Learning Haskell is hard)
  • The problem
  • We don't know enough Haskell to understand the BFPG meetups!
  • Intimidating for beginners - we didn't want to admit don't know
  • We were part of a culture amongst FP beginners of pretending to understand (scared to admit you don't know)
  • Two types of people: Those that had learnt Haskell, those that hadn't. Had to start at lowest common denominator
  • We don't have the moitivation/focus to get all the way through the book without getting distracted.
  • You have to teach yourself. It's hard for someone to teach you Haskell unless you make a start yourself.
    ....
  • October Meetup
  • Let's start a study group!
  • Someone is handing out tickets for our door prize at the end - if you don't want to win a copy of the book don't take a ticket!

The group

  • How we started the group
  • Research, bouncing ideas, talking to experts
  • Meetup
  • Github
  • Find an accomplice
  • 2 heads better than one
  • share responsibility & workload
  • As long as both committed, passionate, energy
  • Doesn't matter if no one shows
  • Ask for advice
  • We approached OJ to see if we could run a covert functional group in Brisbane...
  • Got some idea from Craig Aspinall
  • Miran: Online? book? Feedback, encouragement.
  • The first members
  • How we ran the group
  • Make strong decisions up-front
  • Set some groundrules
  • Time/date
  • 1.5hr lunchtimes - every week
  • Set the culture - makes the rest of the group easy
  • Set clear objectives for group
  • Get through the book
  • Rough chapter plan - finite time period - 4 months
  • Timeliness
  • Not about ego, about learning. No silly questions
  • Encourage members to write down questions during week
  • "Each member should come to sessions fully prepared to participate. Your study group can't run properly if no one has done the work"
  • Punctuality
  • Have fun
  • Start strong, set culture, clear goals
  • Chapter leaders
  • Exercises
  • Safe place to learn / No Ego - important as
  • Difficult topics were broken across multiple sessions
  • Always there to help the chapter leaders should they need it
  • Lead the chapters no one else wants
  • Review everyone's answers to the exercises - everyone has a voice
  • Selection criteria
  • 1.5 hours
  • 3 Months
  • Lots of self study
  • Statistics
  • weeks

  • hours/week

  • people

  • What We'd do Differently Next Time
  • Get everyone to research the topic (not just leaders)
  • Notes on computers not printouts
  • Live hacking sessions (we sometimes do this in the group already)
  • Encourage crowd-sourcing of extra content

The Chapter Leader Experience

  • Chapter Leaders
  • Everyone takes ownership
  • Facilitate conversation
  • Keep conversation moving
  • Have plenty to talk about to fill in gaps
  • Prepare exercises for group to complete
  • Discuss solutions to exercises
  • Open-source lecturing
  • Knowing the content
  • Pros/Cons
  • Setting assignment
  • Example

The Book

  • One short summary slide per chapter
  • Sample Code We've Learned
  • Interesting Solutions to Exercises
  • Summary slide per chapter? (probably. Maybe skip Functionally solving Problems as it's covered through the others)
  • Pattern-matching
  • Applicatives
  • Data types and typeclasses
  • IO
  • Other Monads? (State or Writer)
  • Example code (tantalizing - not off-putting)
  • Basic syntax:
  • List Comprehensions, Tuples, Pattern matching, guards, where, let, case...
  • currying, partial application, function composition, lambdas
  • Do notation
  • Pattern matching
  • Algebraic data types (e.g. Maybe)
  • How does it differ to Classes?
  • Monads

The Experience

  • Took a lot of time and effort to learn Haskell - more than expected
  • Use Haskell concepts as much as you can to gain an intuition about how things work - Helps with understanding the implementation. Eg. >>=.
  • Committing to learning (almost) every week for 6 months is hard to sustain
  • Staircase analogy
  • Realise how easy the book made the content
  • Enough knowledge to learn on our own
  • Side discussions were sometimes more beneficial than the book content

Conclusion

  • Advanced Beginners
  • Learning together is fun!
  • Benefits of Learning Haskell
  • Helps you talk the FP talk
  • Understand Java / Scala / JavaScript
  • Rewires your brain
  • Identify patterns eg map-reduce, filter
  • Converting Haskell to our day-jobs: map-reduce, filter, folds
  • Helps you get the most out of the BFPG
  • Makes abstraction simple
  • Learnt more in-depth as a group than individuals
  • Everyone brings different perspective
  • Tangents: Andrew - Category theory, Javascript monads, Steve - Linux, Clojure, Opensource, Coding By Numbers
  • Identifying, understanding and using side-effects
  • We want to help get you started
  • Ask anyone wearing one of these fashionable lambda shirts about it.
  • Happy to help kickstart your group and connect wannabe Haskellesrs together.
  • One lucky person will win their own copy of the book - door prize - randomly selected by Haskell itself.

Door Prize

  • Show off some code
  • Run the code
  • Find the winner
  • Hand out the prize!!!

About

Presentation on the Study Group for the BFPG

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages