├── logo.png ├── lisp_basics.pdf └── README.md /logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/rc-cljs-workshop/master/logo.png -------------------------------------------------------------------------------- /lisp_basics.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/roman01la/rc-cljs-workshop/master/lisp_basics.pdf -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # [ClojureScript Workshop](https://reactiveconf.com/workshop/introduction-to-clojurescript) @ [ReactiveConf '17](https://reactiveconf.com/2017/) 2 | 3 | ![](logo.png) 4 | 5 | Timing: 4hrs (1:00 PM - 5:00 PM) 6 | 7 | ## Requirements 8 | 9 | It's nice to know the following: 10 | 11 | - React.js 12 | - Basics of functional programming 13 | 14 | ## Help during the workshop 15 | 16 | Here's a couple of useful resources that will help you during the workshop: 17 | 18 | - [ClojureScript Synonyms](https://kanaka.github.io/clojurescript/web/synonym.html) — translation of common things from JavaScript into ClojureScript 19 | - [ClojureScript Cheatsheet](http://cljs.info/cheatsheet/) — a quick reference to a standard library of the language 20 | - [ClojureDocs](https://clojuredocs.org/) — documentation website 21 | - [Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide) — a style guide to writing idiomatic Clojure code 22 | 23 | ## Agenda 24 | 25 | - [Intro into Lisp](https://github.com/roman01la/rc-cljs-workshop/blob/master/lisp_basics.pdf) 26 | - [Intro into Clojure](https://clojure.org/about/rationale) 27 | - How to read Lisp code 28 | - How to edit Lisp code 29 | - Paredit and Parinfer editing modes 30 | - Lectures & exercises 31 | 32 | ## Topics 33 | 34 | - [Syntax, variable declaration & local bindings](https://www.maria.cloud/gist/5947b43a1a990b45c0f6007a91505b3f) 35 | - [Fighting parens: Threading macro](https://www.maria.cloud/gist/9eddaa7fa40b5957ed6eab46c3f37878) 36 | - [Primitive data types](https://www.maria.cloud/gist/55b3b59f3b2e58bc6dbe954686e8f6c5) 37 | - [Control flow](https://www.maria.cloud/gist/5efb1cd1cfae36f4f0a9daafc4391267) 38 | - [Data structures](https://www.maria.cloud/gist/79d279c216d285fd290ee96b5044204c) 39 | - [Transforming Collections](https://www.maria.cloud/gist/644f52f501aa7de1e929f88030f415c0) 40 | - [State & Identity](https://www.maria.cloud/gist/afabe1d520a3bf13364facd1f593c991) 41 | - [Destructuring](https://www.maria.cloud/gist/e6f25e53f9274ddad70fdcf5b2de9b48) 42 | - [Interop with JavaScript](https://www.maria.cloud/gist/f44cd7efc1bc608ccbb82e30f32ec33a) 43 | - [Namespaces](https://www.maria.cloud/gist/0e9b151cbdce36f877b4eab8e0bb41b2) 44 | - [Rendering UI](https://www.maria.cloud/gist/339e96930ffaa4e6f6f10a63a592ce46) 45 | - [Basic concepts of Rum](https://www.dropbox.com/s/pb94uhrlank3tkk/ui.zip?dl=0) 46 | - [Chat web app source](https://www.dropbox.com/s/t1fv3lmhl6o6kdb/rc-chat.zip?dl=0) 47 | 48 | ## Setup 49 | 50 | No setup is needed! For this workshop we'll use online coding environments such as [Maria](https://www.maria.cloud/) and [Nightcoders](http://nightcoders.net/). 51 | 52 | - [Maria Quickstart](https://www.maria.cloud/quickstart) 53 | 54 | ## Useful links 55 | 56 | - [Community Resources](http://clojure.org/community/resources) 57 | - [ClojureScript REPL](http://jaredforsyth.com/reepl/) 58 | - [ClojureScript Synonyms](https://kanaka.github.io/clojurescript/web/synonym.html) 59 | - [ClojureScript Cheatsheet](http://cljs.info/cheatsheet/) 60 | - [ClojureScript API](http://cljs.github.io/api/) 61 | - [ClojureDocs](https://clojuredocs.org/) 62 | - [The Clojure Style Guide](https://github.com/bbatsov/clojure-style-guide) 63 | - [Quickref for Clojure Core](https://clojuredocs.org/quickref) 64 | - [ClojureScript Tutorial](https://www.niwi.nz/cljs-workshop/) 65 | - [ClojureScript Koans](http://clojurescriptkoans.com/) 66 | - [Transforming Data with ClojureScript](http://langintro.com/cljsbook/) 67 | --------------------------------------------------------------------------------