So I've been researching the best code training programs and I'm thinking launchschool.com might be a good fit for me. They use a Mastery Based Learning approach instead of the traditional college "factory-based" or "time-based" model where students are held to a deadline to learn concepts whether or not they understand it. This tempts students to take shortcuts, "cram" for exams, or even cheat, but that really doesn't work. It doesn't solidify the concepts in your mind. Once you've passed the class, you forget about it. Many current training programs set performance oriented goals such as, "I have to finish the training in 6 months so I can get a job". The training programs are responding to students demands. Launchschool.com basically removes the time based measurements from the equation. You move on the a new topic only after mastery of the current topic is completed.
I have to admit from what I've seen so far, it is compelling. After being on the higher education treadmill for several years now, I like this approach. They make sure you've mastered the fundamentals, what they call "first principles", before allowing you to move on.
Focus on the things that don't change
There are basic programming fundamentals they really never change, even with that hot, trendy, shiny new library or framework that everyone is talking about. So, if you learn the fundamentals, and keep reviewing and using them. No matter what shiny new thing comes out, or what buzzwords employers put in job descriptions, you will be able to pick up the syntax of the language quickly, because most languages are relatively the same, at the core.
Understand the problem first, not the solution
I have encountered all these things in my career