- Inspire people to learn Haskell.
- Inspire people to start a group.
-
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.
- 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!
- 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
- 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
- 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
- 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
- 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
- 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.
- Show off some code
- Run the code
- Find the winner
- Hand out the prize!!!