DEV Community

Codeidoscope
Codeidoscope

Posted on • Edited on

Tracking your progress to improve your confidence

I create a log for almost every day that I code, and have done so since December. I do this to keep track of my progress mostly, so that I can see how far I've come, and also to stop myself from thinking I can't do it. Programming is hard, and it's important to reflect on how much we learn while programming, because it helps us realise how far we've come, and reminds us of all the efforts we've put in.

Often, we think others know a lot more than we do, or that they are naturally better at programming than we are. What we don't see, however, is the efforts they put in, the failures they encountered, the hardships they faced. We usually see the effortless part of programming, and feel demotivated when it doesn't feel the same when we do it.

By logging my work every day, I can physically see what I did during the last three months, and how far I've come. It helps me realise that little by little, I'm growing and getting better, and it has helped me become more confident in my coding abilities. I'm writing about logging today in the hope that it helps others who, like me, may be struggling to see what they've achieved.

What is logging?

Logging is simply recording some information that you want to keep track of. A log is a file in which you've written down what mattered to you, in a format that you find useful. I will be detailing how I record my logs further down, so keep on reading!

What are the benefits of logging?

Keeping track of your progress

By logging what you do every day, you can see how much you've learnt since you started logging. It makes it easy to see when you learnt something, how long ago that was, and it is also pretty nice - if you log regularly - to see how much time, work and effort you have put in.

Keeping track of the issues you've encountered

When I have a problem with my code, I sometimes write it down in my log. This forces me to think of a way to explain my problem clearly, which helps me find a solution faster. Just like rubber ducking! And if I need to ask someone, then I am sure that I can express my problem well enough that the person I asked can help me.

Keeping track of the solutions you found to your problems

Once I've written down my problem, I'll write down the solution to that problem so that when I encounter it again, instead of Googling everything all over again, I can just find it in my logs and fix it faster.

Keeping track of the resources you used when solving a problem

I keep a list of links to blog posts, Stack Overflow answers, Safari O'Reilly books, etc. that have helped me solve a problem or taught me more about a topic. That way, I have those links within the context of the problems I was trying to solve, so that I can refresh my memory if I need to revisit them.

Keeping track of the topics you want to read about more later on

Often, I will come across a new idea, concept, or technology that I want to learn more about, but don't have the time for when I'm working. So I write it down in my log, and dig it up later when I have time for it.

So, how do I log?

I have been using the following template for a few months, and it works well for me. The beauty of logging is that you can make it your own and decide what you want to keep track of, so if something does not help you, change it!

# Codelog #X - XXXX-XX-XX

-----

## Plan for the day

-----

## To investigate

-----

## Learned today

-----

## Done today

-----

## Plan for tomorrow

-----

## Resource list

With "Plan for the day", I set my intentions for the day and decide what I will be working on, which keeps me accountable and helps me set goals. "Plan for tomorrow", on the other hand, is where I will put the overflow of tasks I may not have been able to complete on a given day, or I will set intentions for the next day, which I will review when I start my log on that day.

I keep track of what I want to read about in "To investigate", I keep track of my issues and their solutions in "Learned today", and I keep track of the useful links I have found in "Resource list".

Here is an example of a completed log:

Where do I log?

I used to keep my log on my blog, but I have since moved them to their own repository as there were too many of them and it was getting difficult to keep track.

EDIT: If you want your own logs repository, I have created a template repository for you to use as you wish.

You can keep track of your logs in a Word/Google Docs document, or in a note-taking app, or in a notebook, or on your website, or anywhere you want! Just make sure it is easy to find and navigate for when you need to look back through what you have.

Conclusion

After a while, you will see your log collection grow. You will be able to revisit your logs and remember times when you solved a tricky problem. You will be able to find the answers to a problem you already had much faster, and you will not be able to tell yourself that you can't do it, or that you are not smart enough, or that you don't know enough.

Because you can do it, and you are smart enough, and learning is a lifelong process! So best of luck with logging, and I hope you find it as useful as I have!

Top comments (11)

Collapse
 
katieadamsdev profile image
Katie Adams • Edited

This is so fantastic, and the methodology is brilliant. It's strange how I log pretty much every other passion in my life - exercise, creative writing, even recipes for cooking - but never thought to log my progress in programming! I'll definitely be making use of this. I agree that it will help 'treat' my imposter syndrome 😅

Collapse
 
jamiekaren profile image
Jamie Ferrugiaro

Exactly! As someone with ADD, I already knew this is something I would do. It's amazing how tracking something helps you, especially when creating routines or mentally when you are struggling.

Collapse
 
charisseysabel profile image
Charisse • Edited

This is such a great idea to put learnings into a repo! I also have mine, but they're in a notebook and can be hard to scan at at times. Will def try it out and see how it works for me :)
One question I have though is when do you usually get to "investigate" the stuff that's one the "To investigate" section?

Collapse
 
codeidoscope profile image
Codeidoscope

During my apprenticeship, I would block out time during my day to explore the concepts more in-depth if I felt they were going to be important. I would also use my downtime (my commute, the hour I'd be in the office for before I started work, my lunchtime, or weekends sometimes) to investigate things that were not directly relevant.

I don't alway get to all of them, because my priorities and interests change and I adapt according to these. However, having that list makes it considerably easier than trying to remember that product I'd heard of that would do this thing that I can't quite remember 😃

Collapse
 
jamiekaren profile image
Jamie Ferrugiaro

This is so amazing!! I am just starting but I truly already knew that making a daily record (in whatever way) of what I do will help me learn (and encourage me when I'm having a bad day). I'm still deciding where I want to do that but this is great.

Collapse
 
kerushag profile image
KerushaG

GREAT article, I'm new in the game, and I just started a bootcamp for which I decided to keep a diary, where I mostly tried to make an entry about the experience, but now that things are growing more challenging I needed a better methodology especially because I can't seem to keep track of all the new info problems and solutions that I learn through doing the exercises, so this structure is literally just what I need to improve my tracking my learning

Collapse
 
nickylewlew profile image
Nick Lewis

This sounds like a great idea!

I'm curious though as to how long per day you spend filling out the log?

Is your log now fully hosted on GitHub?

Collapse
 
codeidoscope profile image
Codeidoscope

All of my logs are on Github, but I've had to make the repository private as people would fork my own data, which I wasn't comfortable with.

I spend around 20-30min per day filling in my logs. I sit down in the morning, create a new log and decide what I want to do for the day, then fill it up as I go during the day (I have two screens, so it's always open on my smaller screen), and wrap up my day by going over it, adding resources and making notes of what I want to do the next day.

It takes a bit of getting used to, but once it's part of your routine, it's easy peasy.

Collapse
 
nickylewlew profile image
Nick Lewis

Awesome! Thanks for the reply and the in detail on how you log. Might give it a go!

Collapse
 
rosejcday profile image
Rose Day

This is a great idea to track progress. Especially at work when you need to explain what you have been doing over a period of time or for any type of project!

Collapse
 
syntaxseed profile image
SyntaxSeed (Sherri W)

I love this.
I have my own wiki which would be a great place for this.