Live data from Hacker News

As a developer, my most important tools are a pen and a notebook

hamatti.org

111–120 of 302 posts

Re: As a developer, my most important tools are a pen and a notebook

#112
post #5

Calling a notebook the “most important tool” for a dev is pure romanticism. Useful for some, sure, but let's not pretend it outweighs a debugger, version control, or CI. This isn't craftsmanship cosplay, it's software engineering.

As a developer my most important tools are a computer with working keyboard, monitor, and mouse. Everything else is secondary. A notebook and pen falls somewhere below cpu, gpu, hard drive, ram, reliable internet, etc.

I agree with parent comment of notebook and pen being pure romanticism. I mean, heck, I'd rate Obsidian or some other back linking note software as more important than a notebook and pen. A sticky note and pen would be even more important than a notebook and pen.

Re: As a developer, my most important tools are a pen and a notebook

#113
post #5

Calling a notebook the “most important tool” for a dev is pure romanticism. Useful for some, sure, but let's not pretend it outweighs a debugger, version control, or CI. This isn't craftsmanship cosplay, it's software engineering.

Finally someone had the guts to say it. I see the same arguments again and again that writing in a notebook makes you remember things better and think more thoroughly, but who exactly was tested here? Were people with an extensive and deeply personal Zettelkasten note taking system added as participants in the studies? What was their note taking process? Most people severely underutilize or even misuse their digital…

Different people learn and work in different ways. To become comfortable with a new complex topic I personally have to work things out, with a pencil and an eraser, on a piece of paper.

And even writing software I often make toss-away paper sketches; they help me see things in a way that make sense to me. Not replacing a computer, but complementing it. I would not push my method on everyone but it works for me. I also think similar techniques are fairly common. People discuss ideas verbally. They take walks to let brain take a different view, etc. My 2c.

Re: As a developer, my most important tools are a pen and a notebook

#114
post #5

Calling a notebook the “most important tool” for a dev is pure romanticism. Useful for some, sure, but let's not pretend it outweighs a debugger, version control, or CI. This isn't craftsmanship cosplay, it's software engineering.

And yet, you’ll be hard-pressed to be given access to those during computer science exams, unlike a pen and notebook.

(Maybe it’s different in modern college classes now but wasn’t for decades.)

Re: As a developer, my most important tools are a pen and a notebook

#115
I still have my notebook with the notes and drooling from my machine learning class back in college. I remember drawing nodes and connections to wrap my head around hidden layers, weights and all that. It is definitely super helpful to take notes and draw stuff when you're a dealing with a complex subject.

Re: As a developer, my most important tools are a pen and a notebook

#116
I have a notebook that I bring on vacations or weekend trips to jot down occasional bouts of inspiration. A few of those pages contain designs of pet projects that may or may not get implemented later. It can be fun to sit on the beach and map out a potential design even if you never end up implementing it.

Re: As a developer, my most important tools are a pen and a notebook

#117
post #40
post #7

Earlier quoted context omitted.

In a few years of my career now I never had to use a debugger or CI. Console debugging is good enough usually. On version control I agree.

I don't know you or your work. But I know (senior) developers that don't use a debugger and I've often noticed that when fixing a bug, they don't build a full mental model of what really goes wrong and often just fix the symptoms. Think "that shouldn't be null, we need a null check here" instead of "why is this value null? we should check here, but also make sure the caller works correctly."

On the other hand, though this is n = 1 and from 2000 (and it is classic Linus):

Linus Torvalds:

> I don't like debuggers. Never have, probably never will. I use gdb all the time, but I tend to use it not as a debugger, but as a disassembler on steroids that you can program.

> I don't think kernel development should be "easy". I do not condone single-stepping through code to find the bug. I do not think that extra visibility into the system is necessarily a good thing.

> Oh. And sure, when things crash and you fsck and you didn't even get a clue about what went wrong, you get frustrated. Tough. There are two kinds of reactions to that: you start being careful, or you start whining about a kernel debugger.

> I happen to believe that not having a kernel debugger forces people to think about their problem on a different level than with a debugger. I think that without a debugger, you don't get into that mindset where you know how it behaves, and then you fix it from there. Without a debugger, you tend to think about problems another way. You want to understand things on a different _level_.

https://lkml.org/lkml/2000/9/6/65

And I agree. At least for me, print debugging goes a long way, and I'm already invested in building mental models about code. I think using a proper debugger has to be the last resort, because nothing else works and it's time to get into the ugly details. Two valuable avenues for producing good code are formal verification (and its ilk, such as specification) and horse sense/common sense, which combine to say that we should have rigorous mental models that impose on our code. That's the primary objective, to me. The use of tools such as debuggers is secondary, and in my experience, largely neutral or harmful. There's the classic caveat of "if your goal is to ship code fast, then this isn't practical", which is fair, but I have some things to say about shucking off that culture.

Re: As a developer, my most important tools are a pen and a notebook

#118
Great discussion. In my opinion, the real takeaway isn’t about notebooks vs. digital tools, it’s about what shifts your mental gears. Every time we switch modes, it forces our brain to pay attention differently. That fresh context can boost focus, creativity, even recall.

For example, I recently stopped coding all the time and picked up a new hobby at night, writing. That simple change gave my brain a reset and actually improved the performance during the day. Same goes for planning: switching from digital to pen and paper breaks the routine and makes your brain engage differently. It’s less about the tool and more about how the change wakes you up.

Re: As a developer, my most important tools are a pen and a notebook

#119
post #67

I understand the sentiment, but I don't get how you could draw more complex software plans by hand. I usually use Draw.io/Diagrams.net, and the drawings get pretty large and need reorganizing dozens of boxes several times while planning the architecture. OTOH if the plan is very simple and obvious, and can be drawn out in one go, it doesn't really need a diagram in the first place, so I skip spending time drawing the…

I actually do all this stuff in my head and use hierarchies of bullet points in a text file to externalize some stuff. Some of these may end in arrows that point to a different process.

I never use paper because I'm always moving these bullet points around and inserting stuff between them. Apps are too slow.

I never write down all the information because these notes are enough for me to reload everything. It's pretty easy to see that I didn't write something when there's a gap in my notes. I never wrote it down because I'm going to come up with the same or better solution quickly.

This isn't really helpful for anyone else and doesn't work well with pair programming.

Re: As a developer, my most important tools are a pen and a notebook

#120
post #7
post #5

Calling a notebook the “most important tool” for a dev is pure romanticism. Useful for some, sure, but let's not pretend it outweighs a debugger, version control, or CI. This isn't craftsmanship cosplay, it's software engineering.

In a few years of my career now I never had to use a debugger or CI. Console debugging is good enough usually. On version control I agree.

It means that you don't write anything complex.
Post reply on HN