Git Product home page Git Product logo

erlang_dc_workshop's Introduction

ErlangDC Elixir Workshop

This is the code and text for a three hour elixir workshop on December 7, 2013 in Washington, D.C. for the ErlangDC one day conference.

Running it

To run this presentation, do the following:

bundle # Then make sure you've done a `git submodule init; git submodule update` in the reveal-ck gem
cd deck/introduction_to_elixir/basic_elixir/
reveal-ck generate
servedir # this is an alias I have that just does `ruby -run -e httpd . -p 9091` to serve current dir files on port 9091

Prep Work

There will be live coding examples, so go ahead and get a tmux session open on both monitors so you don't have to look at the screen to see what you're typing:

In one terminal, which goes on your laptop screen:

tmux
# (then rename the session to 'examples')

And in another, which goes on the projector:

tmux a -t examples
  • Introduction to Elixir
    • Basic Elixir [25 minutes]
    • Testing [20 minutes]
    • Slightly less basic Elixir (but still pretty basic) [25 minutes]
  • Introduction to OTP with Elixir
    • Servers [15 minutes]
    • Finite State Machines [20 minutes]
    • GenEvent [15 minutes]
    • Supervisors [20 minutes]

Outline

Since it's a comically long talk, it's broken up into the following sections:

  • Introduction to Elixir
    • Basic Elixir [25 minutes]
      • Data Types
        • Atoms
        • Numbers
        • Lists
        • Tuples
        • Keyword Lists
        • Regular Expressions
        • Booleans
      • Pattern Matching
        • Match Operator
        • Some basic matches
        • Function Definitions
        • Case Statements
      • Functions
        • Defining Anonymous Functions
        • Calling Anonymous Functions
        • Using Functions as First-Class Types
      • Mix and Modules
        • Using mix to begin a new project
        • Defining a module
        • Compiling a module
        • Module definitions have return values
        • Document a Module
        • Generating documentation output using ExDoc
    • Testing [20 minutes]
      • What is Testing For?
      • Unit Testing
        • ExUnit
        • Defining Tests
        • Assertions
        • Examples / live coding
        • Plug Exercism.io
        • Doctests - ZOMG
    • Slightly less basic Elixir (but still pretty basic) [25 minutes]
      • List Comprehensions
      • Records
      • Pipe Operator
      • Recursion
      • Processes
  • Introduction to OTP with Elixir
    • Servers [15 minutes]
    • Finite State Machines [20 minutes]
    • GenEvent [15 minutes]
    • Supervisors [20 minutes]
      • Basic
      • Adding Persistent State (let it crash...but don't forget stuff)
  • Building a project with Elixir
    • Unsure what project I need to do here...figure it out

erlang_dc_workshop's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

paolodm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.