Maybe you've heard about journaling, but if not, I’ll put you in context:
It's a technique where you write down in a notebook (I recommend doing it daily, but it can be anytime you need) your ideas, feelings, thoughts or whatever you want to get out of your head. The idea is to reduce stress, anxiety, and help you to practice writing, improve creativity, etc. When you write, you focus your thoughts in one place giving you more clarity of what is happening and also making you able to release it. Everything you write is personal, nobody reads it unless you want them to.
This practice has become more popular everyday. There's no limit to what you can include in your journal. You can draw, make tables to organize data, put pictures; be minimalist or super colorful (it's your choice).
But how the heck is journaling related with code? Well, one day I was curious about how I can mix this practice (that I do frequently) with my profession and I found "Code Journaling". I didn’t find much information but when I read about it, I immediately saw the benefits of this practice to improve my career and maybe my productivity.
Still this is something experimental for me but I'm enjoying it very much.
These are the main benefits doing this:
- Tracking goals and progress
- Documenting your work
- Documenting problems and good solutions in what you do
- Efficiently managing your time and priorities (helps to avoid bottlenecks in projects)
- Improving productivity
- Reducing stress (I think this is the best one)
What to write?
Some ideas for this are:
Track your goals
- Are you learning a new programming language or new technology? Track your progress: what you did, where you learned, what you are learning.
- Write some notes if you are taking a course, reading a book, watching a conference, etc.
- This also helps to keep fresh new knowledge, and after a certain time you'll see real progress.
Manage your projects
- Multiple projects? Write all the projects that you are working on. This helps to organize times and priorities. You can even include personal projects.
Identify important issues
- About the bugs you face, if your branch broke what you did, the steps to solve something, etc.
Take daily notes
- Well, not necessarily every day, but at least take regular notes of what you do. Maybe notes on a meeting, thoughts about your projects (even things that make you stressed! This can help relieve yourself a little bit)
Write down your failures, milestones and acknowledgements
- Track all the moments when something good happened and when your work is recognized. Reading and remembering this is useful to avoid falling into impostor syndrome
- Write when something bad happened or you failed in your work helps analyze what yo do and what you can improve to prevent it in the future
Review your activities
- Write and analyze what you are doing and what works for you, what things are not working and is time to stop doing and what you need to start doing for improvement.
- You can do this daily, weekly or monthly. Again, there's no rule about the frequency.
- Some days you might not be able to find inspiration. You may feel overwhelmed about what to write. It’s normal, so be patient. Just write one line. Constancy is the key.
No need to be perfect
- Write write write. Code journals need to be functional. You might choose to take a minimalist approach(your choice). This is an agile practice. If your writing method is not working you move on and try another. The idea is to grow in the process.
Make it yours
- The content is yours and nobody's gonna to read it. Don't be shy. There are no rules.
- It's like blogging for yourself
This example is in spanish but you can find it as inspiration too
With a journal you can analyze the past, organize the present and plan the future.
As for my experience, journaling helped me to focus on my projects and detect which things I needed to improve, also expressing what stresses me and how to better solve things. My style is minimalist (only black pen and white paper) but eventually I want to do more creative journals. My objective right now is to focus on the content.
Are you gonna try?