Годы
Месяцы
Чтобы писать "грамотный код" нужно много опыта. Для фриланса, часто, грамотность кода не имеет значения, если он работает. Заказчик не книгу заказывает, а функционал. Это важно для работы над большими проектами, где нужно будет понимать, что это за каракули, которые ты написал вчера, месяц назад, год. Причем не только тебе. Ну и там где важна производительность.
Итого, для того чтобы взять заказ, нужно понимать базовые вещи, чтобы загуглить решение, понять его и внедрить. Научится решать простые задачи можно за дни или недели. Например слайдер или табы. Но, чем больше умеешь, тем шире твой рынок заказов. Сложность, скорее, в том чтобы найти подходящий заказ. Но многие так и учатся - берешь заказ, ищешь решение, выполняешь и вот ты уже умеешь на единицу больше. Удачи)
На мой взгляд самые понятные и структурированные уроки по с++ для старта