# 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.