| That they even focus on programming languages for candidates, seems misplaced. When I tell people I am a software engineer, they inevitably ask me what programming language I use. I use the right language for the job. In the past 5 years I've just happened to use C, C++, C#, Python, Perl, shell, AWK, Fortran, m4, and several assembly languages. The language is just a way of expressing something which needs to get done. If necessary, I could learn a new language for a new job. I'd rather hire a candidate who is able to find and use the right programming language for a job, teaching themselves if necessary, than a candidate with competencies in a given language. It's always a matter of cost -- what is the quickest and most productive way, now and in the future, to deliver what the customer needs? The costs factor in the decision of which language to use. The fixation with specific programming languages seems to be misplaced. It also seems slightly insulting to say that if you haven't had prior experience writing code in a specific language, then you are not a good candidate for the job. Some of us can learn new languages quickly. For example, I had over 20 years of C experience before I learned C++ on the job through self-learning. I was not hired as a C++ expert, but for broader experience. C++ just happened to be the best language for the project, so I learned it, all the way to template metaprogramming. Before I left the company, I was the goto person for C++ language questions, which is ego boosting in a way, but is not where I wanted my career to go. I did not want to become a language goto person where everyone sent their C++ template compilation error messages. C++ is just a means to an end. Even if the job requires competency in a specific language because it is the best language for that job, or because there has already been a lot of code invested in that language, a generalist who is able to learn a new language is better than a specialist in one language. The only time I'd want a specialist in a particular language would be if they were working on a compiler or interpreter for that language, where expert knowledge of the language, and not merely programming competence in the language, is required. The question should be: Are you hiring a translator competent in a specific language, or are you hiring a problem-solver who can write in a variety of languages and who can learn new ones appropriate for the problem at hand? Most programming jobs are the latter. |