A
Es kommt sicherlich auch darauf an, was man programmieren will. Will man lauffähige Programme (Anwendungen, Spiele u.ä.) entwickeln, muß man gar nicht so viel lernen. Denn man benutzt dann fertige Bibliotheken und APIs die einem sinnvollerweise bereit gestellt werden.
Was man sich gleich abschminken kann, ist "Alles was C++ zu bieten hat" lernen zu wollen. Es ist auch keine Schande nicht alles zu kennen. Meistens hat man dann davon gehört, das man das und jenes mit C++ auf spezielle Art umsetzen kann. Aber konkret anwenden und im Detail verstehen, wird man nicht alles.
Je nach dem an was für einer Lösung man mit C++ arbeitet, wird man eine Teilmenge von C++ lernen. Ich habe vor 10 Jahren mit C++ angefangen, und habe immer noch keine Template-Metaprogrammierung eingesetzt. Weil ich selber noch keinen Bedarf hatte, damit ein konkretes Problem zu lösen. Ich habe lediglich einfache Templates eingesetzt. Aber wenn ich mir z.B. Boost Spirit anschaue... oh oh! Aber es reicht, wenn ich Boost Spirit nur nutze, wenn ich es brauche. Ich muß nicht wissen, wie ich Spirit selber designen und umsetzen können muß. Man kann nicht alles wissen!
Deshalb würde ich sagen, wirst du vielleicht wenige Monate brauchen, um erste kleine Anwendungen umzusetzen. Es hängt davon ab, ob du schon mal programmiert hast und Programmierverständnis mitbringst.