I'm in charge of hiring for a small java shop. We have a very limited hiring budget so we tend to pickup fresh grads cheap and spend time training them. I have found colleges and universities do quite an inadequate job these days and usually a lot of training is required. I train in 2 steps:
a) Get them comfortable with Java conventions.
b) Teach them programming concepts (again).
Training ranges from 1 week to 1 month depending on the number of people we hire.
My problem is that training them on Java I feel I rob them of the ability to understand what they are doing. Colleges train them for C# so they never really understand what the code translates to for the JVM or how the computer interprets this. I of course keep realizing this when I see blatantly inefficient code being laid down.
My question is, if an employee will stick with the company for 3 years, is it better to train the employee for the job so they can start coding in Java or is it better to get them comfortable with Java and pick-up languages like Python, C/C++, Prolog, LISP to teach them what they are really doing? (Keep in mind there will be a learning curve again if I change languages). So over 3 years, what do you feel will pay-off more? The suits clearly say train for the job since iteration is high.
UPDATE Bottom line is that they will be working on a product that is effectively a development environment in Java. Basically a BPMN based product that lets you specify the flow of an application graphically and use stock features to add functionality and lay-down custom java code as needed.