Skip to main content

Goal Setting for Software Engineering

· 3 min read

Over the past few years, I came to the realization that there wasn't necessarily a way to improve directly as a software engineer. When you're younger and going through high school you learn skills such as first learning to code the fundamentals and you place those in your tool-belt. In university you learn better algos, more deeper topics like OS, and software architecture. These are all fine and dandy but don't really give you to grow in the industry.

However, another realization is that there may perhaps be an element of practice. I grew up playing hockey, and you don't only get better at hockey by playing games. You get better by practicing; something we don't necessarily focus on once we're in the industry.

An pretty simple example of this I have is using a lambda to sort something in Python. This is something very useful to have for coding interviews, but it's something I never bothered to take the time to remember the syntax. I always assumed that I would remember it if I did it enough times, but never did. So instead I actually took the time to remember and learn exactly what each piece of the syntax does and now I don't have to search it up every single time I need to use it.

Your Theme

A video I liked a lot on the topic of growth is CGP Grey's "Your Theme". It basically talks about how instead of setting concrete goals which are doomed to fail like many New Years resolutions do

There's a few ideas I like from the video. Be kind to yourself. I think we're harsh on ourselves for our goals, and sometimes you don't want to be focused on not hitting them and instead improving. Take small steps to have progress. A lot of goals are focused on do X now, but instead the theme just let's you tilt your head towards the goal, ie if you have an extra 10 minutes while working on your project use that for your theme. Themes can be short. There's no reason that have to be a year which is an astronomically long time. Waterloo semesters are four months which I like, almost every business/the actual seasons use 3 months. These steps make goal setting for me a lot easier.

My example of this is earlier I felt like I was starting to get unorganized in the way I code. So I decided to take the semester to allocate time to make me more organized. This evolved me creating my own personal documentation system for the code base. Finally installing a password manager (I probably should have been doing this for years). Adding new shortcuts and aliases, creating a tab system, among other new systems.

Theme ideas

Here are theme ideas that I may or may not use in the future. I hope they can help you as well.

  • Organization
  • Infrastructure
  • Communication
  • Code Reviews -> Code level, code structure level, architecture level
  • Sloppiness
  • Growth
  • Leadership
  • Initiative
  • Novelty
  • Learning
  • Simplification
  • Technical
  • Motivation
  • Focus

This is currently only implemented for my engineering practices but I'll probably soon enough implement it for my personal life and my relationships as well.