Чтение (Роберт Мартин aka Uncle Bob, Майкл Физерс, Стив Макконнелл, Банда Четырех и так далее), изучение чужого кода и практика. Только так. Можете начать с изучения аббревиатуры SOLID (всё тот же Мартин, книга называется "Быстрая разработка программ. Принципы, примеры, практика") и выбирать литературу дальше, основываясь на сносках в Мартине.
Хотя, если вы на совсем начальном уровне (что подразумевает ваш вопрос), то вам бы в хороший офис года на полтора-два - там привьют начальные представления о хорошем и плохом, заложат фундамент правильных привычек, а дальше можно уже и за литературу браться, как усвоите основы и набьёте свои шишки.