# Just Know Stuff (how to achieve success in an ML PhD) — Patrick Kidger

Source: https://kidger.site/thoughts/just-know-stuff/ (2023-01-26). Cached excerpt from the "Software development" section, verbatim.

---

> Academic software is almost always a poorly-maintained kludge of leaky abstractions, awful formatting, and bugs that don't cripple things only because some other bug stops them from doing so.

> This is a systemic professional failing. As an (applied) ML researcher, the overwhelming majority of your time will be spent in front of a screen, staring at code. And yet most of you (yes, you) would not pass muster as a junior developer.

> So, how to improve? First of all, never accept the kludge.

> You've messed up your Git repo? Figure out the commands to fix it... don't just delete it and clone from the remote.

> Focus on writing clean code, based around orthogonal abstractions. When the code starts getting messy - and it will - be willing to refactor your code into something more legible. Avoid both spaghetti code and ravioli code.

> When the documentation is inadequate, look at their source code.
