And now Clojure....
It’s really easy to get distracted by a new thing in software development. There’s always some person or group that has developed something that really is objectively remarkable. So, if you are a curious software developer, how do you choose what it is you’d like to look at in more detail? Well there’s no one right answer to that. One interesting approach that I’ve heard about in conference talks and read about on the web is to develop your own personal tech radar. The first time I heard about this was from CloudWatch.
The idea is that company’s will have some form of radar to track current competitors, upcoming ideas in their space, disruptive technology coming, and technologies that the company needs to adopt. These are effective tools. They give focus and direction. So, why don’t you develop your own? CloudWatch does a good job of publishing radars that track upcoming technologies and divide them first into quadrants (techniques, tools, platforms, languages & frameworks) and then into categories:
- Hold - Don’t start new things at this time with this technology
- Assess - You should look into this technology to try and figure out what its all about
- Trial - Time to try that asssessed technology on a real project
- Adopt - This is what you should be using on a widespread basis right now
This may not make much sense for categories on a personal radar. But the general idea is to categorize and prioritize. Unless you’re a very unusual person and spend every living moment in front of a computer you’ve got limited time so you want to know what should I do with the time I spend in front of a computer. I’ve got these categories:
- Work - what technologies are we using currently at work and what holes do I have in knowledge about them that I can fill in? What development ideas are coming for this technology?
- Explore - what are interesting ideas that I don’t ordinarily think about that I’d like to spend some time considering? The Morning Paper is an amazing resource for this. You can subscribe and you’ll receive a short summary every weekday of an important, influential, topical or otherwise interesting paper in the field of computer science.
- Open Source Work - I want to devote some of my time to contributing to Free Open Source Software (FOSS). This is important to me both to develop new skills and to contribute back to a community that we’ve all come to rely on for most of what we do to make a living. I’ve done a fair amount of work contributing libraries for Elixir development.
- Learn - what is a new technology or language that I’d like to learn because its related to current things that I know. So this isn’t directly related to work but it does still fill in some gaps or gives a different spin on something that I’m already using.
So, in the learn category… I’ve decided to learn Clojure. I actually went to the Gig City Elixir conference over the weekend and heard a good talk for the Clojure-curious by Stuart Halloway. And this seemed like a good additional functional programming language to learn.
BTW, this was an amazing conference. I heard some of the best talks I’ve ever heard at tech conferences and more direct talks about inclusivity and building community. And I heard about a great book that I’ve ordered called Better Allies: Everyday Actions to Create Inclusive, Engaging Workspaces.
So apart from Stuart’s github (which is pretty awesome) the best place to start with Clojure is its own web site clojure.org.
I’ll see how far I get in my Clojure journey.