4 ms·
"The person with the second CV could be a better developer on a C# project than your language expert, despite having little or no C# experience." No. What you'
by joesmo 13y ago
"The person with the second CV could be a better developer on a C# project than your language expert, despite having little or no C# experience."
No. What you're essentially stating is more experience is detrimental. That someone with a few months experience who is writing her first application in a particular language / stack will perform better than a veteran. Knowing the basics is important, but having experience not only with the language but with the libraries, apis, build tools, frameworks etc. is what separates a good programmer from a decent one. Both programmers in this case have the basics but the experienced person has a lot more than the basics. I'm not against hiring a polyglot, even one with no experience in the language/stack that will be used. Hiring a polyglot does not make up for experience and knowledge, however.
- jasonwocky 13y ago"What you're essentially stating is more experience is detrimental." It's not so simple. Not all experience is equal. Some folks have 10 years of experience developing software. Others have one year of experience, repeated 10 times.
- collyw 13y agoYes, if people have at least learned a second language you can tell they are one step up from the 1 year repeated ten times.
- edwinnathaniel 13y agoThey are exactly at the same level of proficiency. Writing a loop in a different dialect does not make you one step better. You're still walking albeit with different rythm. In the end, they are essentially performing the 11th time.
- collyw 13y agoI went from Java to Perl (back when Java was all the rage). That really opened my eyes. Perl is dynamic, and you can program functional / imperative. You could do so much more with it in way less lines. You learn to use hashes / maps / dictionaries (instead of arrays being the obvious way to do things) because hashes are encouraged by the language. Also, while Perl's standard OOP, is a bit of a hack on top of the language, it helped me really understand what was going on, unlike Java, where a lot of these things are like a black box. Maybe I should have emphasized learning a second language with a different / multiple paradigms. (Saying that when I later moved to a job using Visual Basic 6, I didn't feel like I learned much).
- edwinnathaniel 13y agoMy experience was the other way around Java => Perl, not liking it. I suppose people have different taste buds. While there are (small) values that one can get out of Java => Perl, being dynamic and functional, your experience seems seasonal (hashes, maps, etc). I felt that these days if one wants to learn algorithms and data structure, Java Collection libraries and Guava seem to be the defining standard. I don't disagree if one is learning Erlang to write scalable message queue coming from Rails. But I definitely disagree if one is learning another programming language and ended up coding the basic web-app, which seems to be the case these days.
- angersock 13y agoThe problem here is that that 5 years of C# is quite possibly spent working on the same codebase...that person with 3 languages either solved significantly different problems, or worked on different codebases. While yes, the 5 year C# coder is probably a veteran of the language, they probably don't have the breadth of experience of styles you get. I'll take a bloke with a year of C, a year of Javascript, and a year of Ruby/Lisp/Smalltalk over a veteran of a single language for three years. You learn to think differently about problems.
- yaur 13y agoThe thing is the guy that is new to the language is not going to be writing idiomatic code. In C# this means you are going to see unnecessary ISerializable implementations, problems with Data Binding/MVVM, fighting with the GC, and not knowing what you get out of the BCL. Depending on their personality and who else is on the project this may not be a problem, but without some mentoring you can end up with an unmaintainable mess very quickly.
- tokipin 13y agoI'm not so sure about this. I think you'd be surprised by how rapidly some people can grok things, including things you might believe are only visible through extensive experience. What it takes is the ability to follow structural ramifications to depth, therefore being able to anticipate aspects of the system that others usually learn through experience.
- nemothekid 13y agoI don't think you are giving the language enough credit, especially one as well designed as C#. I'm not a Windows programmer so I hardly get to use it, but I once tried writing a Windows Phone Application and I was surprised at fun it was to use C#. The plethora of resources available also made it simple to write (what I thought) was idiomatic code - not much unlike Go. Now, this experience has left a wonderful taste in my mouth with regards to C#, and I wish I had more opportunities to use it. And honestly, how long do you have to be immersed in a codeabse to being writing idiomatic code. A month of hands-on C# is enough for someone to write idiomatic code, and I wouldn't expect someone to be fully integrated into a team in under a month, so it kind of evens out.