Do you have any programming related New Year’s resolutions?

A lot of people don’t follow through with their resolutions. But don’t let that discourage you. When you make resolutions, you are much more likely to achieve your goals (10x more).

I wrote this post to show you how you can achieve your programming New Year’s resolutions. Every year I have been writing down my goals, for over a decade. It helped me grow a lot in my personal and professional life.

It’s not just about setting goals and achieving them. You have to pick the right goals.

Is your resolution to learn a new framework or language? If you want to become a better developer, that might not be a good goal for you. I am going to explain why that is the case later in this post.

How to set goals

We are going to start with a very brief review of how to set goals. A vague goal is useless. Use the following tips to make your New Year’s resolutions much more effective.

  • Make your goals SMART
  • Break your yearly goals into smaller chunks
  • Do something every day that brings you closer to your goals
  • Review and update your goals once per week

I have followed this approach for over a decade and it has worked really well for me. The most important piece of advice is “do something every day”.

When I first started to write my book, I tried to dedicate whole weekends to writing. Those weekends were exhausting and followed by long periods of not writing at all. I barely made progress over a year.

At the beginning of this year, I decided to just write for 30 minutes every day. In 3 months, I had written more than in the previous year. In less than a year, the book was done.

Whatever your goals are, try a slow and steady approach.

Better programming goals

When I talk to other developers about their goals, there is one thing that comes up again and again. They want to learn language X or framework Y. Their choice is usually completely unrelated to what they use at work.

If you have plans to move into a different career, then learning a new language or framework can make sense. But don’t collect languages and frameworks as if they are Pokémon. They come in and out of fashion. In a few years, a lot of that knowledge will have lost it’s value.

Instead, focus on concepts and patterns. Learn as much as you can about object oriented programming. Learn about architecture and how you can organize your code better. Learn about security vulnerabilities and how you can avoid them.

If a new language or framework makes it easier to internalize a new concept, by all means, learn it. But focus on knowledge that is transferable between languages. Don’t just learn a new syntax.

Read books

To become a good self taught developer, you have to read books. There are some good talks and video courses, no doubt about it. But there is an incredible amount of knowledge that is only found in books.

I read at least 4 technical books per year. Put a goal like that on your New Year’s resolution list.

It’s easy to read one technical book every 3 months. Do that for a few years and you will be far ahead of your peers who don’t read.

Don’t know where to start? Here are some of my favorite books.

Clean Code - Robert C. Martin
Code Complete 2 - Steve McConnell
The Pragmatic Programmer - Andrew Hunt & David Thomas
Effective Java - Joshua Bloch
Domain Driven Design Distilled - Vaughn Vernon
Implementing Domain Driven Design - Vaughn Vernon

And of course there is also my own book.

Professional PHP - Patrick Louys

Wrapping it up

Before you start to write down your New Year’s resolution, think about your high level goals.

For example, let’s say that you want to become really good at object oriented programming. With this high level goal in mind, you can think about yearly goals that will bring you closer to it.

Maybe your focus for the first year is writing clean code. Your goals could look like the following:

Read at least 4 technical books
Watch at least 12 talks about clean code and OOP
Create a small blog, writing only clean code

Then you can break that down even further. The January goals could look like the following:

Buy the Clean Code book
Read the first three chapters of Clean Code
Watch a talk about clean code
Set up a public git repository for the blog

Don’t congratulate yourself after writing down your goals. Hit the ground running in the new year and start checking those boxes as soon as possible. Review your goals weekly and keep working towards your goals. You’ll be surprised how much you can get done in a year.

Happy New Year!