Why You Should Keep a Code Journal (Part One)
Journaling isn't just for writers!
Join the DZone community and get the full member experience.Join For Free
You may also like: We All Should Writing Articles
Journaling is often thought of as an arty or holistic pastime, an activity for those with a creative streak or too much time on their hands. Why would a technical person be interested in journaling?
Journaling is a tool, and a Code Journal is a tool for anyone who uses technology (not just specifically code), be it in their job or as a hobby (developers, software architects, QA/testers, etc).
The stereotypical type of journaling is usually considered to be a tool for improving mental and spiritual health, the Code Journal is a tool to improve your coding and work/hobby life.
In this post I will visit a few reasons for why you should keep a Code Journal then, in the next post in this series, I will give you some ideas for starting a Code Journal. There are no hard and fast rules, your Code Journal will be tailored to you and what you need from it.
The Benefits of Keeping a Code Journal
Get Everything Out of Your Head
If you want to remember to do something and you want to free up your mind to do what it should be doing (thinking!) then you need to get everything out of your head. Using a Code journal for this means that you won’t lose that vitally important Post-It note with your world-changing idea scribbled on it. Your brain will thank you for letting it think, instead of remembering.
"Your mind is for having ideas, not holding them."— David Allen
Track Your Growth
You can track your growth and see how you have improved. Without a record, it is very hard to see how far you have come. Most of us will feel we are stuck in a rut, or falling behind, at some point. Your Code Journal can either show you that you are actually improving, or it can help you identify what you are missing and to then set goals.
Track Your Goals and Progress
You can track your goals and any progress made against them. Keeping your goals at the forefront of your mind, and keeping track of progress will move you toward your goals much faster. A Code Journal gives you somewhere to record and review your goals, to keep you on track for any deadlines set.
"Pick battles big enough to matter, small enough to win."— Jonathan Kozol
Because of the records, you make in your Code Journal, it will be easier to carry on where you left off. You won’t waste time trying to remember where you got to in your project or what you planned to do next, even if there has been a long space of time since you worked on it.
Manage Multiple Projects More Easily
It will be easier to switch between projects. Most people have more that one project on the go at a time, and looking at your last notes on a project will get you going again much quicker, reminding you what you need to look at next.
Develop a Coding or Working Philosophy
A Code Journal will help you to develop a coding philosophy. Thinking about and analyzing how you code and your own (or team/company) processes will mean you can identify what works, what needs improvement and how new ideas can fit into your coding. A more streamlined and simplified process and codebase should be the result.
Document What Works and What Doesn’t Work
You can record things that work well or don’t work well. Having a reference for things to keep doing, things to stop doing and things to start doing will keep you on the path to improvement. Keeping a record and reviewing regularly is the key to improvement.
Keep Track of Decisions
You can keep track of the decisions you make about your projects, learning, etc. Can you remember why you made a particular decision, or what the decision actually was? If you now have more information, to inform that decision, you can work out if the decision needs to be revisited. You also have a reference so that you don’t have to make the same decisions again, so you’re not wasting your time.
Reduce Time to Market
Keep track of features and refactoring ideas to reduce feature creep. This is an easy trap to fall into, especially in personal projects. If you keep adding new features to your current development cycle you will never deploy that app! Keeping a record of new feature and refactoring ideas will mean you won’t be worrying about forgetting your ideas and they can be considered for a future release.
"Delivering good software today is often better than perfect software tomorrow."— The Pragmatic Programmer
Identify and Eliminate Bottlenecks
You will more easily identify bottlenecks or anything that is holding you back. Identifying things that need tweaking or skills that need to be learned will increase the speed at which you grow as a coder. Improving bottlenecks, over other areas, is likely to give you the most return on your effort.
"Any improvements made anywhere besides the bottleneck are an illusion."— Gene Kim
Discover Your "Happy"
Why do you like doing what you are doing? What is it that you enjoy? Work this out and you can focus on what makes you feel good about coding to improve your everyday happiness and help you set goals to move you further towards what makes you happy. Reviewing your Code Journal will help you work these things out much faster.
"I’ve always thought people would find a lot more pleasure in their routines if they burst into song at significant moments."— John Barrowman
Gather Evidence to Gain a Promotion or Pay Rise
Most organizations will require a good reason if you want a pay rise and/or a promotion. Your Code Journal is the ideal place to record exactly what you have been working on, and particularly your successes and praise from others. Don’t forget to include things from outside of your job role, such as open-source projects you may be working on. You can also make notes on your research on current market rates for your role, or role you aspire to.
Update Your CV and Prep for Interviews With Ease
Your Code Journal will be your best friend when it comes to updating your CV and practicing answers for job interviews. You have a record of the technologies you have used, the projects you have worked on, problems you have solved, how you approached a difficult situation...If this list sounds a little like a question prep list for a job interview then you probably get the idea that prepping for these general interview questions by referring to your Code Journal is going to be so much easier than trying to remember everything you have done for the last months or years.
In my next post on this series of Code Journaling, I will cover how to get started with your own Code Journal!
Published at DZone with permission of Jacqui Read. See the original article here.
Opinions expressed by DZone contributors are their own.