Whatever you choose to call it: a journal, a notebook, a daybook, a coding scrapbook — it can be the secret sauce to success in leveling up your software engineering.

Originally published on Medium on March 25, 2024


Starting with Why

In the article “Hello Engineer: The Art of Continuous Learning” I noted that:

For technologists and especially software engineers and engineering managers, cultivating the art of continuous learning is critical now more than ever in order to stay relevant.

The article discussed both the adopting the growth mindset and how learning strategies such as spaced repetitionactive recall, and interleaved practice can enhance learning outcomes. Embedding and synthesizing knowledge as you learn whether through theory or through practice will improve your effectiveness and results. An engineering journal can act as your pair programmer and ‘second brain’ to impress your daily learning more strongly.

Whether you’re a seasoned professional or a novice, keeping an engineering journal will level up your career and understanding of your craft and improve your decision-making skills.

As a software engineer you can and should keep a detailed journal to record your engineering and coding experiences, including the challenges you face, solutions you come up with, and any obstacles you encounter. You can be open about the difficulties you face so you can learn from them. You can write down any “aha” moments, clever ideas, or new perspectives that come to you while coding, as they could be useful in the future.

Take time to think about your daily decisions, both good and bad, and to improve your skills. You can also use your journal to store useful bits of code, algorithms, and design patterns for easy reference. Lastly, a journal provides the space to track your personal growth, habits, and celebrate your achievements, while also identifying areas where you can improve. This is a pragmatic (practical) approach to engineering that was similarly described briefly in “The Pragmatic Programmer” in the chapter ‘Engineering Daybooks’.

Additionally, If you practice agile scrum or have regular updates with your team it will also lift your daily updates from ‘I was stuck yesterday, I tried some things at random, don’t know what I’m doing today’ on repeat to something far more cohesive and progressive.


Digital vs Analog

My Experience

I adopted note-taking pretty early on and used shared notebooks at the time with my older brother — we would take turns in taking down notes and actively coding. It was there we were able to embed knowledge as we were learning about how to code in Turbo Pascal and x86 Assembly since we were driven to learn by a love of math, graphics, and video games.

Exhibit A: Engineering Journal: Learning matrix multiplication and 3D transforms to create computer graphics

Exhibit B: Engineering Journal: Learning how to put pixels to screen and how vertical sync worked in assembly

This wasn’t the type of information they were teaching in school. Information Technology meant ‘using a word processor, database, or spreadsheet’! Nevertheless this way of putting pen to paper as we experimented really embedded the knowledge and the math in my mind. By the time I had to do my regular high school exams I was used to far more advanced math and computer science and had something to look back on.

By the time I started to work in the industry I simply continued the practices I already knew and was used to. I documented my progress, my thoughts, my failures, my code snippets, my understanding of how things were wired up and why, and it set me up to succeed in challenging circumstances. 1

Nowadays I use a mix of notebooks and dot grid journals as well as digital tools (e.g. ObsidianOneNote, and experimented with JRNL.SH) to journal my engineering / continuous learning day. Digital journals can be great for copy-pasting large swathes of information, web clips, and email clips, as well as quickly searching for documented information. There is, however, something to be said of the purity and benefits of using paper and pen over digital journals, especially when used in combination with rapid journaling techniques, and manual indexes.


Unpopular Opinion: Paper > Digital

As a technologist it might seem strange to prefer paper over digital note-taking but the evidence suggests there are good reasons to in some circumstances.

Editors Note: 2024-04-19

Since I wrote this I decided to move from Medium-first blogging to my own personal blog and digital personal knowledge management system and digital / hybrid note-taking, journaling, and learning has become a new obsession - something I’ll write about in future!

In fact, the following experience was shared in the article — In a Digital Chapter, Paper Notebooks Are as Relevant As Ever which was published in the journal, Psychological Science:

About 50 students were invited to attend a lecture. Half took notes on laptops and half with pen and paper. Both groups were then given a comprehension test.

It wasn’t even close. The students who used paper scored significantly higher than those who used laptops.

