4 ms·
From an experience standpoint, isn't the fact that you'd have to teach people a new language coming in the door detrimental to the use of that language? Compar
by markbao 13y ago
From an experience standpoint, isn't the fact that you'd have to teach people a new language coming in the door detrimental to the use of that language?
Comparing a company that takes in people that have been coding Ruby/Python/Java/whatever for 5+ years, versus one that takes in people that don't have Scala experience but teaches them on the job, wouldn't the former move faster and generally have more experience, making it better to hire from a large pool of experienced people (in a popular language) than a small pool (in a more niche language)?
This, of course, assumes (rightfully, I think) that the "carryover" effects of programming experience aren't substantial enough to claim that 1 month of Scala experience is better than 3 years of Ruby experience, and nor is the "advantage" that Scala gives over these more popular languages (real or imagined).
I love Coursera and all, but I'm curious what people think about this.
- tieTYT 13y agoI think you're right in the short term, but long term you may be more productive with Scala. -Devil's Advocate.
- markbao 13y agoI agree and disagree. The inherent qualities of a more recent language (especially one like Scala which seems to be built upon a good foundation) may make a team more productive in the long term despite the initial cost. However, what also counts in the long term is the structure of the codebase, and I'd argue that people with more experience in a language are better suited to build more long-term-viable codebases with less technical debt just because they know the language better. But perhaps that's simplistic.
- NickPollard 13y agoTeaching someone a programming language (e.g. Scala) is not equivalent to teaching someone to program. If you take someone who has 5 years Ruby/Python/Java experience, and then spend a month teaching them Scala, they don't miraculously forget everything they know about functions, algorithms, data structures, encapsulation, interfaces, problem-solving, maths, etc. I started my current job (at a Financial Institution where I write 99% Scala) with no Scala knowledge, but good programming fundamentals and experience with functional programming. A month later, I was a competent Scala programmer. This isn't unique to Scala - if you have a language you like, which you think offers advantages over the competition, then it is worth training people to use it and then using it.
- markbao 13y agoThat makes sense. This is the kind of "carryover" effect that I talk about in the parent comment, so maybe I'm wrong in that there isn't a lot of carryover where in actuality there is. I just doubt that learning a new language automatically gets you up to anywhere near 50% competency as someone who has been using it for 5+ years (would you agree with that?), and the ability to hire people who can apply that full level of competency (i.e. how big the hiring pool is) is important in deciding what language to use.
- Garbage 13y agoI partially agree to you. I have been using Scala as primary programming language for more than a year. I have been using Java for almost 5 years before that. Yes, the learning curve for Scala is a bit high, but once I "got it", I felt much more productive to cover for the time I lost learning new language.
- ChikkaChiChi 13y agoThink about it like this: If you switched to a Dvorak keyboard and suddenly were typing 90% faster, jumping over to a co-worker's machine with a QWERTY keyboard doesn't suddenly render you ineffective. It might take a moment to switch gears, but it's all there.