Нужны хорошие наставники, ну или хотя бы группа профессионалов-коллег, которые постоянно подсказывают и указывают на ошибки. Вместе работать над рядом проектов. Также для познания читать чужие коды с гитхаба и блогов различных программистов, читать форумы (хотя бы стековерфлоу и т.п., англоязычные лучше). Изучать стандарты программирования, стили программирования, стараться правильно писать комментарии, вести правильно ветку проекта.
Ну и много опыта и практики, плюс работа над ошибками - будет результат. Ведь можно сказать, что кто не совершает ошибок - тот либо суперкрут (это пока что не к вам), либо ничего не делает.
Так что учиться, стараться, ошибаться, понимать где ошибаешься, учиться еще раз, практиковаться и постоянно самосовершенствоваться. Очень плюсом будет участие в различных хакатонах, конференциях, дискуссиях, мероприятиях кодо-хаккеров и людей из ит-индустрии