12th and 13th January 2018
Bengaluru, India

IN/Clojure is conducting an introductory workshop to Clojure and functional programming on January 12.

New update: The workshop will commence at 0930 hours sharp and will continue until 1800 hours.

Who is it for?

Overview

The workshop will be mostly example-driven, with lots of code to follow along with and evaluate in the REPL, interspersed with exercises. The goal is not to exhaustively cover all of Clojure's features in-depth. Rather, we want to provide the attendee with enough of an intuitive understanding of Clojure's capabilities that they can dive deeper into the language later, at their own pace.

Guiding Principles

What could one do with just a little bit of Clojure?

Goals

  • Acquire a "feel" of Clojure, for further self-study/exploration.
  • Learn how Clojurists usually think with Clojure to solve problems.
  • See how it's not so hard to do surprisingly powerful things with a mere handful of "primitive" functions, data structures, and ideas.

Non-Goals

  • Try to explain Functional Programming theory or Clojure's innards. (Many free and paid tutorials and books do so very well.)
  • Try to exhaustively cover Clojure primitives/features. (That's homework!)
  • Devolve into language wars, editor wars, syntax wars, type wars... (Life's too short, people.)
  • Focus too much on tooling or operational things. (At least not while there's fun to be had!)

How to approach this workshop

Think of this as an exercise in constrained creativity.

  • Ignore details, achieve much with as little know-how as possible.
  • Focus on what things do; not what they are, or why they are.
  • Inform your intuition for doing things, and then use that to dive deeper into all the juicy details at your own pace, later.
  • Take what is useful, discard the rest.

Philosophy

Almost anyone can hope to do more with more. Up to a point, that is.
Far too often, we end up doing less with more; bogged down by the complexity of too much choice.
Figuring out how to do more with less feeds our curiosity, and often satisfies and empowers us.
So, may you stay small and achieve important things.

Takeaways

Setup Instructions

Java 8

You will need Java to work with Clojure. Run java -version in your terminal. If Java is not installed, please download and install it from here. Once you are done, java -version should show you a Java 1.8.x version.

Note: Java 9 is known to have issues with Light Table, the editor that we recommend for the workshop, and with some versions of certain Clojure libraries.

Leiningen

Leiningen is a Clojure command line tool used to manage projects. To install it, follow the instructions here. After installation, lein version should print both the Leiningen version and the Java version.

LightTable

LightTable is one of many Clojure editors. There are setups possible with vim, emacs and more, but for the workshop we will only support Light Table officially.

Please download and install LightTable from here. Note that on Mac OS, you may have to allow running the app in your security preferences to be able to open it.

Once LightTable is installed, open it and go to View -> Plugin Manager and search for "parinfer". Install the Parinfer plugin by MaurĂ­cio Szabo. Parinfer is an editing system for Clojure that makes it easy for you to move Clojure code around without unbalancing parentheses. Although we'll have a small introductory session on Parinfer at the workshop, we also recommend going through the Parinfer documentation here.

Conductors

Questions? Contact us!

If you have any questions about the workshop, or you're having problems with the setup instructions, feel free to drop us an e-mail at team@inclojure.org!