Resolutions are SO last year: how to be SMART about your goals in 2024

Happy New Year, code babies!  If you’re a Code Mom subscriber, I hope that you had an enjoyable end to 2023–and if you’re here for the first time, hello!  If you’re looking to take your first steps into the world of computer programming in 2024, I’d be delighted to help.  This blog updates every Monday morning with a new article geared toward newbies, learners, and entry-level developers.

Are you feeling ambitious this year?

Most people in the tech industry know me as Code Mom, but outside of work I enjoy volunteering with the Boy Scouts of America–in particular, I love working on staff for my local council’s Wood Badge program!  Wood Badge is a leadership program for adult volunteers in the BSA, and as part of the program, participants create a “ticket”–a set of five goals they need to complete in order to complete the program and earn the Wood Badge award.  Wood Badge participants complete a five-day classroom course, and then have another 18 months to complete their ticket goals.  It is very easy for participants to get carried away setting their ticket goals because, during the course, they are surrounded by other motivated volunteers and the group energy is pretty high–so the staff needs to make sure that participants are setting goals that they can actually meet within the eighteen month time frame, because if a participant doesn’t finish their ticket in time, they can only earn their Wood Badge award by taking the entire course again.

Similarly, when I meet people who are just starting out on their programming journey, they are similarly motivated and eager to jump into the industry head-first.  They want to learn every language, they want to build every project, they want to know how to write code off the top of their head and never have to search the internet for anything. While I adore that level of ambition, it never lasts for long–programming is mentally taxing work, computers do exactly what you tell them to do (which is rarely what you actually want them to do), and there’s so much information to learn, retain, and use that Google becomes an absolute necessity.  Just like Wood Badge participants sometimes need to be reigned in so that they don’t set unobtainable ticket goals, new programmers sometimes need to be reminded that you can’t learn everything in a day.  Or a week.  Or even a year (or ten)… 

Here’s the problem with New Year’s resolutions.

The majority of people who set New Year’s resolutions don’t complete them.  So, if you’re thinking of setting some ambitious, programming-themed resolutions… may I offer an alternative?

SMART is a goal-setting framework; the acronym stands for Specific, Measurable, Achievable, Relevant, and Time-Bound.  Admittedly, SMART has its drawbacks at scale, but for individuals with personal goals, I’ve found it to be a good exercise that can help folks clearly define what their goals are and recognize the steps they need to take in order to achieve them.  When you can define a goal, and are in control of your situation, the SMART framework works well for keeping you motivated and tracking your progress toward completion. 

Setting SMART Goals

In SMART, goals first need to be specific

The more clearly-defined the goal is, the easier it will be to work toward.  You should write down exactly what you are aiming to achieve, ideally answering the “5 Ws”: 

  • Who is working toward the goal, and/or who the goal will impact
  • What the end result of the goal will be
  • Where the work will take place 
  • When work will take place and when it will be completed 
  • Why the goal is worth achieving 

A specific goal would be something like, “I want to learn the basics of Python, to the point where I can build a simple web application that implements CRUD functionality.”

Goals also need to be measurable

A “measurable” goal allows you to track progress toward completion and determine when the goal has been met.  You need to have a thorough “definition of done,” with tangible or quantifiable criteria for measuring success; sometimes it can also be helpful to measure and recognize specific milestones when progressing toward completion of the goal. 

To keep with our example above, the ‘measurable’ portion of the goal would be something like, “I will complete an online Python video course consisting of thirty tutorials, and use my new skills to build a simple blogging application that implements create, read, update, and delete functions.”

Most importantly, a goal should be achievable and relevant

An achievable goal is realistic, and considers the time, skills, and other resources needed to complete the goal.  If the goal is completely out of reach, you won’t achieve it!  Goals can and should be challenging (after all, isn’t that the point of them?), but not impossible to complete.  Additionally, goals should be relevant–they should mean something to you!  If your goal doesn’t align with your personal aspirations and make sense for your long-term vision of success, you’ll eventually stop caring about completing it. 

“I have identified an online course that will help me achieve this goal, and I have set aside five hours a week to work toward it.”

“This goal is relevant because I want to pursue a career as a software developer, and Python is a widely-used programming language.  Being familiar with Python will increase my employability and completing this goal will show potential employers that I am familiar with building web applications.”

Finally, goals should be time-bound.

You should define a specific period of time in which you will complete them.  Having a deadline can help you stay focused on completing your goal, and giving your goals a “close date” means you’ll have to have a clear “definition of done” (see also: goals should be measurable and achievable).

“I have set aside five hours a week to dedicate to the course, and will finish the course by [insert date here].  I will then use my five hours a week to work on my blogging application, and will complete the application by [insert date here].”


So, instead of setting some wild New Year’s resolutions like, “completely master five new programming languages,” or “build a server application without looking at any documentation,” try setting a couple of SMART goals that you can work toward throughout the year.  And if your goal is to take the first steps into the wide world of programming this year–welcome abroad!  Happy coding, and here’s to a SMART and fulfilling 2024! 

Add a Comment