That's the problem right there. There is a glaring fundamental difference between learning languages and learning programming. (..... snip .....)
A good coder can pick up any language within a few weeks because they know how to code. Someone who was taught Java is rarely going to be capable of doing anything other than Java without starting over.
ChadTower++
Couldn't have said that better myself.
Running gag here is that I've used (and forgotten) more programming languages than I've got fingers and toes. While I've been using Perl for much of my work over the last 15yrs, I've learned and used over 30+ different languages on projects over the years.
Back in the 70s when I started to code nobody taught Comp Si, but when I finally got to college (mid 90s) I was pleased to see that each class introduced us to a new language, that specialized in whatever the topic was we were learning; Modula for style, Assembly for pointers, C++ for object orientation, etc. I'd already used several variations of Basic, written Assembly for four different processors, and was using C/C++ and Rexx regularly, so "learning a new language" wasn't that alien a concept for me (unlike some of the class, who thought we should just use one language and stick with it for the 3yrs we were there)
Compare that to when my younger brother went to University (post-millenium), and he was taught "Microsoft Visual Studio". Didn't teach the language, taught the tool. And while he excelled in class, the minute you put him outside of that tool he was useless. Completely useless. As in... couldn't even code in the same damned language, but with a different compiler suite.
Personally, I think that Comp Sci courses should go back to teaching programming on Unix/Linux boxes, with a whole suite of compiler tools and languages at their disposal. Let those students see that there's choice out there, and that any given tool is not
always the right tool for the job. Each language has their own specialties and things that they're awesome at, and a
good programmer will know that and will build their larger projects using multiple languages/tools.