Skip to content
All the JavaScript 30 exercises written in ClojureScript
HTML Clojure CSS
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
01-drumkit Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
02-clock Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
03-css-variables Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
04-array-cardio Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
05-flex-panels-image-gallery Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
06-ajax-type-ahead Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
07-array-cardio-2 Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
08-html5-canvas Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
09-dev-tool-tricks Correct the numbers for each exercise Jul 14, 2018
10-check-multiple-checkboxes Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
11-html5-video-player Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
12-key-sequence-detection Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
13-slide-in-on-scroll Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
14-object-and-arrays Correct the numbers for each exercise Jul 14, 2018
15-localstorage-and-event-delegation Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
16-mousemove-text-shadows Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
17-sort-without-articles Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
18-string-times Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
19-unreal-webcam-fun Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
20-native-speech-recognition Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
21-geolocation Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
22-follow-along-links Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
23-speech-synthesis Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
24-sticky-nav Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
25-event-delegation Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
26-stripe-follow-along-dropdown Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
27-click-and-drag-to-scroll Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
28-countdown-clock Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
29-video-speed-controller-ui Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
30-whack-a-mole-game Bump CLJ, CLJS and Figwheel deps to latest Mar 8, 2020
.gitignore ISSUE-1 initialize repo Aug 12, 2017
README.md Remove duplicate word Sep 12, 2018

README.md

ClojureScript 30

This is Wes Bos's JavaScript 30 challenge written in ClojureScript.

I started learning Clojure to improve my functional programming skills and expose myself to a different way of thinking. The idea was that I would learn Clojure, a functional language, and then apply these skills to JavaScript.

This repo contains each of the JS30 exercises written in ClojureScript and write-ups on lessons learned. In this spirit, I hope others find this repo and can use it on their own journey towards learning Clojure.

Never heard of Clojure? Skeptical? I encourage you to watch ClojureScript for Skeptics which really highlights the story elements that make Clojure a compelling language.

Table of Contents

Getting Started

Before you can start working on clj/cljs you need to setup your development environment. The following guide is OSX only.

Editor Setup

I recommend Atom or VSCode. By default, these are lightweight editors with strong Clojure language support.

Please note that if you ask around, or observe the Clojure community, Emacs, vim and Intelij Cursive are the top dogs. If you already know how to use one of these, please do so, otherwise, stick to a simple editor. Clojure is going to be a learning journey on its own, there is no need to burden yourself with tools that get in the way of just learning the language.

To emacs/vim people, this is not a slight against your editors. These are amazing editors and people should learn them. When I was learning clojure, I took the time to work with them and the burden on my original goal of learning clj/cljs was too great. Remember what it is like to be new at something - its all about baby steps

With this in mind, here are packages that I recommend adding to Atom to make working with Clojure an even more enjoyable experience:

Content Overview

Each repo represents a stand alone project and will contain its own README where you can learn more about it.

Learning Themes

After re-reading and editing all my responses, here are some high level themes I was able to carve out:

  1. Learn to read the Clojure docs

    They are opinionated and consistent. Once you learn how they are written, they are an amazing tool.

  2. Don't dig too deep too fast

    Clojure feels more complex at times then JavaScript. Digging too deep too early leads to information overload. Take it easy.

Background

Please note that I am a developer by trade, so I went into this with a solid understanding of development patterns and languages and most importantly how to learn languages.

If you are new to programming, do not let the above paragraph discourage you. When I wrote this I was, still and likely never will be a programming prodigy. What I do is grind it out and never stop myself from asking questions, no matter how foolish they may seem.

Special Thanks

I want to thank wes bos for providing amazing, free content. This is a truly awesome resource that I believe could be used to help developers learn not just JavaScript, but any language that compiles to JS. For example:

and the above list goes on, but the ones I mentioned are the ones that are more interesting to me and likely more well known.

Big thanks to the clj/cljs community which is by far one of the friendliest, most willing and easily accessible communities I have experienced!

You can’t perform that action at this time.