A good programmer should be able to adapt pretty quickly to a new language, and most other things are just a matter of getting used to an API of some sort or another. I started in C but when i needed to I dropped in to Assembly, VB, C++ and java and Groovy to solve specific problems or work on new tasks or at different jobs.
The libraries, frameworks and editors you use tend to take less time to get used to--I mean really everything is just an API, once you get it and it's usage you are golden.
These days I often get hung up on the configuration of various frameworks... for me that's been one of the larger problems. It's not that any one is terribly hard, it's that there are so many.
Here are some I've had to deal with in just the past two years--
- Where does Tomcat put this file or that and how does it unpack them?
- how do you build source in eclipse that doesn't interfere in your ant build
- debugging on eclipse & tomcat
- Writing ant config files (can be quite complicated!)
- Maven (Gak!!)
- Apache server clusters
- IPV6 trying to bind to stuff on newer systems (and slowing things down)
- Running 5 apache servers on the same dev box and dealing with the resulting memory issues (A box with 2 JVMs can get to 95% of memory used before it goes bonkers, but when you get up to 5 JVMs it starts getting really funky at like 60-75% memory used level)
Heck even simply setting up a developer box has become a WEEK long process (seriously!)--It used to be simply "Install Eclipse and the JVm"
If you are in a situation where you don't have analysists coming up with requirements, the domain can even be a bigger issue and can take years to get used to.
I guess I'm just saying don't worry much abouth the language or various APIs you use, they won't be your biggest problem.
Heck I've even been hired by people who really didn't care what language I used previously as long as I had the right skills, for me the best way to learn a new language is on the fly, using it.