Clojure Circuit

12 Sep 2022

One of Codurance's core values is continuous learning, which drives us to always look for new ways to upskill ourselves to respond with agility to our clients' needs in a fast-changing environment. Our curiosity and passion for innovation also drive us to keep up to date with the latest tools, languages and practices that allow us to be at the forefront. However, all this knowledge would be meaningless if we did not share our insights and experiences with the community and grow together in this environment of continuous collaboration

Therefore, we present a new track on Clojure, a programming language characterised by its versatility and that is generating a lot of interest in the community. This series is a unique learning opportunity, as it will be led by our co-founder Mashooq Badar, who, through his experience as a Software Craftsman, will guide us through the language: its fundamentals, use and implementation. 

Mashooq Badar has many years of experience in the technology consulting sector. In addition to his in-depth technical knowledge, his people skills have led him to successfully implement highly effective teams. He believes in continuous learning as a source of growth and seeks quality in everything he does. Codurance, co-founded by Mashooq and Sandro Mancuso, is a software consultancy that has helped clients such as Roche, Firmenich and Asos, among others, revitalise their software systems and leverage the benefits of digitalisation to gain competitiveness.

It is a real privilege to be able to count on his leadership on this circuit, and his skills and knowledge will undoubtedly enrich us to get the most out of this language that is generating so many expectations in the field. As always, the sessions are open spaces to raise doubts and share ideas, so the feedback you can give us is valuable to continue improving and offering quality content.

In this line and following our objectives of contributing to the community, for this series we will count on the collaboration of the Software Crafters Madrid community who, guided by the values of Software Craftsmanship, seek excellence and constant improvement in their daily work to raise the level of the industry. The participation of this community is very important to us because they bring a fresh and versatile vision that allows us to echo the best practices within software development and set an example in the pursuit of mastery for future professionals in the sector. 

Functional and robust system 

Clojure is a dynamic functional language system with REPL (Read, Evaluate, Print, Loop), which means that it has an interactive shell that allows you to execute your code as you write it, which makes experimentation much easier. Along with the functional paradigm, another feature that brings strength and relevance to this language is homoiconicity, which means that the language treats code as data. Clojure is represented as a data structure, which allows you to manipulate the program you are developing as data.  

During these sessions, we will cover the basic concepts of the language, its main functionalities and the keys to using it successfully in your developments. But it doesn't end there, we will also get hands-on with examples and exercises so that you can start working with it. Here is an overview of the topics we will cover during the course. 

Session 1 - Clojure Intro: Dipping your toe in
- Introduction to leiningen
- Starting up the Clojure REPL
- Understanding the basic Clojure syntax
- Data Types & Functions

Session 2 - Clojure and the Functional Paradigm
- What is the Functional Paradigm
- Immutability and Higher-Order functions
- Maintaining State

Session 3 - Clojure Data Structure
- Lists, Vectors, Maps, Sets
- Applying functions to data

Session 4 - Solving a Kata in the REPL
- Using the reply to experiment
- Creating a main function to run
- Solving a simple Kata

Session 5 - TDD in Clojure
- Running Tests with Lieningen
- Writing your first test
- Test driving the simple kata

We invite you to join this new track where we intend to shed light on a programming language that is gaining recognition. We will meet to share knowledge, tips and ideas, but not before putting into practice what we have learned through katas and examples. 

If you want to register you can do so at our meetup. If for some reason you can't make it to one of the sessions, don't worry! All sessions will be recorded and then uploaded to our video page, where you can also review and enjoy past sessions on various topics. 

See you soon!