Fixed typo. Thanks Steffi.
[fp-lecture.git] / notes.txt
1 - Main slide plus the crazy slide
2
3 - Foreward: Pls don't nitpick, pls pay close attention and keep the slides full screen or whatever, pls ask questions
4
5 - Outline the sections
6
7 - Show the quote about making people want to explore the ocean instead of forcing them to build boats
8 - Perspective slide: Explain that the talk is not about haskell, "When trying to explain to someone why they should learn functional programming, there are many perspectives to try explain it from. For this discussion, I've settled on a very meta one. Perspective itself. This is not a talk about haskell, it's about viewing programming through different perspectives"
9 - More on that in a second
10 - Explain what FP is in words (define pure functions)
11 - Ask wtf you would wanna do that
12 - The best answer I have is "learning is good", "brain plasticity"
13 - Show the paradigm diagrams - "while w're on the topic of looking at things through different perspectives.... imerative and declaritive are used to describe human languages. Programming languages are human languages too. In fact I prefer to think of them this way"
14 - The same way learning a new human language can help your POV, so can learning a new programming paradigm
15 - Discuss "Perspective, brain plasticity, relate to human language (emphasise that programming languages are also human languages).
16 - Makes you a better communicator
17 - By making programs declarative we remove the temporal dimension, which makes what the program does clearer and leaves our brains free to do other things
18 - Bring it full circle to the "why would you wanna do that" - "functional programming is awesome because it doesn't give you the ability to do thing which other languages do"
19 - "Liberties constrain, constraints liberate"
20 - Imperative programming is not always the right tool - doing the same thing over and over but expecting different results can be considered madness
21
22 - Enough philosophy mumbo jumbo
23 - Show the x = x + 1 thing
24 - "Do this Vs This is this"
25 - Elaborate on perspective and how changing it can give you powerful new tools (infinite lists, atemporality for example)
26 - Communication is key, and the functional paradigm is brilliant for this (expressivity)
27 - Functional: Thinking -> Relations
28 - Procedural: Thinking -> change
29 - Jump to promises
30 - Explain what they are not
31 - Explain what they are trying to solve (actions that take random time to complete, or may fail)
32 - Reveal that they allow you to write atemporal code which is why they work so well when dealing with asynchronous actions
33 - Relate to Either type
34
35 - Composition is key to getting things done
36 - Pyramids, LIGO, LHC, McDonald's
37 - Nature's greatest hack
38 - Speed increase in computation is no longer mainly driven by Moore's law, it is mainly driven by the parallelisation of programs, once again we arrive at the need to write atemporal programs
39 - FP lends it self to composition naturally