I'm a big fan of keeping notebooks full of useful information. Most of the time I use Bear Writer for this. But Bear is Mac only and I do a lot of personal project work on a Linux box. Bear also isn't the greatest at handling code snippets, despite using Markdown.
I decided to look for a dedicated developer notebook application. I had a few requirements:
- Nice code snippet handling
- Markdown editing
- Flat file options
- Multiple levels of folder hierarchy
I ended up with Boost Note which has been great. It ticks all the boxes and is actively being developed.
I did find quite a few other options that might be of use to others. Some are paid apps, some have different features and storage options. All are worth a look and a try to see what works best for you.
The whole reason I keep this kind of notebook is to have a space to keep all those code snippets and pieces of dev-specific information that I pick up along the way in my day to day work. I read a few articles on the subject when I was thinking about putting this together.
- Keep journals to become a better developer
- My Three Note-Taking App Criteria – and Why Boostnote Meets Them All
- Why Every Developer Should Keep a Daily Code Journal
- What is a developer journal?
These articles also inspired me to go beyond just code snippets. I also use a couple of tools to keep more journal style notes of my daily work and progress.
lftm - I don't always make use of every section of this method, but I do like keeping it in a separate folder within BoostNote.
jrnl - This tool works in the command line and even allows you to set up templates so you can ask yourself a daily/weekly/monthly question or prompt to help track your work and progress. I've stopped using this tool because it added friction to my backup process, but I liked using it. I often used it as a rubber duck and to record random thoughts throughout the day.
I organize my notebook with lots of folders and subfolders to break down the information into easy to find chunks. I've found it's best to revisit my process and clean things up once a year or so (more often as needed) in order to be sure my tools are still relevant.
I combine this journal and notebook with a sticky note (digital, of course) on my desktop. Here I keep a quick note to myself of where I left off and what I need to work on the next time I am at that machine.