The Importance of Dev Notes **WIP**
A Revelation I Only Wish I had Sooner
I## Introduction
I have been writing code in some shape or form for over 6 years at this stage which is a bit nuts in hindsight. Much of my growth has been relatively stable compounding interest on my time invested. There is one shining exception to this, writing notes.
Since I started college I was told I should be noting down this and that that I did during my college tenure, but computers came easy to me, as did much of my college computer science; So as I didn’t need it I never truly adopted it. After all if i didn’t have exams that module why would i write notes.
Fast forward to my internship, third year of college much of the tasks I was taking on were on new enormous code bases, orders of magnitude larger than any codebase I had looked at before, but I trudged through with minimal note-taking figuring my upper limit of understanding of a codebase was directly correlated to how many class relationships and hierarchical structures I could remember until the structure became intuitive to me.
The Revelation #
Starting as a grad engineer I was given significantly larger scope projects; Financial Tech Products, large scope learning platforms, my mind was being pushed to the limit of what could be held in my head. Paul Graham one of the more legendary programmers outlines tenets to follow in his famous essay Holding a Program in One’s Head. Below is a non exhaustive list.
- Avoid distractions
- Work in long stretches
- Start small
- Keep rewriting your program When trying to meet deadlines and get interfaced to a new codebase, not all of these are in my control. I tried to start small but it kept running away from me; I tried to rewrite sections to gain an understanding rather than improve; I peppered more comments than a reference guide but these weren’t truly moving the needle.
What truly Changed things was my move to paper, less obsidian, less notepad++. Abstract notes at first, stuff that looked like ‘My First MindMap’ by Jack aged 8, but the more I worked at it the more those abstract representations I was writing were being imprinted in my mind. I used Tree structures to represent class and file hierarchy. I used weird shapes to refer to different design patterns or implementations.
The more I have worked at it the less I’ve needed it, it seems to have fundamentally changed the way that my brain consumes a problem, Its fantastic. I only wish i’d tried it sooner