[They attributed] this unexpected finding to the fact that the “analog” note takers were forced to synthesize rather than merely transcribe. It’s a phenomenon known as “desirable difficulty.”

“Desirable difficulty is some small roadblock that is in your path that actually improves your understanding of a topic,” she explains.

The paper further noted:

Whereas taking more notes can be beneficial, laptop note takers’ tendency to transcribe lectures verbatim rather than processing information and reframing it in their own words is detrimental to learning.

Some specialized coding journals can provide daily inspiration

This idea of “desirable difficulty” is an interesting topic. When I looked at its definition I found the article here which references the work by Robert Bjork in his 1994 study “Memory and metamemory considerations in the training of human beings” which suggests that manual note-taking is adding the necessary friction to aid in long-term memory recall:

The foundational principle of this theory is that adding an aspect of challenge to learning activities will result in better long-term retention of information. In his 1994 study and in subsequent writings, Bjork draws a distinction between performance learning, such as cramming for a test and performing well in the short term, and true learning where the knowledge can be recalled and used in different contexts. Desirable difficulty incorporates strategies in which students are exposed to material repeatedly over the course of the class to improve recall, and thereby, retention. This may mean sacrificing short-term performance to achieve long-term results.

The best engineering journal is the one you WANT to use, align it with your personality


So Now, What?

Whichever way you choose to journal is completely up to you. What’s most important is that you use it to diligently record your coding journey: triumphs, hurdles, and insights, preserve your “aha” moments, reflect and learn, build a code repository, and accelerate your personal growth and development.

If you’re starting out, though, you can benefit from the guidance here: General Engineering Introduction which covers the “General Engineering” notebooks and project writing.

It advises keeping daily records of what you’re Going to dodoing, and RANT (or rather: “Reflection, Analysis and NexT steps”) which happens to fit in nicely with your daily scrum updates if that’s what you practice for agile:

Going to Do:

  • Typically follows from the previous RANT but can be different.

  • Notebook is expected to be chaotic, capturing intentions rather than logical consistency.

  • Trivial tasks are omitted unless they’re new or have engineering significance.

  • Captures intentions and plans, enhancing chronological integrity and commanding respect.

Doing:

  • Actions taken may not align with “Going to Do”; the emphasis is on doing something.

  • Includes quick sketches, notes on computer work, documentation of web quests, programming processes, and recording costs and product details.

  • Marks the transition from playing to doing, design, and problem-solving in engineering.

RANT:

  • Serves as a quick dump of next steps, crucial for navigating confusion and uncertainty.

  • Helps to evaluate what went right or wrong, why, and what could be improved.

  • Sets up the next “Going to Do”.

Take Aways

  • Continuous learning is essential for engineers to remain relevant in the fast-paced tech industry.
  • Employing growth mindset and learning strategies like spaced repetition enhances learning outcomes.
  • Engineering journals act as a ‘second brain,’ reinforcing daily learning and improving effectiveness.
  • Detailed journals document coding experiences, challenges, solutions, and facilitate reflection on successes and failures.
  • Whether digital or analog, diligent journaling accelerates personal development and preserves insights.

Useful Resources

I enjoy engineering journaling enough to create some essential coding journals of my own including 150 pages of tailored space to support your daily software coding journey across ideation, implementation, notes, best practices, including cheat sheets:


References

Disclaimer:

The views and opinions expressed in this blog are based on my personal experiences and knowledge acquired throughout my career. They do not necessarily reflect the views of or experiences at my current or past employers

Next Steps

  • Share your own experiences with journaling in the comments section.
  • Follow my blog (and others) for future updates on my engineering exploits and professional / personal development tips.
  • Buy a journal from The Hot Co. Shop and try journaling for yourself
  • Connect on social media channels

Footnotes

  1. Really Challenging: in my first job after graduating my ‘developer onboarding’ was: “Here are our top 20 bugs in the system that no-one has been able to fix — fix them”! I still shudder when I remember those first two weeks and how I questioned if I chose the right career.