Для этого сначала нужно как раз-таки погавнокодить.
Можно ли себя называть миддлом, если твой код говно?
Да, можно.
Литература, практический любая. Но обязательная эта:
Чистый код, чистая архитектура, Идеальный программист(Роберт Мартин) и совершенный код(Стив Макконел).