$30

Workshop for Developers Series: Functional Programming in TypeScript

Event Information

Share this event

Date and Time

Location

Location

Devhub

662 King Street West, Suite 102

Toronto, ON

Canada

View Map

Refund Policy

Refund Policy

Refunds up to 7 days before event

Eventbrite's fee is nonrefundable.

Event description

Description

Hardcore Functional Programming in TypeScript: A hands-on workshop for developers


As applications become larger, more distributed, and more concurrent we need better tools to manage this complexity. This is why functional programming (FP) has been on the rise for the past decade. FP principles offer an alternative abstraction to Object Oriented Programming, they move us up the stack from imperative to declarative, are highly performant, and constrain developers in a way that improves productivity.

Javascript offers first class FP support and allows developers to pick and choose which patterns they would like to use, this makes it a great candidate for learning these principles. FP concepts are usually framed in an academic context making them unapproachable, javascript provides a great environment for the working developer to learn the practical side of FP. The widespread adoption of FP based tools in the JS community is testament to this: React, Redux, GraphQL, and purely functional compile to JS languages (Elm, Purescript, ReasonML).

Type theory is part of the academic canon that underpins FP, and therefore a lot of the developments in FP hinge upon strong expressive type systems. While it can be debated whether or not FP requires types, learning FP with types makes the patterns and structures more explicit. Additionally, according to Stack Overflow, Typescript has shown significant increase in demand between 2018 and 2019 and 80% of developers polled say they would like to learn it or would use it again. For this reason, the class will be taught in typescript, if you don’t have experience with typescript fret not! A brief introduction will be given, and the more powerful features (generics) will be explained.

The workshop will be composed of the following sections:

  • Introduction to FP and Motivation

  • Typescript

  • FP in Concept

  • FP in the Small

  • FP in the Large

  • Useful Abstractions

Methodology

Jonathan has created more content than the workshop can possibly get through in one evening, and thus is prepared to get into more advanced FP concepts ad hoc. At the beginning Jonathan will try and gauge the existing knowledge of the class and adapt the lesson plan accordingly.


Key Attendee Takeaways

In accordance with the methodology above, the below takeaways are a list of concepts ranked from most beginner to the most advanced. I will try to get through as many of these as possible, the amount of material we cover will depend on how deeply the class wants me to go into each concept:

  • FP Concepts

  • Typescript

  • Generics

  • Immutability

  • Functional Purity (Referential Transparency)

  • Expressions

  • Composition

  • Currying

  • Higher Order Functions

  • Immutable data structures

  • Recursion

  • Algebraic Data Types

  • Mappable (Functor)

  • Appendable (Monoid)

  • Applicative

  • Foldable

  • Unfoldable

Prerequisites

  • Beginner - Intermediate understanding of JS


Instructor

Jonathan Lorimer is a web developer at Ecobee, previously he worked at TheRedPin, Purpose Advisor Solutions, and was a Mentor/Instructor for the part time course at Lighthouse Labs. He is a huge advocate of functional programming in Toronto and runs the Toronto Haskell Meetup.

More on Jonathan:

https://github.com/JonathanLorimer

https://www.meetup.com/meetup-group-evRITRtT/

https://www.linkedin.com/in/jonathan-lorimer-dev/





This workshop is presented by Devhub, Canada's only co-working and community space for software developers and programmers. In this new series of workshops, Devhub is stepping into the educational space with a set of events aimed at expanding the skill sets of developers, both experienced and beginner. Check out our other events here. By attending this event agree to the Devhub Code of Conduct (https://www.devhub.ca/codeofconduct/).

Share with friends

Date and Time

Location

Devhub

662 King Street West, Suite 102

Toronto, ON

Canada

View Map

Refund Policy

Refunds up to 7 days before event

Eventbrite's fee is nonrefundable.

Save This Event

Event Saved