The post here mentions hypotheses, but I don't do experiments for the most part. It mentions writing down in the notebook before writing code, but I can't test my notes, I can't really send my notes for code review. I guess you could use it for design, but you'd lose all the advantages of word processing such as editing, links, context, etc.
I often have a scratch pad editor around with current working state in – that makes sense to me, but not on paper and that's not what's being proposed. I have also at times kept a logbook of what I've done, but it was very much an end of the day/week summary, not in the moment, not forward looking like this mentions.
The idea sounds great, but what is actually being written down?
One measure of a good notebook is if it contains sufficient information that you don't have to repeat work only because you can't figure out what you did. There are other good reasons for repeating things of course.
My spouse is a lab scientist, and I've seen her meticulous notebooks. She was telling me just last week that one of her experiments produced a puzzling result. The next day she said: "I figured it out from my notebook. I skipped a step that was in the procedure."
There was a time when a notebook was also a legal document, and so there was a criterion of whether it would stand up in court as proof that you had invented something. Could a "person skilled in the art" replicate your work based on your notebook? My dad told me that his notebooks were regularly reviewed and witnessed.
The legal issues have changed, since the patent system has switched to the "first to file" rule. My employer got rid of its formal notebook policy when this change came through.
My problem with physical notebooks is that a great deal of my work is computational, and I automate things. In my case, the best form for recording my work is in fact a Jupyter notebook. On the other hand, I come from a family of chemists, and taking electronic notes in a "wet" chemistry lab is often impractical.
Example: "I need to solve problem A. Problem A can be formulated in this way. This way is similar to a project I did a few years ago, if I remember correctly I had done B and C. However B would not work in the current situation, but would it not though? The issue is that it clashes with component X and Y. What about C? Hmm maybe but I needed approval from Z." etc. All of these thoughts are written down, without filter.
Forcing me to write down has two effects. The first one, slow down my thoughts, because discarding idea B after only 0.1 second of consideration is not productive if you do not explicitly think about why it is a bad idea, and consider the bad idea anyways. The second one is that writing down (especially manual writing and not keyboard typing, for reasons I cannot explain) allows you to think more deeply about your ideas, to envision it in different ways, not only the first way that popped to your mind. I think that keyboard writing requires too much of my brainpower compared to handwriting.
Moreover, in these sessions, having the possibility to look back to a previous idea immediately is extremely useful, and cannot be attained if you use an erasable surface rather than a notebook.
I have to say though that I very rarely look back to what I wrote after the session took place, unless I need to get back to the exact same problem.
o Sales meeting with Foo Corp
- Suggested to Sam that we use PostgreSQL
- Made us $X by doing $Y (star drawing)
. Fix a thing
/ In the process of fixing a thing
X Done fixing the thing
And that’s about it. I write this in an epaper notebook (Supernote Nomad) that I take everywhere in the office. At a glance I can tell you what I’m working on, what I did, and who I told what. And when I’m writing my annual self-review, I can search it for the star drawings to know what I can brag about.
I specifically do this instead of an iPad because I found it vastly less distracting during meetings. I tend to leave it laying there while I look at the speakers and pay attention, rather than just checking Slack really quickly, and oh, better look at my email, etc.
This is salve for my ADHD-scalded mind.
- Fixing broken test: (full ci link)
- seems to be repo foo, target //bar:baz, subtest TestSomethingNice. Error: (30 lines of stack trace here)
- git checkout 0ead3f820da34812089
- trying locally: bazel test //bar:baz
- command failed, error: (relevant error here)
- turns out I need to set a config, reference: (wiki link here)
- trying: bazel test --config=green //bar:baz
- problem reproduces 5 times in a row, seems like 100% fail rate
- source file location: source/bar/baz.cc
- theory: baz is broken from recent dependency bump. Reverting commit 987afd
- result: the error is different now (more error text)
etc.. etc...
This is actually super handy for a complex problem. No need to wonder "did I see the error before?" or "wait, when I was trying that thing, did I see that message as well?" or "how do I reproduce a bug again?". No keeping dozens of tabs open so you can copy a few words from each of them. When later talking to someone, you can refer to your notes.
See my comment here - https://news.ycombinator.com/item?id=46986532
Also see a concrete example of an Engineering Notebook from a time when they were common, posted by user JetSetIlly here - https://news.ycombinator.com/item?id=46985832
On What and How to Write:
The book The Thinker's Toolkit: 14 Powerful Techniques for Problem Solving by Morgan Jones gives you a catalog of structured techniques for problem solving which you can use in your own writing.
Addendum to the above book's catalog would be "Decision Tables" (useful for all types of decision-making and not just software engineering); How to Use a Decision Table Methodology to Analyze Complex Conditional Actions Requirements in Software Development - https://www.methodsandtools.com/archive/archive.php?id=39
I do use the Feynman Technique if I come across something interesting and try to explain it on paper. So if I was using it just for work, I'd probably do that. Something like "Spec driven development (Github Spec Kit and similar toolkits) is essentially a bunch of md files that provide more context for agents. There are some scripts that provide scaffolding, having agents write the md uses a lot of tokens so writing them manually after the scaffold is generated makes more sense. Try with a small project."
Sounds like your approach works for you.
Here's a similar post with more concrete advice on what to write: https://jamesmckay.net/2017/02/how-to-keep-lab-notes-as-a-so...
1. Choose the most low-friction solution you can get your hands on. 2. Write down everything you do, as you do it. 3. You can not be too detailed. 4. Write down your train of thought when you’re planning and designing your code. 5. Don't worry too much about making your notes look good. 6. Use a searchable text format. 7. Make your notes append-only. 8. Use your notes as a source for documentation, commit summaries and pull request descriptions. 9. Share your notes with your whole team. 10. Don’t make your notes public. 11. Learn from your mistakes.
I used to use HackMD but I have found Obsidian helps me better meet the criteria above (low-friction yet searchable).
I have learned the hard way, repeatedly, that forcing myself to write down a to-do list and notes on what I did actually makes me a better developer, even when I am in software engineering mode, not research mode. I make myself prioritize what to do, I retain better what I've learned, and I converge on solutions faster.
> The post here mentions hypotheses, but I don't do experiments for the most part.
Debugging any hard bug is essentially making a series of hypotheses and testing them. I use a notebook to keep track and make notes when I’m knee-deep in some hairy bug.
> It mentions writing down in the notebook before writing code, but I can't test my notes, I can't really send my notes for code review.
I use a notebook primarily for design work, especially algorithmic design work.
It’s really handy for numerical stuff where I often want to transform some expression or equation and prove to myself that it’s equivalent or has certain properties.
It’s also handy for working through any algorithm where you’re manipulating a tree or a graph.
> I guess you could use it for design, but you'd lose all the advantages of word processing such as editing, links, context, etc.
I find it much faster to sketch the things I mentioned (especially diagrams!) with pen and paper when working through them. If I need to present the work or share it, I might scan the notes or I can polish them in a word processor or slide deck or whatever.
For what it’s worth, my background is in a computational science (not CS) and I do quite a lot of work on numerical and algorithmic problems that come up in actual hardware and sensors. I also like to work on compiler-y things in my spare time.
Ultimately you end up using tools that are useful for you. So none of this may have any value for your work. But hopefully it answers what someone might write in a notebook.
This has a couple benefits. First, you always get better work if you go through more than one draft. Second, the idea of something being in the "permanent" notebook forever can cause me to freeze up a bit, not wanting to "mess it up". Having a place where I can "stage" or draft my entries helps with this.
Joe Decuir was an engineer at Atari and was involved with the development of the 2600. His notebooks can be useful references for the 2600, even to this day.
https://archive.org/details/JoeDecuirEngineeringNotebook1977
https://archive.org/details/JoeDecuirEngineeringNotebook1978
I started keeping a work journal a few years ago and it has changed how I work for the better. It is just a text file.
The main value of it is that I can search it! When I'm figuring something out for the first time, and I have a lot of trail and error, I write down what I did. And then I might not touch that thing again for 6 months. When I come back to it, it is unlikely that I will remember what I did exactly but because it is written down and searchable I can quickly recover my old state.
I like this so much I also started a personal work journal for my home lab. It really is useful for me. But its primary value is that I can search it.
While I cannot find a concrete flaw with these things, with some of them working quite well, I just couldn't really get a feel for them - they always felt so tech-y and imprecise, that I always went back to an actual sheet of paper.
Another product design misconception I think a lot of companies make is the use of metal cases - metal feels high-end and durable as opposed to plastic I suppose, and with it being quite solid, manufacturers can make it thinner and lighter.
But it's uncomfortable to hold, and hard to manufacture complex shapes, which means these devices often end up in a case. Man I miss the 2000s when product design wasn't dead.
When at Apple, where it is probably widely known that there is an internal bug-tracking system called "Radar", a co-worker called my notebook style "John-dar" since I kept copious one-line to-do lists of issues still to resolve, tasks to tackle, etc. When all the circles next to each entry were filled in we could send the code to QA for integration testing.
To this day I keep a Field Notes book in my (largish) wallet to take notes as I think of things on the go. (Long, boring drives seem to be the best times when these ideas come.) I am in the habit of scanning the Field Notes digitally as they fill up and are replaced. (I only lost one when I lost my whole wallet on a 7-day Katy Trail bike ride. Still stings—why no one contacted me about it since email and phone # were in the Field Notes book.)
Sometimes it is fun to pick through older ideas, see ideas that I actually tackled and completed, other ideas that I am reminded of that may someday see the light of day…
Everything is still searchable (or can be fed into an LLM) since it’s all Markdown text files behind the scenes. (And I can type my thoughts much faster than I can write.)
⁽¹⁾ https://help.obsidian.md/plugins/daily-notes
⁽²⁾ https://github.com/TfTHacker/obsidian42-jump-to-date
⁽³⁾ https://github.com/karstenpedersen/obsidian-daily-note-navba...
I suppose there might be a value in stopping right before the tidying-up stage (or perhaps right after it) and summarise the steps that led up to it (including abandoned approaches, and why) into some sort of document but that, for me, would be a digital file somewhere, not paper.
Like the author, I don't seem to ever need to read my old notes. Instead, it works wonders as a mental bucket of sorts and I've found paper to be extremely powerful for this. I tried doing this on a Surface Pro, for example, but it was significantly less enjoyable or effective.
Now with LLMs helping me write code, planning ahead on paper is even more useful.
All local first. Happy to get some contributors :)
So much more respectful in meetings to use pen and notebook than to use a digital writing medium. Not sure why but that’s the vibe I feel.
I make notes while working and notes during meetings. Honestly most of it never gets read after a eay but I still do it.
Very few of my colleagues carry a notebook around. Those who do are not seen taking notes too often.
I've been using GitHub Issues threads for this for a few years now, in both public and private repos.
They work great for this. You can copy and paste code, images and references to code in repos to them, you can link them together, they offer useful API access, work on laptop and phone and are backed up by GitHub.
Personally, I've been in many 2-15 year employments where I made copious notes - but I did so in whatever wiki my department was using. I've never had the opportinity (or, for that matter, much desire) to bring those notes with me to the next position, as they were (a) specific to that place or task, and (b) quite certainly proprietary (if far from high-value industrial secrets). Detailed notes on the inner workings of an in-house framework, or end-to-end credit card processing flow, just aren't that relevant when your next role is steward of a 25-year-old national tax reporting platform.
I've done a few blog posts, but haven't generally felt the need to share my brilliant thoughts with the greater world, those were just my personal musings (as is this piece right here).
Don't get me wrong, I'd love to _be_ in a position where such long-term usefulness was expected.
I’ve sometimes thought there’s a value to forgetting. If it matters I’ll learn it through repetition, like compression almost. It always seemed like reconstructing things from first principles saves brain space and allows for generalisation and creativity.
Personally I think this is a really useful time to be revisiting the concept because this is how a lot AI tools work. They're language models so the way they get to complexity is through writing out plans step by step and running commands and then interpreting them, you can read your session with an AI agent like claude code as their engineering notebook.
My workspace is just a markdown file, with dates and work-in-progress (scripts, bug investigations, design notes, task lists...), by date (reversed), rolled up to month files. If something (non-code) bears remembering, it's normalized and published to others, or put into my own topic space (leaving the WIP notes).
The key feature is global search over all such files. I can find any activity and any topic in seconds, with a search-bar overview of all places where I addressed some subject. (As a result I tend to create unique names.)
As a discipline, speaking directly and constantly to future self does help establish more methodical approaches, reinforces context awareness (and avoid ratholes); I restart even small projects where I left off, and scale the number of projects I try. Somehow the act of writing provides a reflective time/instant boundary (think: clocks in a functional universe) that orients the work in time/relevance to avoid wasting time on things that matter less.
- memory/yyyy-mm-dd.md
- MEMORY.md
- SOUL.md
Personally, I've been using one form or another of journals and notebooks for over three decades. I did go through the "plain text is king" .txt phase, but, while search is useful, I always revert to a handwritten notebook.
I find that I have a sort of visual memory of the location of a note or scribble, and can sort of easily find my way back to it "in the lower-right side of the page near the end of the notebook".
Another meta-metric that's interesting to access and is lost when typing is the changing quality of my handwriting, and how it exhibits the underlying mental state.
The notebooks/journals started from standard local composition books (B5) to narrower 14x21-ish cheap hardcovers. There's also dates (manual), titles or topic tags (manual), page numbers (manual), cross-references with arrows (which do stand out amongst the handwriting, e.g. -> p. 20, or -> C/20 to xref back to notebook C when you're on notebook E), indexes (also manual), earmarked pages, and a physical bookmark string. I've also reverted back to pencil, which I find more "quiet" a medium - I've been using Faber Castell's sleek TK4600 since elementary school, and it was quite interesting to return to it a couple of decades later.
Plain text is still king nowadays, but it's also diagrammatic, and hyperlinked, the only difference being it is manual, and seems to assist immensely with the memory and personal internal coherence. I can write down a note to myself, working something out, and then return to it a couple of months later, cross-reference it and expand it, gradually reaching new understanding.
No need for slip card boxes when you have a running log of your thoughts and works that can be referenced and cross-referenced, nor is there a need to limit the length of your text because of the medium - write a bullet list if you want, checkbox it, or a 200-word vignette, or just let loose over a few pages, it's all good: a plastic medium for a plastic mind.
In all, for me journaling/notebooking is highly recommended. And for the younger folk who are keyboard-first, perhaps the deliberate slowness and scratchiness of this quaint medium will reveal a meditative quality.
Closed notebooks barely work because unless you're working on something highly sequential you wind up with 100 notebooks each of which have 5-15 pages used and are mostly wasted.
Occasionally, dated notes can be critical in IP litigation.
But i went back to them maybe 5 times in all those years. And the effort of writing actually distracts me more than the effortless action of typing. Plus the search and backup functions.
Even in high school in the early 90s I typed up all my class notes because the act of transcribing my written scratch to typed notes cemented it in my memory — i remember the sensation of recalling something for a test by air typing.
I guess with this history, its just how Ive trained myself so I carry laptop every where I go and type on that, but I al jealous of some of the well crafted and illustrated notes of some peers — especially the ones with multicolor pens for differentiation.
These are useful for a couple of purposes, the first is simply getting thoughts out of my head and into a document. The other thing they've been good for is tracing back through what I've been doing - my job involves a lot of context switching, and it can be good (and sometimes also useful) to be able to scroll back through the last month and be reminded that I have in fact achieved something.
I agree with other commenters here that typing gives me more flexibility, in particular when writing arguments. I’ll format each point as a bullet and rearrange the list until I’m satisfied with the flow.
The notebook is essential for recovering tidbits learned along the way, e.g. what tricky steps did I need to get that one dependency to build. Weekly notepads are coarse enough to search by memory and contain enough context to get oriented quickly when going back several months.
Start from wherever suit you, play, experiment and pay attention what works for you, adjust and iterate. Don't fixate on shiny concepts, i.e. "engineering notebook", and the "need" its records to be dated, etc. Try something, let it lapse. See if you are worse without it, then adopt it back. If you don't see the difference, so be it.
These days I split between technical notes a write and store on the project git so others and the AI tools can read - eg architecture decision records, bug reports etc and then a separate personal linear time journal of what I’m doing / thinking/ task lists meeting notes etc, often with links to the project specific docs. Great for searching. What I miss from paper is ability to quickly sketch diagrams.
But I never felt the urgency to start a proper notebook. All the important decisions are documented in form of git commits for code or decision records for systems
I started really relying on the "what I'm going to do tomorrow" to remember where I start!