5 ms·
It really depends doesn't it? Would it be a good idea to hire someone with 20 years experience in Python+Go+JavaScript+Perl+PHP for a C++ role? (note: my assump
by gfxgirl 5y ago
It really depends doesn't it? Would it be a good idea to hire someone with 20 years experience in Python+Go+JavaScript+Perl+PHP for a C++ role? (note: my assumption is the first 4 languages rarely deal with direct memory issues were as the C++ role probably does. Ownership, allocation, deallocation, binary structure packing, more complex/low-level cross process issues, etc...
Not to suggest this all can't be learned.
Is GPU work unique or is it generic programming such that I should be ok to hire a programmer with zero GPU experience for a GPU role?
Similarly, sometimes you're hoping for someone that can be productive immediately, not after 2-6 months of getting used to something new. For example, I trust that a Java programmer could write C# or Swift or Python, but I'd expect the Java programmer to know the Java standard library and common solutions fairly well but not know the C#, Swift, or Python standard library. I get it might short sited not to hire them for long term growth but right this second I might want someone who can hit the ground running?
- hippich 5y agoI am one of these python+go+javascript+perl+php folks (minus go and python)... Yet somehow I know about memory access and associated gotchas. I am even able to heavily modify, debug obscure C codebase. Even made my own LLVM pass that does quite a tricky modification of the LLVM bytecode prior to final compilation and linking. I learned about LLVM bytecode existence about 3 months ago. I started tinkering with this C project about 8 months ago... Yes, there are differences, but they are not fundamental. And with google, it really takes little time to learn things on the go. And with a team sharing necessary experience it will take no time at all. EDIT: "I might want someone who can hit the ground running" - this is luxury, so one wanting it gotta pay up... And such short projects where such quick ramp up is important perhaps will be a better suited for contracting out the work anyway.
- JAlexoid 5y agoKnow of and being proficient are two different things.
- morelisp 5y agoUnless you are a startup that needs someone cranking out features within two weeks, the time it takes a senior[0] developer to get familiar with the company's actual work vastly outstrips the time it takes to get familiar with their commodity tech stack. (And if you are such a startup, you want mostly senior generalists anyway.) [0] Well, this is also probably begging the question. For me that's part of the definition of senior. Based on resumes I see lately it's far from everyone's.
- JAlexoid 5y agoThat's not universal. The lat thing I need about any of my colleagues is to learning all gotchas, at the same time as integrating into our team. Some tech I'll argue against, other tech I will require. Some tech is fundamental to a domain. Some tech is a nice to have. Some tech is just generic. My current team will not hire anyone for a senior role, without Spark experience. No matter how good you are in C++...
- morelisp 5y ago> My current team will not hire anyone for a senior role, without Spark experience. An example close to my heart. The company I'm currently at had a totally ossified Spark monolith and data eng team because they only wanted Spark developers. Drop one C++ developer in there to start spreading the good news about data-oriented design and suddenly there are a dozen previously-intractable "big data" problems we can rip out of the ball of mud and run outside of the cluster. Drop in another SRE who doesn't know shit about Java but can actually write shell scripts, and hey alerts from bad orchestration from weekly to twice yearly. Yeah if you have a Spark job, you probably need a Spark dev. But if you have a team of Spark devs, suddenly everything that involves more than 1MB of input data looks like a Spark problem and you're in for a real bad time in a couple years. C++ programmers know map/reduce/filter too.
- JAlexoid 5y agoWell... Funny enough. The person that our team of Spark engineers is cleaning up after was - a C++ dev. For some reason we, Spark engineers, had to rewrite his all Spark application into different components with relevant tech. Thanks for generalizing Spark engineers to an insulting level, though.
- mixmastamyk 5y agoYou can find exceptions but it’s generally true. For example the high level data structures in Python and Java are both in the collections package. I haven’t done C or asm since college but haven’t forgotten the concepts. Probably know more now than then.
- WalterBright 5y agoI find now and then that less experienced programmers can be adroit with programming techniques, but will use those techniques inappropriately. Sometimes, the right tool for the job is just a hammer :-)
- tialaramex 5y agoI was hired into my current role where a lot of code is in C# never having written any C# in my life. That was about six weeks ago. The interviewers correctly assumed that since I have written numerous other semi-colon languages for 20+ years and know what I'm doing it won't be a problem. I use some modern C# idioms (because to me no idiom is more or less "modern" as I learned them all in the last six weeks) more than my colleagues do, and I think I'm perhaps squinting at the async feature wrong, but it's basically fine at this point. I would not have taken a C++ role. But that's because I don't like C++. Could I learn C++? Presumably, I assume it'd take quite a bit longer than C# but I don't want to. A lot of programming skill that's transferable from one role to another is also transferable from one general purpose language to another. Almost everything about programming generally is transferable. All the practical implications of architecture is transferable. All the theory is transferable. Data structures are transferable (albeit if you've got very narrow experience you may not be aware of just what's possible). A lot of high level APIs are transferable. On the other hand corporate knowledge isn't. So, the fresh graduate hire who is an expert in your preferred language does not know that around here nobody above an Engineer Lead reads their Teams chat, and nobody above Group Manager reads email. They don't know that tweaking the CSS requires a Design Team Lead authorisation because once somebody made the text the wrong colour and branding were furious - and they equally don't know that "Normal Minor" changes take six months to approve around here so they should mark small changes "Urgent Minor" instead and then pester a Senior Engineer to OK them, but never pester a Senior Engineer if it needs a Config change because that is an ops problem and... you are going to need to hire internally if you actually need them to "hit the ground running".
- hiptobecubic 5y agoBy "running" I guess you mean "crawling desperately thorough sludge."
- Breza 5y agoI've never heard the phrase "semi-colon languages" before and I might have to steal it.
- codegeek 5y agoYes but then it is not comparable. Using GP's analogy, I would say Walking = Web Development (whether you do in PHP or Go, http is http etc). However, if you are talking about C++, let's call it "Para sailing" and not walking. Since you are not just writing a bunch of http API for the most part (I am simplifying a bit but you get the point).
- c0decracker 5y agoGreat point IMHO. I think the ability to learn these somewhat different languages depend on the experience. Like roots of different trees -- once you groked Asm/C, C++, Python and such, Lisp and such enough, you can get productive in most general purpose languages quickly enough that language learning time will be negligible compared to platform/ecosystem/domain time at least for any reasonably complex domain. I think more pragmatic question in such situations however, is why the potential employer is requiring $A years of experience in $TECHNOLOGY. For example, why they need someone to be productive from the say day $N and what does it actually mean (for them) to be productive?.. IMHO getting to shared understanding of what drives such requirements can help find a better path forward for both sides.
- MR4D 5y agoLet’s say you have a requirement for 5 years in a particular language. Would you rather hire a developer with 20 years experience but only 3 in the language you want, or would you rather hire the guy who has 6 years experience in the language you want and that’s it? Personally, I’d hire the former every single time, even though he didn’t have the requisite 5 years in the language.
- vmception 5y agoMy experience is that people expect an uncanny ability from the former, as opposed to just having never retired or changed a job by then. Pretty much better to reduce the years on the resume.
- q-big 5y ago> Would it be a good idea to hire someone with 20 years experience in Python+Go+JavaScript+Perl+PHP for a C++ role? I my experience, when working in a programming job, your programming skills rather degrade quite fast if you are not actively working in your free time to work hard against this degradation. I rather get better in programming almost exclusively by the side projects that I do in my free time. So, I would rather say that x years of job experience show nothing; what is important is what you do in your free time (if such side projects are possible).
- hiptobecubic 5y agoThis depends hugely on your job. If you spend all day writing variations on the same crud app handlers then yeah, you probably aren't learning anything new after two years. If you spend twenty years in that job, you probably aren't the kind of person that wants to learn new things anyway.
- 908B64B197 5y agoProgrammer? No. Engineer? Yes. Someone with a solid track record and a good foundation and background should be able to pivot relatively quickly.
- djmips 5y agoFor sure GPU aka rendering programmer requires experience. It's quite a hill to climb.
- UncleOxidant 5y ago> Similarly, sometimes you're hoping for someone that can be productive immediately, not after 2-6 months of getting used to something new. I've often seen organizations spend 6 months or more to find the perfect Foo developer when they could have hired someone right away who had Foo-adjacent skills and was very willing to learn Foo.
- hiptobecubic 5y agoSunk costs, I guess? I feel like the idea that your codebase and business is so simple that all anyone needs to know to "hit the ground running" is how to use your build system and which ng-whatever keyword produces the right UI element should be deeply worrisome.
- webmaven 5y ago> Is GPU work unique or is it generic programming such that I should be ok to hire a programmer with zero GPU experience for a GPU role? Is that the right analogy, or is it more like requiring CUDA experience vs knowing OpenCL (or Vulcan/Metal/etc.)?