Skip to content

An in-progress collection of my notes related to software development

Notifications You must be signed in to change notification settings

jnsya/code-diary

Repository files navigation

Code Diary

This is an in-progress and incomplete collection of my notes. Previously my note taking was more haphazard, and this is an attempt to organise my knowledge more systematically.

Learning Workflow

Broadly, this is my current workflow for learning new stuff:

  1. Collect questions related to a particular subject over a period of weeks/months.
    • Everytime I'm confused about something, I try to note what exactly it is that I don't know. Turning diffuse "confusion" into a concrete question is a useful practice.
    • I'll often make a new file for a subject (e.g. "SQL query plans") which at first consists only of related questions.
  2. Do a deep dive into answering questions around a particular subject, while making notes.
    • I prioritise areas that come up all the time.
    • This process often takes several hours, and I try to follow relevant rabbit-holes if they lead to greater big-picture understanding.
    • For example: "a JOINS connects two or more SQL tables. Hang on, what exactly is the definition of a table? Do I understand that properly?".
    • This kind of deep dive is one of my favourite things about being a software developer - understanding a system better, and noticing connections between previously disparate phenomena, is very satisfying.
  3. Commit important things to memory using spaced repetition software
    • If I'm confident that the notes are important and likely to be relevant to me for a long time, I'll memorise them using Anki.

Inspiration

This Semicolon & Sons video inspired me to arrange my notes more systematically.

About

An in-progress collection of my notes related to software development

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published