Skip to main content

Analysing Code

Constantly evolve strategies to work more effectively with AI.

Practice

Use a pencil and paper to map out the flow of ideas.

  1. What is coming in?
  2. What needs to come out?
  3. What decisions are getting made?
  4. What can go wrong?

For each method:

  • Identify the inputs
  • Expected outputs
  • How are outputs created
  • What could go wrong?
    • Inputs are not correct?
    • Downstream if outputs are not correct?
    • Side effects?

Once you feel OK with the paper version, digitialize it using a Design Tool etc.

Progress

Put a system in place to cope with the bombardment of new tools, tricks and patterns you will constantly encounter.

Know what you know, what you need to know, and what you can ignore.

RatingClarityExecution
0AwarenessNone
1DocumentedCoded Example
2ANKITested Concept
4Project SpecProject

Keep a list of concepts as you become aware of them with two headings.

  • Clarity: How well you understand the concept (0 - 4)
  • Execution: How well have used to the concept (0 - 4)

Memory Enhancement

Adopt Spaced Repetition Software such as ANKI or Execute Program to lock knowledge into your muscle memory.

The more knowledge you have in your fingers, the more you can stay in flow.

  1. Every time you learn something new create a question and answer flashcard and add this card to Anki.
  2. Use Anki every single day including weekends and holidays and commit to doing so indefinitely.
  3. Learn in context. Pick a project, and learn only what you need to get it done.
  4. Only add a card to your deck after having tried to use the item of knowledge therein.
  5. Every time you make a mistake carry out a post-mortem and try to figure out the lessons in the experience. Think about what you would need to know to prevent that mistake from occurring again, and turn this insight into new flashcards.
  6. At the end of every project ask yourself what lessons you learned and what you would do differently if you were to repeat the project with the benefit of hindsight.
  7. Delete or modify any incorrect, outdated, difficult to remember, incomplete or unnecessary cards. Update existing cards as improved understanding dawns.
  8. Read code regularly. If you come across something interesting be that an algorithm, a hack, or an architectural decision create a card detailing the technique and showing the code.

What is the most important question you could ask yourself to make progress?