As the New Year approaches I’m posting my ‘programming resolutions’, I’m defiantly looking to learn a new language…plenty of choice out there thats for sure. What else could I pick up or improve, a framework, database theory/design, some new tools of the trade etc.

No time like the present, so here is my list:

The big one:

Scala 

t is common advice that you should learn multiple programming languages. Some people say you should learn a new language every year. Each language will have at least some little corners that will present you with new concepts. You should make a point to learn other languages that have deep roots in Computer Science to ensure that at least some of those new concepts are substantial.

Why learn Scala rather than Haskell or something else? Scala integrates functional programming with object-oriented programming. When coming from the object-oriented Java world, Scala allows you to gradually learn functional techniques while still being able to use familiar object-oriented techniques. For a Java programmer, learning Scala may be easier than learning other functional languages that are not object-oriented.

Some things developers can learn from Scala:

  • The importance of immutable values.
  • The simpler composition of functions/methods that have no side effects.
  • The Actor model for concurrent processing.
  • How to think using higher order functions.
  • A better understanding of variance (covariance and contravariance).

The Rest:

SOA

Just like Lego, SOA builds interoperable, unbreakable and reusable blocks….and who doesn’t like lego, even if its only a metaphor.

Database Design

I will be the first to admit that my database skills are not up to scratch…well thats about to change, in the coming months be prepared to be blow away by db posts :P

Spring Framework 

Although this is a framework I know, it is so big that you can’t really know it all. I’ll be looking more into spring security and spring social.