On-Site Training

    Your Developers
    Your Location
    +
    Our Instructors
    & Courseware
    =
    Focused Training
    Just for Your Team!

Learn how to use Erlang, the robust and highly-concurrent functional programming language, to build real applications in this 3-day, hands-on programming course.

  • Stay ahead of the curve, and get a jump on your competition, by investing in Erlang.
  • Gain hands-on experience building highly parallel, networked, and fault-tolerant systems in a language designed for the chaotic real world.
  • Take advantage of the extra power (and speed) of multicore devices.
  • Learn how to design systems the "Erlang way" directly from an experienced Erlang developer.

“I'm really excited... because I think Erlang's style of message-passing concurrency is just what we need as we enter the multi-core world, and also because I think its functional roots are an interesting way of thinking about programming.”

Dave Thomas

What Will I Learn?

Dave Thomas and student

How to use Erlang in the real world. This isn't a language reference course or bullet-list overview of Erlang. It's a hands-on programming course where you'll learn Erlang by actually writing Erlang code to solve many common problems. Topics include:

  • Basics of Erlang Programming: Functional programming can feel a bit awkward at first, so we'll start by getting you comfortable with basic Erlang syntax and concepts such as pattern matching, tail recursion, and process spawning. We'll build on these fundamentals to write both sequential and concurrent Erlang programs.
  • Design: If most of your projects have been designed as object-oriented, sequential programs, then transitioning to Erlang will take a different kind of thinking. Through expert guidance and hands-on practice during the course, you'll learn how to design systems the "Erlang way".
  • Distributed Programming: Erlang programs can run on dozens or even hundreds of local and remote processors. You'll learn how to distribute Erlang programs on the network and make them collaborate to get work done more efficiently.
  • Intro to OTP: OTP is a collection of libraries for quickly building distributed, real-time applications with Erlang. You'll learn how to use the OTP libraries to build and deploy robust and maintainable Erlang applications.
  • Web Services: The unique characteristics of Erlang make it a compelling choice for running web services. You'll learn how to create RESTful web services in Erlang using mochiweb and webmachine.
  • Intro to MNesia: MNesia is Erlang's distributed DBMS that supports high scalability and fault tolerance through replication. You'll learn how to get started using MNesia to get fast access to your application's persistent data.
  • Testing: Testing concurrent, networked programs can be challenging, yet critical. We'll explore unit testing strategies for Erlang programs using eunit.
  • Tips and Tricks: Get the most out of Erlang with hard-won lessons, tips, tricks, and best practices

“Everyone enjoyed the class and got a lot out of it!”

— Frank Maritato, AT&T Interactive

Who’s It For?

Programmers New to Erlang. This course is for programming teams new to Erlang who have programming experience in another language. No prior experience with Erlang or functional programming is assumed. If you've perhaps read the Erlang book or watched the screencasts, but want to gain a deeper understanding of the concepts and learn first-hand how to write Erlang programs, this course is for you.

Who Teaches the Course?

Kevin Smith

Kevin Smith has, at various times, been a network administrator, DBA, developer, team lead and trainer over his 14 year career. He first learned about Erlang in 2006 via Joe Armstrong's excellent book and has never looked back. Kevin is the founder of Hypothetical Labs, a consultancy focused on helping software teams learn about and adopt Erlang for maximum success. He is also the author of the popular screencast series Erlang In Practice.

What Do I Need?

Laptop

This course is taught on site at your location. As such, you'll need the following:

  • a room to comfortably accommodate your team
  • a laptop projector and screen
  • a whiteboard or flipchart with markers
  • laptops (or desktops) on which each attendee can complete the hands-on exercises, and access rights on those machines to install the required software