Есть секрет ) . У тебя должен быть план, когда садишься писать код. И не просто план сделать программу, а конкретно, что сегодня реализовать, что до обеда, что после. Надо думать о программе в нерабочее время, и когда ты начнёшь писать, тебе уже ничто не помешает и не отвлечёт, ты просто пишешь что запланировал. Если не знаешь как что-то написать, то узнать как это тоже часть плана, ну и т.д. К этому серьёзно не относятся, но план очень организует и дисциплинирует, необходимо очень серьёзно к этому относится.