The Curated Daily
← Back to the archiveDispatch · 6 min read
Dispatch

I'm going back to writing code by hand

By the editors·Tuesday, May 12, 2026·6 min read
Close-up of a smartphone displaying code text held in a person's hand.
Photograph by Andrey Matveev · Pexels

For years, like most developers, I've lived within the comforting embrace of Integrated Development Environments (IDEs). PyCharm, VS Code, even Jupyter Notebooks – these have been my daily drivers for building and testing financial models, algorithmic trading strategies, and data analysis pipelines. They offer auto-completion, debugging tools, linting, and a host of other features that undeniably boost productivity. So why, you might ask, am I actively choosing to step away from this convenience and return to writing code by hand, using a simple text editor?

The answer, surprisingly, isn't about masochism. It's about deeper understanding, sharper debugging skills, and a more profound connection with the financial logic I’m building. It’s about owning the code, truly, in a way an IDE can subtly erode.

The Allure (and the Illusion) of the IDE

Let's be clear: IDEs are fantastic tools. They are the result of decades of engineering effort, and they solve real problems. They’re particularly useful for large, complex projects. They allow teams to collaborate efficiently. But within the realm of finance, where a single misplaced decimal point can lead to catastrophic losses, and where algorithmic nuance is paramount, reliance on these tools can create a dangerous illusion of competence.

Here’s what I've observed:

  • Abstraction Creep: IDEs abstract away so much of the underlying process that you can end up writing code without fully understanding what the code is doing. Auto-completion, for example, can save time, but it also discourages you from remembering function signatures or understanding the relationships between different modules.
  • The Debugging Crutch: Debuggers are powerful, but they can also foster a reactive approach to errors. You step through the code, watching variables change, instead of proactively anticipating problems through careful code construction and mental simulation.
  • Loss of Mental Model: When you rely heavily on an IDE, your mental model of the code becomes fragmented and dependent on the tool. Try to reconstruct that code on paper, or in a different environment, and you might find yourself struggling.
  • Hidden Dependencies: IDEs often bundle a lot of functionality. This can lead to dependencies you aren't even aware of, which can become problematic when deploying to different environments.

In finance, where accuracy and reliability are non-negotiable, these seemingly small drawbacks can have significant consequences.

Why Finance Demands a Different Approach

Financial algorithms aren’t just about producing a result; they're about producing the correct result, and being able to confidently explain why that result was produced. This demands a level of precision and understanding that IDEs, by their very nature, can sometimes hinder.

Consider these aspects of financial coding:

  • Mathematical Precision: Financial models often rely on complex mathematical formulas. Coding them by hand forces you to meticulously translate those formulas into code, reducing the risk of subtle errors.
  • Regulatory Compliance: In many areas of finance, code must be auditable and explainable to regulators. A deep understanding of the underlying logic is crucial for meeting these requirements.
  • Algorithmic Trading Risks: In high-frequency trading, even milliseconds matter. Optimizing code for speed and efficiency requires a granular understanding of how each line of code impacts performance.
  • Data Integrity: Financial data is often messy and prone to errors. Writing code by hand encourages a more careful approach to data validation and cleaning.

My Experiment: Back to a Text Editor

I’ve committed to coding my personal financial projects – primarily algorithmic trading strategies and backtesting frameworks – using a simple text editor. I’m currently using Sublime Text, but Vim or even Notepad++ would suffice. The point isn't the editor itself, but the lack of features.

Here's what I’ve noticed in the few weeks I’ve been doing this:

  • Increased Code Comprehension: I'm forced to think more deeply about each line of code before I write it. I’m actively recalling function signatures, understanding data types, and mentally simulating the execution flow.
  • Fewer Bugs: Surprisingly, I'm finding fewer bugs. The slower, more deliberate process of coding by hand leads to more careful planning and less impulsive coding.
  • Improved Debugging Skills: When errors do occur (and they will), I'm relying less on the debugger and more on my understanding of the code. I'm learning to trace errors manually, which is a far more effective learning experience.
  • Deeper Connection to the Logic: I feel a stronger sense of ownership over the code. It’s no longer just a collection of commands that the IDE executes; it’s an extension of my own thought process.
  • Enhanced Problem Solving: Without the crutch of auto-completion, I’m relying on my problem-solving skills more. I’m figuring out how to implement solutions from first principles.

It’s undeniably slower, especially at first. It requires more concentration. But the payoff in terms of understanding and quality is significant.

Tools I Still Use (and Where to Draw the Line)

I’m not a Luddite. I still utilize some tools to streamline my workflow:

  • Version Control (Git): Essential for tracking changes and collaborating (even if it's just with my future self). I use https://example.com/ for a GUI client, but command-line git is powerful too.
  • Testing Frameworks (pytest): Rigorous testing is even more important when coding by hand. I rely on pytest to verify the correctness of my algorithms.
  • Linting (flake8/pylint): While I'm not letting a linter dictate my coding style, I do use it to catch basic errors and enforce some consistency.
  • Documentation Generators (Sphinx): Documenting financial code is critical. Sphinx helps me create clear and concise documentation.

The key is to use these tools intentionally, not to let them dictate how I code. I want to be in control, not the other way around.

Practical Tips for Coding Finance Applications by Hand

If you're considering giving this a try, here are a few tips:

  • Start Small: Don't try to rewrite a complex trading system from scratch. Start with a simple financial calculation or a small backtesting script.
  • Focus on Clarity: Write code that is easy to read and understand. Use meaningful variable names and add plenty of comments.
  • Test Thoroughly: Write unit tests for every function and module. Test with edge cases and boundary conditions.
  • Use a Style Guide: Adhere to a consistent coding style (e.g., PEP 8 for Python) to improve readability.
  • Take Breaks: Coding by hand requires more concentration, so take frequent breaks to avoid burnout.
  • Embrace the Slowdown: Don't get discouraged by the initial slowdown. The benefits will come with practice.

Is it Right for You?

Coding finance applications by hand isn’t for everyone. If you’re working on a large, complex project with a team, an IDE is probably the right choice. But if you’re a solo developer or a small team building financial models or algorithmic trading strategies, I encourage you to give it a try.

It’s a challenging but rewarding experience that will deepen your understanding of the code, improve your debugging skills, and ultimately, make you a more confident and capable financial coder. It forces you to truly think about what you're building, and in the world of finance, thinking is often the most valuable asset you have. You might even find that a renewed appreciation for the tools you do use, understanding when they're truly helping and when they might be hindering your progress.

Resources to Help You Get Started

Disclaimer: I sometimes include affiliate links in my articles. This means I may earn a small commission if you purchase a product through one of these links. This does not affect the price you pay. I only recommend products that I believe are helpful and relevant to my audience. My opinions are my own and are not influenced by any affiliate relationships.

Pass it onX·LinkedIn·Reddit·Email
The Sunday note

If this was your kind of read.

Sign up for the morning email — short, hand-written, and sent only when there's something worth your time.

Free, sent from a person, not a system. Unsubscribe in one click whenever.

Keep reading

The archive →