2016-01-10

Don't Fear The Lisp

Functional Programming, Seriously?

Let, me start this off by saying this, the exercises I have done this week already make me want to explore the language even further. the language I am referring to, of course, is Clojure. Just in case you don't know it is part of the Lisp family and is considered a functional programming language. This is so different from the object oriented languages I am used to, mainly Python. What makes it different is how you approach the problem. Right away you have to start thinking differently about the problem, because in Clojure you are not going to define a class and than build some methods to call later on, you are going to define a function, better yet, you are going to define many functions, possibly even have to use some recursion. It is such a new approach, but it also feels good to be able to see common problems from different points of view. The only thing this ability will do is move you up in the programming world. You will have the, possibly, unique ability to know exactly which tool is right for the job. Also, you will slowly be able to call yourself a polyglot. That is one of my goals, become a true polyglot, but before that, I want to become the best programmer I can be, and that simply cannot happen without taking on the, sometimes daunting, challenge of learning a new language.

The End Of The Week Already!

One of the tools I am using to help me through this is Living Clojure by Carin Meier. This book looks small, but do not be fooled, it is far from small. It is very detailed and the approach she takes seems to make sure you know how the computer handles the different parts of the language, like how data structures are handled. Another, rather handy, resource is a site called 4Clojure. It is very important to read and understand the ins and outs, however, nothing helps better than actually working with what you are studying, in this case Clojure. That site is perfect for practicing alone, or even practicing in a group. It also provides you with some helpful hints about the language so that you know what direction to head in when trying to solve the problems. I have used this site both ways, but the way that was most enjoyable to me was when me and other CodeNewbie members started a Google hangout session and did the problems together. It is definitely better doing this with other people rather than trying to go it alone. It may not seem like a lot was accomplished this week, but setting up your environment so you can actually start writing Clojure code, and then understanding where to begin and how the language works are all very big feats and should not be taken lightly. I should also mention that this book seems to work best doing a chapter a week. It allows you to test out what you read in your own REPL and also allows you to take breaks and do some challenges to really help it sink in. Python will always be my first love, but I will never regret starting the journey to learn clojure.

So Much To Look Forward To!

The week may have come to end, but the journey to polyglot has just begun. I, along with the other CodeNewbie members especially the crew in #Python_Thursday plan on doing a lot more with Clojure in the comming weeks. Mostly impromptu hangouts where we solve some exercise problems, but eventually it could blossom into a weekly hangout. I encourage anyone reading this who is not already a part of the CodeNewbie Community to join. I know I mentioned them a few times already, but I really emjoy that community and I was not asked to endorse them, I just felt the need to spread the word.

Conclusion

So you have read what I did this week and how I approached learning a new language. The way I decided to go about this may not be the right fit for everyone, but it is definitely worth giving a shot if you feel like you are having trouble learning, or moving ahead. Like I have said in previous posts, you never truly stop learning when it comes to programming. There will always be updates to the language and new libraries created and everything keeps progressing and that means you have to move along with it. You have to keep up with the changes and the new standards, but if this is something you love, something you are passionate about, you will have no problem.

Post Script

If you have any thoughts or comments feel free to email me at johnc@johnnysjourneys.com, or message me on twitter.