Jim Lynch Codes
  • Blog
  • About Jim

Writings about one coder's stories & experiences.

Resources for Getting Started with Clojure

7/11/2016

0 Comments

 
As you may know by now, I've recently been very heavily using JavaScript and Angular to build web applications. Before that I had used loads of other object-oriented languages like C#, C++, Java, ActionScript, Objective-C, Swift... However, I had never learned a "Lisp" language and haven't really done too much with functional programming other than knowing that it's a pretty big buzz word these days. Anyway, I was creeping around on Twitter one day and came across the profile of Tim Baldrige (@timbaldridge), and in his profile description he wrote, "programmer who prefers closure". I thought that was interesting and asked him why he preferred Clojure, and that started the whole spiral to my increasing interest in Closure.

So, Tim Baldridge was nice enough to reply to my question and shared a link to this video. It's a pretty good presentation by the creator of Clojure, Rich Hickey. It's great at conveying why you should care about Clojure and what makes it awesome, but after watching it I needed more, a lot more, before I could understand what was going on in any of these programs. 

Initial Reaction to the Syntax

Maybe it's just because I'm so used to OOP languages, but normally when I look at something I've never seen before I can still pick out function declarations, variables, some function calls and other stuff happening. When I look at a Clojure program I feel like my brain just melts, and I'm thinking to myself, "Ok... what the actual **** is going on here??". I you're feeling that, don't worry. Feelings like that are normal at first, and you really just need to learn the basics of Clojure. Then things should start making a little more sense. 

Code School Videos

  • https://www.codeschool.com/screencasts/getting-started-with-clojure-part-1
  • https://www.codeschool.com/screencasts/getting-started-with-clojure-part-2
  • https://www.codeschool.com/screencasts/getting-started-with-clojure-part-3
These are great videos if you are just getting started with Clojure. They teach you about the very basics, the syntax and characters (for example, what the parents and curly braces mean). It also goes over setting up Leiningen, a command line tool used for running Clojure and compiling into either Java or JavaScript .

4Closure

  • https://www.4clojure.com/problems
This is a pretty cool website that's open-source and totally free to use. They offer loads of little challenge problems that have to do with Clojure. After you have a basic understanding of what Clojure is and how it works, this could be a nice place to spend time sharpening your skills and understanding of Clojure. 

Online Books

I really like physical books because there is normally a ton of information in them, much more than random web sites. Unfortunately, I couldn't find any books about Clojure in my local bookstores or libraries. However, a quick google search with the keywords, "closure book pdf" brings up a ton of results, and each pdf really is the full, entire book! Wow! This is almost more knowledge about Clojure than I would ever ant to know, but it's awesome that anyone has access to it so easily. 
Picture

- Practical Clojure: http://buhoz.net/public/books/lenguajes/clojure/Practical.Clojure.pdf
- Programming Clojure: ​http://blog.shuo1.com/zms/clojure/Programming_Clojure.pdf
- The Joy of Clojure:
 ​https://bin.sc/Projects/GameStop%20class%20resources/The_Joy_of_Clojure.pdf
- Clojure in Action: ​http://www.clyce.net/wp-content/uploads/2013/02/Clojure-in-Action.pdf
- Clojure in Small Pieces: http://daly.axiom-developer.org/clojure.pdf

Closing Thoughts

In the video from Rich Hickey he bashes OOP languages for the programmer being able to name things. You name variables, functions, constants, files, directories, and he describes the programs as being, "the programmer's interpretation of what's happening on the screen" whereas Clojure doesn't need any of this extra fluff and is just concerned with the data. That sounds like a noble cause, but it's still not clear to me how I would build a full-scale webapp without naming things or creating objects. I'm also interested to see how well Clojure can fit itself into the seemingly SPA-crazy web development world although things like this make me thing building an Angular app with Clojure is possible. I'm definitely intrigued by Clojure and will be using these mentioned sites to help get a better understanding of this concise yet wacky-looking programming language. Hopefully, you found something here helpful in building your own understanding of Clojure!
0 Comments

Your comment will be posted after it is approved.


Leave a Reply.

    ​Author

    Picture
    The posts on this site are written and maintained by Jim Lynch. About Jim...
    Follow @JimLynchCodes
    Follow @JimLynchCodes

    Categories

    All
    Actionscript 3
    Angular
    AngularJS
    Automated Testing
    AWS Lambda
    Behavior Driven Development
    Blockchain
    Blogging
    Business Building
    C#
    C / C++
    ClojureScript / Clojure
    Coding
    Community Service
    CS Philosophy
    Css / Scss
    Dev Ops
    Firebase
    Fitness
    Flash
    Front End
    Functional Programming
    Git
    Go Lang
    Haskell
    Illustrations
    Investing
    Java
    Javascript
    Lean
    Life
    Linux
    Logic Pro
    Music
    Node.js
    Planning
    Productivity
    Professionalism
    Python
    React
    Redux / Ngrx
    Refactoring
    Reusable Components
    Rust
    Security
    Serverless
    Shell Scripting
    Swift
    Test Driven Development
    Things
    TypeScript
    Useful Sites
    Useful Tools
    Video
    Website Development
    WebStorm
    Writing

    Archives

    August 2021
    February 2021
    January 2021
    October 2020
    September 2020
    May 2020
    April 2020
    February 2020
    January 2020
    December 2019
    October 2019
    September 2019
    August 2019
    July 2019
    June 2019
    May 2019
    April 2019
    March 2019
    February 2019
    January 2019
    December 2018
    November 2018
    October 2018
    September 2018
    August 2018
    June 2018
    May 2018
    April 2018
    March 2018
    February 2018
    January 2018
    December 2017
    November 2017
    October 2017
    September 2017
    August 2017
    July 2017
    May 2017
    April 2017
    March 2017
    February 2017
    January 2017
    December 2016
    November 2016
    October 2016
    September 2016
    August 2016
    July 2016
    June 2016
    May 2016
    April 2016
    March 2016
    February 2016
    January 2016
    December 2015
    November 2015
    October 2015

    RSS Feed

  • Blog
  • About Jim
JimLynchCodes © 2021