Ways to Get Better at C++
Can anyone recommend a good compiler/IDE learning setup?I studied C and C++ back in university (I was in the wave of students that came through after they switched from Pascal as the teaching language, and before they switched to Java).  And my first job or two back in the early-2000's was using C++ in HP-UX servers, to talk to other systems via CORBA.But that was ages ago, and once I stumbled into a Java job I never left.  Every so often decide to scrape off the rust and check out C++ again, but the ENVIRONMENT setup scares me off.Should you use GCC or LLVM?  If you're on a Windows box, do you try one of those?  (there's at least three different distributions of MINGW available)  Or do you use Microsoft's compiler?  (VS has potential licensing issues, while the freeware build tools are pretty arcane and it's hard to even find an installer or know which exact thing to install)  Or Cygwin?  (I'm not 100% sure on the current state of its licensing)I've tried to build the wxWidgets library at least 100 times.  It gives you dozens of options for compiler and environmental setup, and yet I've never found a choice that successfully built all the sample apps.Once you have a compiler setup, what about an IDE?  (Don't even start with the "just use Vim or Emacs" crap, I'm not an animal!)  I love IntelliJ in the Java world, but don't want to pay for JetBrains CLion just for hobby/personal use.  The last time I tried Eclipse's C++ support it felt pretty half-baked.  Qt Creator is actually really nice IDE (a C++ IDE should be written in C++!), but it feels very specific to writing Qt apps.What about build tools?  It's hard enough for Java newbies to wrap their heads around Maven or Gradle.  But makefiles and "configure" scripts are far more arcane, and which flavor of make should you be using in 2017?  It's hard enough to build a project that uses one of these large frameworks with opinionated build systems.  I wouldn't even know where to begin in combining two opinionated build systems as dependencies of a single project, or creating a new build system from scratch for a greenfield large project.Once you have a compiler, IDE, and build system and are ready to start coding, what about a standard library?  Is Boost still the thing everyone uses?  STL?  Something else?I really can't imagine that learning C++ syntax is THAT challenging in comparison to Java/C#, Rust, D, or anything else.  But I'd love to see an "Effective C++ Environment" book.