Practical Functional Programming with JavaScript & TypeScript



Kursarrangør: Bouvet
Sted: Bouvet avd Oslo
          Oslo, Majorstua
Kursadresse: Sørkedalsveien 8, 0369 Oslo (kart)
Type:Åpent kurs / gruppeundervisning
Studie / yrkesutdanning
Undervisningstid: Please contact us for information
Varighet: 3 days
Pris: 16.900

We provide workshop about Practical Functional Programming with JavaScript & TypeScript. JavaScript provides strong support for Functional Programming, and understanding these capabilities enables developers to write cleaner, more predictable and more maintainable applications.

Content:
JavaScript and TypeScript already support many Functional Programming techniques that help developers write cleaner, more predictable, and more maintainable code. This hands-on workshop focuses on practical habits rather than theory alone, using short theory sessions, live coding, and guided exercises based on realistic development scenarios.

Across three days, participants work through focused tasks covering data transformation, state handling, side-effect isolation, refactoring, and testable design. The goal is to give developers techniques they can apply immediately in real projects.

Participants will:
• Understand the core principles of practical Functional Programming in JavaScript and TypeScript
• Write pure, predictable, and testable functions
• Use immutability to avoid unintended state changes
• Apply higher-order functions, composition, closures, currying, and partial application
• Build clear data transformation pipelines with map, filter, reduce, and related patterns
• Separate pure logic from side effects in real application code
• Refactor mixed-responsibility or legacy code into smaller, clearer functional units
• Use TypeScript to model safer data flows and stronger function contracts
• Understand when FP improves code quality and when a pragmatic trade-off is better

Main topics:
Module 1 - Core foundations:
• Functions as first-class values
• Declarative programming and intent-focused transformations
• Pure functions and deterministic logic
• Immutability and safe state updates
• Side effects and explicit boundaries

Module 2 - Composition and reuse:
• Higher-order functions
• Function composition and pipelines
• Closures
• Currying and partial application
• Reusable utility patterns

Module 3 - Practical application in real code:
• Data transformation workflows
• Safe parsing and explicit error handling
• Refactoring toward functional core / imperative shell
• Dependency injection and FP-friendly design patterns
• Testability as a design property

Module 4 - TypeScript for Functional Programming:
• Typing pure functions
• Union and discriminated union types
• Generics in reusable functional utilities
• Modeling explicit data flow and safer contracts

Module 5 - Advanced topics depending on pace:
• Recursion and memoization
• Lazy evaluation
• Result / Either-style pipelines
• Transducers
• Practical discussion of FP pros and cons in production systems

Format:
The workshop is built around small, focused exercises with fast feedback from tests. Participants implement solutions directly in starter files, compare approaches, and discuss trade-offs along the way. The emphasis is on techniques that improve day-to-day engineering work, not academic purity.

Instructor: Shimi Zacken

Shimi Zacken er en senior frontendutvikler med over 15 års erfaring med JavaScript, TypeScript og moderne webarkitektur. Han brenner for funksjonell programmering og bruker disse prinsippene i det daglige for å bygge rene, forutsigbare og vedlikeholdbare løsninger. Shimi er en aktiv kunnskapsdeler i Bouvet og har en praktisk og hands-on undervisningsstil, med fokus på teknikker som deltakerne kan ta i bruk med en gang.

Target audience:
Developers with at least one year of experience with JavaScript or TypeScript