2017 Programming Goals

Setting goals for a given period is something I have always done. It allows for something to work towards, day by day, week by week, month by month.

Setting goals that are fairly high level is key, as this keeps the goal requirement fairly broad, leaving room to adjust what you want to achieve based on, unknowns or slight direction changes as this happens with something new, eg learning a new language.

I have a number of programming goals for 2017, starting off with building my own personal site as well as rebuilding my freelance business site.

I have mapped out the content and have some rough layout and design ideas already. The first quarter of the year will be dedicated to getting those sites up and running.

Along with the above, my sole surviving side project, devbase.io, will finally get the TLC it deserves with active development starting again which I plan to spend a decent amount of time on in 2017.

Next up is the core areas which I want to focus on:

  • Javascript
  • A new language
  • New areas of the web

On the JavaScript side, I plan on tackling:

Those 3 pieces of javascript tie in well together as learning path, as well as having a direct impact to my personal growth as a web professional, but also with my day job which makes this a high priority and no brainer for me.

On the new language side, I have decided on learning Elixir, along with the Phoenix framework.

But why Elixir?

  • It has a similar syntax to Ruby, which I use daily, making the transition easier than something like Go.
  • It provides the async functionality and low memory usage of Node.js.
  • It is a functional language, like Go, which is completely out of my comfort zone of OOP.
  • It fits in well with IoT, something I am increasingly becoming more interested in.
  • Fantastic community. This is very important when choosing a language.

Learning a new language, and one that is completely different to what I am used to, will put me out of my comfort zone, which in turn will allow me to think differently about the code I write, OOP, as well as grow my knowledge of programming in general.

The other areas I want to tackle area:

Offline first thinking, also leads to thinking about performance and content, performance leads to areas such as loading critical CSS first before the rest of the stylesheets and what better way to write CSS than with PostCSS which is more in line with the CSS spec than something like sass.

Those are my high level goals for 2017. They may shift a little as time goes on through the year, but I do not see myself changing those too much.