The Importance of Dev Notes
A Revelation I Only Wish I had Sooner
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 programming and especially through college I was told I should be noting down this and that thing I did during my studies, but computers came easy to me, as did much of my college computer science. So, while I did some note taking, as I didn’t need it I never truly adopted it.
Fast forward to my internship, third year of college, much of the tasks I was taking on were on novel enormous code bases, orders of magnitude larger than any codebase I had looked at before. As I trudged through with minimal note taking, I slowly realised my ability to become familiar with a codebase was directly correlated with how many class relationships and hierarchical structures I could remember until the structure became intuitive to me; With my responsibilities being that of an intern I managed to still do well and exceed expectations.
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 a bit of a programming legend 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 the component; 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 digests a problem, Its fantastic. In the time since though I have noticed, as with all things related to the body, without use it atrophies ‘use it or lose it’, so even on the days I don’t truly need the tool, i still try to note down what I have done and what I will do as it keeps my mind elastic and adept for interfacing with new issues.
My only regret is not having acted on what my lecturers told me sooner.