Harnessing a Programmer's Mindset for Smart Investing
Written on
Chapter 1: Understanding the Programmer's Approach
Programmers possess a unique skill set that can be advantageous in the realm of investing. By shifting their analytical thinking from coding to identifying promising businesses, they can enhance their investment strategies.
Initially, I believed that the only tool programmers had in investing was the ability to automatically identify undervalued stocks using financial APIs, such as Yahoo Finance. However, my attempts to find successful stocks through this method were largely unfruitful.
As I delved deeper into mental frameworks, particularly through the insightful works of "Poor Charlie’s Almanack" and "Algorithms to Live By," I came to understand that my approach to investing was flawed. It became clear that the focus should not solely be on numerical data and coding, but rather on identifying companies that exhibit robust characteristics.
In this article, I will share some essential mental frameworks borrowed from programming that can assist you in becoming a more astute investor.
Section 1.1: Algorithms in Investing
An algorithm in the realm of computer science represents a sequence of instructions or rules that a program follows to accomplish a specific task or resolve an issue. This systematic approach is utilized for various activities, ranging from simple calculations to intricate data analyses and artificial intelligence applications.
At one time, I employed coding to retrieve stock prices and financial data. My method primarily relied on various Yahoo Finance APIs available online. Yet, even when I identified a financially sound company, I often felt uncertain about the quality of my investment decisions.
After immersing myself in value investing literature, I pondered whether I could create an algorithm to better understand a company’s business model. The challenge, however, is that one cannot simply code such complexities because the meanings of terms can differ greatly based on context.
This realization led me to understand that a non-programmatic algorithm could take the form of a checklist. Both checklists and algorithms share a commonality in that they require performing tasks in a specific order, often repeated. It is crucial to keep your checklist updated, similar to maintaining code to align with current standards.
Here’s my refined investing algorithm:
- What does the business do?
- What are its competitive advantages?
- Is the management structure decentralized?
- Is the annual report accessible and informative?
- What has been the company's performance over the past decade?
- What is the company’s estimated value based on discounted cash flows?
Section 1.2: The Importance of Testing
In software development, testing is the process of assessing a system or its components to determine if they meet specified criteria. Various testing types exist, including unit, integration, functional, performance, and acceptance testing, all aimed at identifying errors or omissions.
When I entered the tech world, I began as a User Acceptance Testing (UAT) tester. Initially, I found this role tedious due to the multitude of requirements. However, as I became more integrated into the software development life cycle, my perspective shifted from that of a tester to a stakeholder, and I began to appreciate the UAT process more. Gaining coding skills also helped, as I could test what I created.
In investing, testing presents a different challenge. Unlike stock prices, which fluctuate unpredictably, I’ve devised a method to evaluate a company’s financial health. Instead of focusing solely on stock prices, I recommend scrutinizing a company's financial history to verify its stability. For example, if you suspected that Apple would become a leading company in 2014, examining a decade's worth of its financial statements could validate your hypothesis.
Chapter 2: Debugging Your Investment Strategies
In programming, debugging involves pinpointing and rectifying errors within code, a process that requires various techniques and tools tailored to the specific programming environment.
In the early stages of my programming journey, I was intimidated by debugging, mistakenly believing that code should work perfectly on the first attempt. However, I soon learned that making mistakes is a natural part of coding, and frequent practice helps in recognizing errors early.
What I appreciate about programming is the immediate feedback available through debugging tools, such as logs and online communities.
Similarly, you can apply debugging to your investments. When assessing a potential investment, consider this fundamental question: What misconceptions might I have about this company? This approach is vital in avoiding confirmation bias, as challenging your assumptions is crucial for sound decision-making.
Like coding, debugging your investment ideas should not be overly complex if you know where to look. If you suspect a company's financials are too good to be true, examine the footnotes for potential hidden issues. Conversely, if you believe in a company's growth potential, discuss your investment thesis with a friend who can either bolster your argument or challenge it.
Why Programmers Excel in Investing
I contend that programmers possess a distinct advantage in investing due to their training, which emphasizes rational thinking over subjective opinions. Notable investors like Warren Buffett and Charlie Munger are celebrated for their rationality and ethical standards, and they often demonstrate strong mathematical skills, akin to those of most programmers.
Ultimately, the mindset of programmers is naturally aligned with investment principles; they simply need to transition their analytical thinking from coding to identifying exceptional businesses.
If you found this article insightful, please consider sharing it!
Jason Huynh - DDIChat
I am a data analyst and regular contributor to DDI's Medium Publication, dedicated to helping you navigate complex ideas with clarity.
Subscribe to DDIntel Here.