A Programmer's Dictionary of Obfuscation
Description
A screenshot of a tweet from user Pranay Pathole (@PPathole) presented in a dark mode UI. The tweet provides three humorous, cynical definitions that distinguish between common programming terms based on the programmer's ability to explain their work. The definitions are: 'Algorithm - when programmers don't want to explain what they did.' 'Heuristic - when programmers can't explain what they did.' and 'Machine Learning - when programmers don't know what they did.' The joke cleverly escalates the level of abstraction and obscurity, starting from a complex but explainable process (algorithm), moving to a solution that works but lacks a clear theoretical basis (heuristic), and culminating in the 'black box' nature of machine learning, where the model's internal decision-making process can be opaque even to its creators. This resonates deeply with experienced engineers who understand the practical differences and the challenge of explaining increasingly complex systems
Comments
7Comment deleted
It's not that we don't know what the ML model did. It's just that its reasoning is written in a dialect of linear algebra that only works on Tuesdays, and the documentation is just a picture of a shrug emoji
Architectural taxonomies: • If-else that compiles = algorithm. • If-else that frightens `git blame` = heuristic. • If-else serialized as a 400 MB TensorFlow checkpoint = “our breakthrough ML model.”
The real progression is: Algorithm - documented in JIRA, Heuristic - documented in Slack, Machine Learning - documented in a Medium article nobody will maintain after the author leaves for FAANG
This perfectly captures the evolution of technical debt: from 'I could explain this but won't' to 'I genuinely have no idea why adding dropout and batch normalization made the loss converge.' At least with algorithms, you can blame poor documentation; with ML, you're just hoping the validation set doesn't expose that your model learned to recognize the JPEG compression artifacts instead of actual features
Stakeholders demand audits? Algo: here's the proof. Heuristic: good enough. ML: emergent behavior, bro - deploy and pray
Algorithms ship with invariants, heuristics ship with TODOs, and ML ships with an on-call rotation
If you can add asserts, it’s an algorithm; if you can add knobs, it’s a heuristic; if you can only add more data, it’s ML