Я пишу код много лет, но только в этом году вполне освоил, что такое писать код ⁘для себя⁘. Это когда:
• Нет границы между кодом и UI. Код не обязан вызываться командой или кнопкой, можно прямо на ходу вписать его в REPL или main.
• Нет границы между кодом и конфигом. Весь код и есть конфиг.
• Не нужно проверять предположения и обрабатывать ошибки. Пусть падает — поправлю на ходу.
• UI не обязан быть понятен кому-либо ещё. Это особенно заметно в GUI. Можно вляпать один-единственный GtkTreeView на всё окно и положить болт на весь остальной тулкит и его мнение о том, как всё должно выглядеть.
• Не нужно читать доки и гуглить ⁘правильные⁘ решения. Можно спросить у нейронки, а можно просто написать те 10 строк, что первыми приходят в голову.
• Не нужно писать доки и комментарии. «Через год сам не вспомнишь, что имел в виду» — хз, у меня такого не бывает.

В совокупности это всё значит не просто «сделать тяп-ляп», а некий иной вид деятельности, иное ощущение от программирования.