Skip to content

Instantly share code, notes, and snippets.

@cameronpresley
Created March 18, 2019 23:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cameronpresley/7b20c33a679347ea1993762081d32192 to your computer and use it in GitHub Desktop.
Save cameronpresley/7b20c33a679347ea1993762081d32192 to your computer and use it in GitHub Desktop.
Learning Functional Programming Through Construction: First Principles

Learning Functional Programming Through Construction: First Principles

In the past five years, functional programming has increased dramatically in popularity which has lead to an explosion of resources in learning these concepts. But, between languages (Haskell, Elm, PureScript, F#), libraries (Ramda, fp-ts), and concepts (Monads, Monoids, Functors), it can be overwhelming in determining where to start and how to begin.

In this talk, I'm going to show you three fundamental concepts of functional programming: pure functions, immutability, and composition by not only explanation, but through building these concepts through code and application. As we explore each concept, I'll show you the advantages of following these principles, how they will improve your development experience, and how they will set the stage for more advanced ideas.

Intended for those who have experience with TypeScript or C#, by the end of this presentation, you will understand how pure functions lead to easier to test code, how immutability makes debugging easier, and how the power of compositions allows us to build bigger applications by combining smaller applications.

@djscheuf
Copy link

djscheuf commented Mar 19, 2019

Overall I like the abstract for the talk, I personally would attend given the chance. I think the pitch could be improved, particularly in the second paragraph. The first sentence runs a touch long. I appreciate the enumeration of the concepts covered. The elaboration on how is also desirable, but you might consider separating them. In particular, please consider rephrasing

[...] but **through** building these concepts **through** code and application.

You could try something to the effect of '[...]I'm going to show you three fundamental concepts of functional programming: [the list...]. I will not only provide explanations of these concepts but we will walk through the process of building the concepts into your code and applications. As we explore each [...]'

Beyond this, I really liked your abstract structure: Hook, Content Details, Intended audience, and Expected outcomes are all present! Thank you for the opportunity to help make this talk a success! I wish you very well in improving the knowledge of our community!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment