Summer has come and we see summer workout plans popping all over the web. It’s true that it’s a great time to put your body in shape. But your brain as a muscle needs practice so you should not forget about training it.
I’m no fitness coach and I leave it up to you for the physical part but I’ll share with you a summer program for the latter.
Why would you need training?
We developers have the chance to work in an exciting field. Things are moving fast, new languages and frameworks are popping out regularly, sometimes a bit too much (I’m looking at you JavaScript community).
Never being bored is great but the downside is that we need to constantly update our knowledge and skills if we want to stay in the game and not get outdated and be replaced by newer versions aka “young graduates”.
So in other words: Practice, upgrade your skills and learn new ones.
Learning Programming Languages
Learning new languages is always beneficial. Whether it’s for getting new jobs opportunities or for your own culture.
Let me tell you something that might surprise you. The only way to be an expert in your preferred technology is to know different ones. I’m not telling you to scatter yourself around but just to open yourself to others ways of thinking.
And you never know. This odd language you learnt for fun because it had no “real world” purpose might become the next big thing in your field.
Look at the functional programming trend. Functional languages have been around for decades and people with a beard less than twenty centimetres long didn’t care. Now hipsters have long beards and web developers want to go functional.
In this post I’m going to share with you my personal selection of cool languages.
Rust
Rust is a modern language born at Mozilla. It supports various programming styles such as pure-functional, concurrent-actor, imperative-procedural and object-oriented.
This makes it a good multi-purpose language tailored for modern systems.
I believe it could someday become the new C.
More info: http://www.rust-lang.org/
Go
Go is developed at Google. It’s syntax derives from C but adds some features you can expect from a modern language.
If Go is old news (it was announced in 2009), it’s quite easy to learn and a lot of tools are now based on it so I think it’s worth having a look at.
More info: https://golang.org/
Elixir
Let’s be honest, I love Ruby. I’ve been coding in Ruby for years and I’m still using it on a daily basis for many of my tasks. I also like Erlang for its power when it comes to coding distributed systems. So when I discovered Elixir I was really excited.
Elixir is a functional language created by José Valim at Plataformatec.
Rubyists know José well as he’s been a long term contributor and core team member of the Ruby on Rail framework.
Elixir feels a bit like Ruby except it runs on the powerful Erlang VM, BEAM. Definitely worth having a look at especially if you’re interested in learning functional programming.
I’m also convinced that it will become the next big thing for the Web.
More info: http://elixir-lang.org/
OCaml
Interesting one. OCaml (Objective Caml) is an implementation of Caml created in 1996 by Xavier Leroy, Jérôme Vouillon, Damien Doligez, Didier Rémy and their collaborators.
It has long been considered a tool for academics and university students with no industrial use. I was thinking that too until a friend of mine showed me I was wrong.
What if I tell you that Facebook is building some of its main tools with OCaml? That’s another proof that one can create new fashion with old stuff.
If you’re willing to dive into the functional programming world, I think OCaml is the way to go. Unless you prefer the hard path and turn to Haskell.
Here’s a good read on the topic: Why OCaml, why now?
More info: http://ocaml.org/
Scala
Scala is a general-purpose language running on the JVM (Java Virtual Machine). It is object-oriented and functional. Its very strong static type system allows for a great conciseness ans smaller programs.
What I find really interesting with Scala is its seamless interoperation with the Java ecosystem.
It might be confusing for beginners and a steep learning curve but if you’re serious about application development in a JVM environment just go for it.
More info: http://www.scala-lang.org/
LiveScript
LiveScript is yet another language which compiles to JavaScript.
It was created putting CoffeeScript and Haskell in a blender together. At least I believe it happened this way.
It provides a lot of niceties for doing functional-programming but also assists in other programming styles.
I built a small application with it once and it’s surprisingly easy get started with. So if you’d like to spice-up your Javascript practice give it a go.
More info: http://livescript.net
Let’s code now!
I’m not saying you should learn all of these languages or they will all replace your beloved PHP or Java in the next 6 months. I just believe that as developers we need to go out of our comfort zone from time to time to reach the next level.
I shared with you my own list of interests but there are many other possibilities. You could try C, Java, PHP, Ruby or Python if you never did. The list goes on… Just pick something new and build some stuff with it.
For the next part I’ll come back with some cool web frameworks. Until then have fun coding and share your own favourite languages in the comments if you’d like.
[cta-variant1]