В общем случае достаточно знать, что есть в stl и примерно знать, что есть в boost. Это нужно для того, чтобы быстро сориентироваться где найти решение и не велосипедить.
Было бы неплохо почитать книги Майерса, Саттера и Александреску. Это поможет понять некоторые узкие места языка. Ну и писать собственно :) Опыт бесценен.
По поводу Qt: стоит почитать где-нибудь туториал по нему, чтобы понять что-к-чему(слоты\сигналы, метасистема и т.д) и потом уже кодить, опять же. Qt довольна простая библиотека(в плане освоения) с отличным потенциалом. Советую, также, сразу смотреть в QtQuick как перспективное GUI в Qt