DEV Community

Cover image for How I Approach Notetaking as a Developer

How I Approach Notetaking as a Developer

Shannon Crabill on July 15, 2019

Recently, I realized the importance of—good—notetaking. Shannon Crabill @shannon_crabill ...
Collapse
 
jacoby profile image
Dave Jacoby

I have several thoughts that don't have a coherent through-line, so I'll proceed and hope coherence comes.

One of the concepts in David Allen's Getting Things Done is using external memory. In fact, that's the only part that stuck, and I'm eternally grateful. I've found that taking notes by hand helps them "stick", which I credit to years of pre-computer education, but follows your NPR link.

Regarding code comments, I'm torn. Jeff Atwood suggests writing better code instead of comments, and I'm not 100% on board, I lean toward the "why" while leaving the "how" to code. I might do something more like this:

# writes a random color in hexidecimal RGB format to STDOUT
def createColor
  hexadecimalIntegers = ["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"] 
  color = hexadecimalIntegers.sample(6).join("")
  "Your new hex color is ##{color}" 
end

Also, I didn't know about array.sample() but quite like it. I'm going to have to implement it in languages I use. rand, in the languages I know, would involve aligning output to array size, casting as integer and making the index, so using sample is the clear choice, once you know it exists.

But I agree on note taking and "whatever works for you". Thank you for writing this.

Collapse
 
scrabill profile image
Shannon Crabill

You make a good point about separating the why and how with the comments and code. Your example is a lot cleaner and seems like it would be appropriate for more complex applications.

I've heard references to Getting Things Done (I go by the 2 minute rule when I can).

Thanks for sharing!

Collapse
 
ssimontis profile image
Scott Simontis

I would encourage you to check out a movement called literate programming, originally invented in the late 70s by Donald Knuth. It never really took off the way he envisioned it, and the meaning of the idea has been diluted down to systems which can scrape comments from source files nowadays.

Literate programming is about having snippets of code, or entire programs, that you can evaluate, study and modify, surround by text. It feels like a lab journal; I use it a lot when trying to figure out how to do Systems Administration tasks so when I need the script again in 6 months I will actually have it!

Not sure how familiar you are with Emacs, or if you even want to be, but Org Mode in Emacs features a literate programming library called Babel which lets you embed code blocks. The learning curve is very sharp, the community can be very grumpy if you ask a question they feel is obvious, but overall a cool experience. It does not play well with Windows, however. When it started breaking and I was spending more time fixing Emacs than I was studying, I gave it up.

One of these days it's a system I would love to build.

Collapse
 
scrabill profile image
Shannon Crabill

I've heard of literate programming! It's a facinating concept (along with Donald Knuth in general)

It was referenced in an unconference session at Write the Docs and I almost referenced it in this post but it slipped by mind during editing.