Сейчас использую Code::Blocks. Насколько правилен выбор компилятора/IDE ?
Если очень хочется изучить настройки среды и разницу между различными сборками mingw, то это отличный выбор: MinGW придётся заменять. На 64-битный, с поддержкой последнего стандарта и главное с поддержкой стандартных тредов. Можно использовать Visual Studio: она бесплатна, нативна для Windows и адекватно работает с потоками в отличие от кривоватого порта winpthreads. Можно взять и другие IDE и поключить их к сборке clang'а. При этом держать визуалку всё равно придётся, так как clang под виндой использует её стандартную библиотеку.
Что посоветуете дальше?
Если чувствуете, что с литературой для новичков покончено, начните что-либо делать. После постановки задачи, ищите углублённую литературу по теме задачи.
Порекомендуйте, как оптимальнее сочетать теорию/практику?
Любая теория должна сопровождаться практикой. Узнали что-то новое? Используйте это где-нибудь, хоть в тестовой программе созданной специально для этого. Пробуйте пока полностью не поймёте как это работает. + Должна быть дополнительная практика где вы будете систематизировать полученные знания и использовать их вместе.