5 ms·
Thanks very much for posting this, totally agree. I get frustrated when I hear all these missives about how easy it is for any good developer to learn a new lan
by hn_throwaway_99 3y ago
Thanks very much for posting this, totally agree. I get frustrated when I hear all these missives about how easy it is for any good developer to learn a new language "in a couple days". I think this paragraph was key:
> Learning a language is easy. Modern development requires knowing the toolchain framework, idiosyncrasies, foot guns, best practices, etc.
That said, I still nearly always hire for general skills and not specific technologies, as long as there is at least one expert in the specific tech under consideration on the team (which there nearly always is). And I budget anywhere from 3-6 months for a person to become truly proficient at a new platform technology.
- scarface_74 3y agoAnd you are probably not going to pay me the same as someone who already have the experience you are looking for (and you probably shouldn’t). Because of the stupidity of hiring and raise practices (not your fault as a hiring manager), you can get HR to open a job req at market rates. But it’s a lot harder to get HR to allow you to give your current employees raises to get them at market rate. That investment is then lost because your employee is going to jump ship.
- convolvatron 3y agoits fundamentally wrong to treat your employees learning process as a long term investment that you maintain ownership of. paying someone for two months to come up to speed is an investment. if they become productive in your environment, that investment is very quickly paid off. if they don't, then your at-risk investment didn't pay off. the return is the work that you got from them afterwards. you don't get to claim ownership of what's in their head. if someone gives you two years of good work and moves on because you aren't giving them what _they_ need, or because their father got ill, you still came out way ahead. you should be a human and accept that.
- scarface_74 3y agoThey didn’t though if I hired someone with no experience. They gave me six months of negative work as they took time away from the more experienced developers, did a year and a half of resume driven development (if they are smart) and then moved on. If I hired someone with the experience I was looking for, then they gave me 2 years of productive work. Why would I train someone new instead of just poaching your developer at market rates?
- convolvatron 3y agohaving a mix of experience levels is really healthy for an organization. streamlining onboarding and extracting the secret recipes from the seniors is really valuable there is no better understanding than that gained by teaching its clearly a higher risk investment, but often times that one super workhorse and brilliant jewel is the one that you helped grow but yeah, I've had employees that just sat around learning the latest fad and left. it happens. but if it happens a lot then maybe you should look at your hiring and management if I convince someone to come work for me, its not poaching. its life.
- scarface_74 3y ago> but if it happens a lot then maybe you should look at your hiring and management You as a hiring manager only have power of hiring and management. Your HR department at the behest of their management controls how much of a raise you can give your employees. You can give them the meaningless platitudes of “we are family” for only so long.
- johnnyanmac 3y ago>Why would I train someone new instead of just poaching your developer at market rates? Because you pay more, and still have the risk of less/negative productivity anyway? Who says experienced dev won't do 2 years of resume driven development instead? Who says they won't simply zone out and spend their last 6 months being poached the same way you poached them from the last company? your argument works under the assumption that your experienced hire has no downsides, and there's no risk of upside for the less experienced hire.
- sirsinsalot 3y agoI always read "learn" in this context as "be familiar enough with the basic language properties that I can pick the rest up on the job, get things done, and not be too dangerous, or annoying in code review" and when I read it that way I agree. Some of the best devs I have hired had no prior experience in the stack. I'm not hiring for Python or C#, I am hiring a software engineer and the skills I value are all transferable.
- scarface_74 3y agoWhat about your tech leads who are looking for top of market salary? By top of market, I mean within your hiring pool not senior staff principal engineer level at a hedge fund
- sirsinsalot 3y agoWhat about them? I'm looking for someone who has lead a team, solved that level of problems, has good soft skills and leadership. The language or stack is irrelevant. A good lead knows the right questions to ask, understands they don't have all the answers and plays to their own and the teams strength. Honestly the last thing I care about, especially here, is if they know the stack.
- scarface_74 3y agoAnd the other part of “leading the team” is being able to mentor juniors and help them technically. What good is a lead if they can’t answer technical questions and can’t help other developers with technical guidance? What will it do for team morale on your iOS team when they know you bought in a “lead” who couldn’t actually help them with the tough technical problems?
- sirsinsalot 3y agoThe team has a culture that knows full well someone is brought in for who they are ... what they know might need some catch up. I'm not saying this is right in all circumstances. I wouldn't do this with, for example, realtime embedded. For what I operate in, fairly bland web applications and stacks. It works fine, exceptions excepted.
- spacemadness 3y agoGreat, you learned swift and can do a bunch of leetcode with it. It has nothing to do with actually managing a complicated iOS software project with the zany decisions that have gone into the framework design and tooling. Also good luck with the lazy documentation from Apple and the extremely contrived examples from educators. Can you learn all this in somewhat reasonable time and not code something horrific as a result? Absolutely, lots of people do. In a couple days? Good luck.
- fragmede 3y agoNot to out myself and my level of skill, but it took me several days off and on just to wrap my head around the minutiae to get Apple signing for macOS and iOS to work just right. Learning the rest of the ecosystem came along eventually, but I think the real point is with a couple of days worth of intense study, I, and any other developer worth their salt, can bullshit your interview that requires a specific language, but no one requires a specific language for interviews anymore because everyone knows that!
- scarface_74 3y agoDo your interviewers not ask you to talk through your real world experience?
- fragmede 3y agoHaving sat on both sides of the table, the job of the one giving the interview is to suss out how much the candidate is full of hot air. The one being interviewed wants to put in the precise amount of hot air required to pass the interview and get to the offer stage. Talking through real world experiences, a candidate can prep and be able to pass despite not actually having had those experiences.
- scarface_74 3y agoAt my last job I was officially a senior software engineer. But I was the de facto “cloud architect”. I was looking for someone to off load some of the cloud work too. I could tell someone who was faking it from a mile away. I am objectively very good at behavioral interviews (my next job at AWS ProServe was based passing a 5 round behavioral interview loop). The guy I eventually chose moved on to be an IT manager at the next company my CTO went to. I can tell a paper tiger from someone who just went through ACloudGuru and memory enough to pass an exam.
- meiraleal 3y ago> I get frustrated when I hear all these missives about how easy it is for any good developer to learn a new language "in a couple days". I It is, maybe you aren't a good developer (yet). The more you do it, the easier it gets. It took me a good time to change from PHP to Python, but from there to Java, JavaScript, C#, Clojure and some 10 more, it only got easier. Toolchain frameworks, idiosyncrasies, foot guns, best practices also follow patterns and gets easier to learn.