20 ms·
When I hire juniors, I try to give them problems that I know they likely won't be able to solve in the interview because I want to see how they think about thin
by Cornbilly 1y ago
When I hire juniors, I try to give them problems that I know they likely won't be able to solve in the interview because I want to see how they think about things. The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI. I've also seen less and less passion for the career as the years go by (ie. less computer nerds).
Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board. For us, it usually takes about year to get them to the point that they can contribute without some form of handholding. However, that also mostly holds true for seniors coming to us from other industries.
- dottjt 1y agoI feel like it's at two ends of the extreme. Either the junior is literally better than everyone else on the team, or they know nothing.
- MountDoom 1y ago> The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI. I've also seen less and less passion for the career as the years go by (ie. less computer nerds). Why is this a problem, though? Imagine hiring doctors or architects with that expectation. "The problem is that no one is truly passionate about dissecting cadavers anymore". I think our industry got hooked on being able to hire self-taught geniuses in the early days of tech. But the profession has gotten a lot more commoditized, and we just can't continue like that. Gotta hire "normal" people and teach them what they need to know. And yeah, "normal" means people who decided to learn programming because it pays well, not because they want to design compilers in their spare time.
- imgyuri 1y agobecause there are multiple abstractions in software that one is bound to come across once the software becomes complicated enough, and from that point on "passion" and "fundamentals" determine how effective they are at navigating that path
- Alfreddonalds6 1y ago[dead]
- deleted 1y ago[deleted]
- csomar 1y agoWhat people (managers?) don’t realize (or don’t want to realize) is that building software is much more complex than most other professions. Some software is easy and has been done n+1th time (like a simple crud app with a db connection). But some software is really hard and could fall more in the R&D category. Which brings me to the following point: Earlier in my career, I was a medical student. All superiors were doctors, and though there were managers, no manager intervened in an operation. Also doctors selected their hardware and methods. No manager will ever come to a doctor and suggest that they do their work differently. Now when it comes to software, everyone wants to chime in.
- whatever1 1y agoIf the medical doctor screws up they go to jail. When was the last time a software engineer went to jail because of malpractice? Software talk is free. So everyone can chime in. Your experience holds no weight. Heck an LLM can do it too.
- deleted 1y ago[deleted]
- whakim 1y agoNo offense, but this software engineering elitism does no favors to perceptions of the field. In reality, most other fields are complex and the phenomenon of believing something is simple because you don't understand it is widespread across fields. Dan Luu expounded on this at much greater length/with greater eloquence: https://danluu.com/cocktail-ideas/ https://danluu.com/cocktail-ideas/
- tayo42 1y agoThe doctors i know are definitely passionate about it. There is continuous learning, conferences, picking your specialty, and its such a time commitment the profession is part of your identity.
- Cornbilly 1y agoI completely understand people that are just doing it for the paycheck and that's totally fine. However, I do feel that our team needs both types of people to be effective. People that have passion will try new things and explore possibilities more frequently. The "just a paycheck" folks tend to be a good moderating force to the "passion" people. They will generally bring focus and keep the end goal in perspective. My goal is to avoid having too many of either. Too many "passion" people and you end up slowing progress because they're getting bogged down with everything they want to do. Too many "paycheck" people and the team/system starts to calcify (and usually accrues a ton of tech debt).
- komali2 1y agoI noticed I had an immediate bias against candidates that showed up to interviews using Windows (except for one person who was in WSL and seemed very comfortable in bash), or, not having their SSH key set up for cloning the github repo we used for our interview, or fumbling back and forth with their mouse between vscode and the browser, not using all their screen real estate, or not knowing even the most basic of keyboard shortcuts (I nearly cut an interview short once when I saw someone right click copy right click paste in vscode but I wanted to give them a fair shake so gritted my teeth and went through with the rest of the interview. They did poorly.). I never used it as a for/against factor but for me lack of interest in computers, and a lack of familiarity with the tools of our trade, is a red flag. On the flip side, immediate green flags for me were: using linux, using keyboard shortcuts to manipulate windows / within the IDE, using an IDE other than vscode (vim/nvim or emacs are huge green flags), having custom scripts, having custom themes, or, the biggest one, self-hosting some applications. And Lo, these candidates also seem to perform the best in my experience.
- rwoerz 1y ago> right click copy right click paste Remembers me of a fellow student who refused to maximize his editor window. It turned out that he moved the text cursor to the next line with the right indentation by using just a lot of spaces.
- gyulai 1y agoThat seems pretty opinionated, and by building a monoculture, persons with high openness to experience likely won't be drawn to your workplace, and you're also leaving on the table the potential that comes from diversity (a loaded term these days, but substantively still a valid point). Depending on the kind of work you do and your customers, this may not matter to you, but in a lot of industries, you need the diversity to be able to properly represent and empathise with your customer base, who might be from a very different social cohort than your developers. And Linux desktops, which your customers almost certainly won't be using, may also make that difficult. People who spend a ton of time ricing their Linux desktops may be bad at setting priorities. If you expect them to continue their ricing, but not do it "on the clock", you're implicitly age-discriminating and discriminating against people with families and/or hobbies and/or "a life". Also keep in mind that your company is likely only one of a dozen or so workplaces that these people apply to in a given month, sometimes for many months before they land a job, and they probably haven't set up their computer specifically to impress you, but rather to fit the lowest common denominator among the requirements they face from all their application processes and educational activities, and some of that will require Windows.
- rich_sasha 1y agoInteresting - I see the appeal of this approach. Equally, I do the opposite - I give easy problems which can be solved quickly. I find people either can do them pretty quickly, or not at all. I used to ask harder problems, like you, but found two failure modes: either smart people who panic and can't think straight in an interview, or people who can do high level thinking but then can't swap two variables in actual code. That said, thinking back on my recent hires, I'm not sure this method has yielded any improvements.
- Aurornis 1y ago> That said, thinking back on my recent hires, I'm not sure this method has yielded any improvements. I've been involved in hiring panels across several companies with very different interview strategies. Before going into this I leaned heavily toward your style: Easy questions that act as a simple filter for people who can't program. Looking back, I have to admit the simple question approach wasn't as good as I thought it would be. The companies who gave more difficult questions and pushed candidates toward harder and harder interview problems with the expectation that they would hit a wall at some point really did sort candidates better. I know there's a widespread belief that difficult interview questions are prone to too many false negatives due to anxiety in interviews and people who freeze up. However, when we tried interview do-overs or alternate take-home problems as a fallback for these candidates we didn't really see any improvement. I can think of a few candidates who we talked ourselves into giving a pass because we assumed interview anxiety was obscuring some real skill, but we got it wrong in both cases. I still don't know the correct answer, but these days I'm leaning more toward the interview formats where the questions get hard enough that the candidate is really challenged as opposed to the simple ones like FizzBuzz where it's just a quick filter. Note that I've worked in domains where algorithmic problem solving is something we actually do, so finding interview problems that match problems we've actually solved in production is possible, not just rote LeetCode stuff.
- omgmajk 1y ago> simple ones like FizzBuzz where it's just a quick filter I stumbled across a thread in r/cscareerquestions or maybe r/cscareers a while ago where several people argued that fizzbuzz was too hard because: "no-one is using the modulus operator in day to day work, so it's not something one should be expected to remember." I found it very funny and draining at the same time.
- Aurornis 1y ago> The problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI. I've also seen less and less passion for the career as the years go by (ie. less computer nerds). I started browsing spaces like /r/cscareerquestions and joined a few Discords to get a sense for what young devs are being exposed to these days. It's all very toxic and cynical. I've noticed an inverse correlation between how much someone is immersed in Reddit, Twitter, and Discords and how well they function in a business environment. The Reddit toxicity seems to taint young people into thinking that their employer is their enemy and that they have to approach the workplace like they're going into battle with evil managers. I've had some success getting people to chill out and drop the Reddit vibes, but some young people are so hopelessly immersed in the alternate reality that they see in social media that it's hard to shake them free.
- rtpg 1y ago10 years ago I'd pretty consistently run into 4chan-types as well (I was browsing 4chan as well, so I'm not immune to this). There's definitely an aversion to treating real life and "the internet" separately in a certain cohort of people. But the kinda edge-y meanness gets really weird when it's applied to coworkers and the like.
- normie3000 1y ago> I've had some success getting people to chill out and drop the Reddit vibes How did these issues manifest? And what approach worked for tackling them?
- darth_avocado 1y ago> The Reddit toxicity seems to taint young people into thinking that their employer is their enemy and that they have to approach the workplace like they're going into battle with evil managers What you’re saying is very true unfortunately and is going to be a real problem. It not only affects how you view your employers and companies but also your peers. If you’re exposed to extreme views even before you start your first job, what happens when you eventually start your first job?
- rtpg 1y agoI don't think computer nerds are needed (I've worked with plenty of very good people who don't write a single line of code out of work), but I have noticed a huge uptick in people who are in the space for the money. Nothing wrong with treating work as a place for money, but the hustler mindset combined with being an annoying 22-year-old twerp is exhausting. Please go back to fighting over finance and consulting jobs, people. Please. I know my salary is inflated thanks to the dynamics that also bring in these people, but I really would like to avoid working for people whose choice matrix is "finance or startups".
- protocolture 1y agoI find that the ability of people to understand hypotheticals is extremely diminished. "How would you troubleshoot x" "I havent done that before" "Ok, but how would you approach the problem" "I dont know sorry"
- krackers 1y agohttps://knowyourmeme.com/memes/the-breakfast-question https://knowyourmeme.com/memes/the-breakfast-question
- protocolture 1y agoYep 100%
- hackable_sand 1y agoIt's disturbing that you went from hiring to execution that quickly.
- tdeck 1y agoWow that got dark fast.
- a96 1y agoPar for course for greentext.
- b00ty4breakfast 1y ago"bro trust me bro I saw it on 4chan bro people can't just make shit up on 4chan, it's like impossible bro cmon bro just trust me"
- anal_reactor 1y agoI've seen this once. I was talking to two guys that I met randomly, and I said something like "Rich people see you the way you see homeless people". One of them instantly understood what I meant, while the other one got stuck on "but I am not homeless" and even his friend couldn't explain the idea to him.
- eru 1y ago> I've also seen less and less passion for the career as the years go by (ie. less computer nerds). Well, if we assume that the share of the population of nerds is roughly constant-ish, then an expansion of the total number of developers would lead to nerds making up a smaller and smaller share.
- jimbokun 1y agoThe idea that people have different aptitudes and proclivities has become a radical concept to some these days.
- eru 1y agoMaybe. Back in the olden days, you needed to be a hero who knows all the innards of your 8 bit machine just to produce a decently playable game that was more sophisticated than Tetris. These days even an idiot like me can hack something together in a high level language like Python or Rust. That's progress! Similar to how everybody carries an awesome digital camera around with them today. The absolute number of photographers has increased dramatically. And even the absolute number of great photographers has increased dramatically, because constant practice helps. But I'm fairly sure the skill and dedication of the average person engaging in photography has dropped equally as dramatically: that's how lower barriers to entry look like.
- davidCraigFergu 1y agoAs an EE working on energy based models[1]; good. No one should be required to acquire a special literacy or hire an expert in a specialized literacy to use a well understood computing technique (Von Neumann and Turing). IMO software first engineers are not much different than rent seekers. Using lexical tools based on understanding from the 1960s is hardly high tech. For all their high minded rhetoric, SWEs are just self selecting biology driven by "FU got mine" philosophy like so many others. After 30 years in tech, it's become quite clear the majority are not much different than an ICE agent; willfully ignorant because their personal compensation banging [1] figuring out how to store/recompute the geometry of an oscilloscope to keep it brief; too much syntax sugar involved as-is
- finaard 1y ago> Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board. That's one reason why I prefer "fresh out of college" for juniors - if they seem bright enough that way they only have to learn, not also forget whatever nonsense they learned somewhere else.
- jonasft 1y agoYeah, we lost a lot of nerds with the higher status of Computer Science, or rather we got a lot of non nerds/geeks into the mix. Every year as the criteria went up at the University, I saw less of the type that had always been there.
- commandersaki 1y agoThe problem has become that a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI I’m pretty senior and I memorise a bank of leetcode solutions if I’m going for an interview that is definitely leet code. It has served me well for some interviews, and will remain my top strategy. I can still solve problems on the spot when needed, and much prefer challenging non leetcode programming problems, but that is far and few between.
- fredphilo 1y agoThis is similar to what my advisor told me my PhD thesis defense would be; your committee would probe you until you got to the limit of your knowledge (generally in your domain but not specific to your exact topic) and only then could they test how well your reasoning abilities. I think this is a great evaluation technique but it was common practice in my PhD program that, as you started getting close-ish to your defense, you'd organize some practice sessions with your peers where you could recreate that kind of environment because being able to step beyond your knowledge, especially in front of a group of gatekeepers (your thesis committee or potential employer), while maintaining a professional level of composure is difficult! And most of us couldn't quite handle it well when we would practice with each other but after a few sessions we'd feel comfortable in that state, at which point the pass/fail is, in our opinion, much more reflective of your actual reasoning abilities. As an interview tactic, especially for juniors, it's an interesting idea and I'd be curious to know how well you think it works, but I think it would take most 90th percentile candidates 2 tries to really demonstrate the kind of critical thinking and reasoning skills that you're looking for.
- JohnBooty 1y agoI've also seen less and less passion for the career as the years go by (ie. less computer nerds). I have such strong but mixed feelings about this. There were major downsides to the days when programmers were all computer nerds. Specifically, it made the career very off-putting to anybody who didn't fit that stereotype. Any time you do that, you miss out on a lot of potential talent. Still, though. There were upsides. The passion level seemed higher. The climbing salaries attracted people solely attracted to... the climbing salaries. I'm tired of being treated like a fucking Martian because I understand basic data structures and why sometimes you might want to use a tree or some other computer science 101 shit. When I hire juniors, I try to give them problems that I know they likely won't be able to solve in the interview because I want to see how they think about things. Are you explicit about this when you pose the problems? I can see an upside to not telling them. If they try to bullshit their way through an answer because they think a definitive answer is expected, I guess that could be a useful data point. But it feels mean and unethical. When I've done this as interviewer I've been pretty explicit. Like, "Hey, this is something we've been working our way through for months and we don't expect you to figure it out in ten minutes. But how might you approach this?" I have fairly limited experience as an interviewer so I'm curious how others have approached this.
- deanCommie 1y agoYou said it. Such mixed feelings. The reality is there was a sweet spot - when the industry got less toxic and started attracting visible minorities, and you started getting some diversity of thought AND passion. Then the money got too good and it started attracting the personalities that 10 years earlier would've become finance bros and caused the 2008 crash. And they fucked it all up.
- Tade0 1y ago> Specifically, it made the career very off-putting to anybody who didn't fit that stereotype. That wasn't it. It's just that the position wasn't so highly paid back in the day and there was way less demand, so hardly anyone was even interested. The moment it became remotely attractive, the tech bros arrived.
- kyawzazaw 1y ago> I try to give them problems What does it look like in a span of an hour?
- Cornbilly 1y agoIt usually amounts to asking only 2 or 3 questions and a lot of discussion. I honestly wouldn't mind if we only get through one question if it leads to good insight on the candidate.
- MattPalmer1086 1y agoWhen I used to interview developers, I was more interested in how they approached problem solving and working collaboratively than attaining any correct answers. So I'd split the interview in two parts. The first bit I'd give them a set of requirements and ask them to come up with a design for it on their own. They had internet access and technical references available. It wasn't a memory test, and I'd leave the room (this probably wouldn't work well now given LLMs). In the second part, I'd ask them to talk me through their design, and then explain we were going to change the requirements and work together on altering it to accommodate them. The second bit was the most useful part of the interview; it's what we needed to do in the actual job, and pretty much everyone we hired in that process was good.
- mwigdahl 1y agoThe second part sounds like it would be good protection against LLM abuse -- if they don't actually understand their design, they'd be hard pressed to explain and adapt it with any fluency.
- jandrewrogers 1y ago> a lot of kids coming out of college have done little more than memorize Leetcode problems and outsourced classwork to AI Even before AI, there were issues with super-polished leetcode grinders. Their entire skillset was passing FAANG interviews via memorization of correct solutions and scripted answers. An effective technique for identifying these cases leverages the fact that you can only have a "correct" answer memorized if optimal solutions exist. Fortunately, there are many common and relatively simple problems in computer science and software design that require reasoning from first principles because globally optimal solutions can't exist even in theory. Small changes to the problem constraints lead to wildly divergent design outcomes that are effectively not enumerable. The possible solution space is so large that you can't realistically memorize it even if the problem is relatively concise and well-understood. The pure leetcode grinders never seem to have studied problems without tidy answers. The answers don't even matter that much, I am always more interested in the demonstrated ability to recognize and reason through the implications of constraint changes when there are no correct answers. People with solid computer science skills can usually muddle their way through it, whereas many people with immaculate leetcode skills fail the most basic versions of this. The most important skill of juniors was demonstrating that they could effectively reason about and were motivated to dive into problems they had never seen before. These were always the juniors that could be rapidly developed into strong senior engineers, which is more or less the objective when you hire juniors.
- Cornbilly 1y ago> The answers don't even matter that much, I am always more interested in the demonstrated ability to recognize and reason through the implications of constraint changes when there are no correct answers. People with solid computer science skills can usually muddle their way through it, whereas many people with immaculate leetcode skills fail the most basic versions of this. > The most important skill of juniors was demonstrating that they could effectively reason about and were motivated to dive into problems they had never seen before. These were always the juniors that could be rapidly developed into strong senior engineers, which is more or less the objective when you hire juniors. I agree 100%.
- adchurch 1y agoGreat idea re: giving hard problems. Same motivation behind why we ask people about past projects and keep diving deeper and deeper. The point is to figure out if they're curious & capable of engaging on a deeper level, vs. just following a tutorial they found somewhere.
- Balgair 1y ago> I've also seen less and less passion for the career as the years go by (ie. less computer nerds). Ahh yes, the 'pre-med'ification of CS.
- raxxorraxor 1y agoWell, the lacking passion could be explained because the most known tech companies aren't very attractive. They intentionally obfuscate any technology, restrict access and disallow experimentation. If you want to leech on the crowd that likes tinkering, you shouldn't give them some shitty iOS/Android environment and call it a day. For the industry, tinkering has become a security problem, scary warning boxes about unverified code being run on a piece of metal. How horrible! It is old and stagnant and just not that interesting. There are some alternative venues instead, but they have a focus elsewhere.
- Cornbilly 1y agoThat's a fair assessment. We're a fairly small company so there are less walls everywhere.
- pyuser583 1y agoThey're already outsourcing it all to AI?
- znpy 1y ago> I've also seen less and less passion for the career as the years go by (ie. less computer nerds). Ah, yes, the passion thing. I'm not being sarcastic, i see this as well. I saw the shift happening in the 2010s, and I attribute this to essentially two things: - social media and the glamourification of computer programming (and related things) - the startup craze of the early 2010s (everybody and their dogs wanted to develop an app or start up a company, and money was flowing left and right from more-or-less clueless investors). In a way, I'm happy that money is tight right now, deep down I hope the computer programming/science scene goes back to people driven by passion and money rather than just money.
- CharlieDigital 1y agoWhen I hire juniors I give them problems that focus on fundamentals. If a junior can code vanilla JS well, they can learn React, Vue, Svelte, etc. if they can't, they will never fully understand any of them. If they can write raw CSS, that can learn Tailwind and understand how and why. If thry can explain what's happening in the browser console, they can find the entry point for most bugs. This is pretty much how I also test seniors. Focus on the fundamentals; if those are off, nothing else matters.
- deaux 1y ago> Unless the company is doing something that requires almost no special domain knowledge, it's almost inevitable that it's going to take a good while for them to on-board. For us, it usually takes about year to get them to the point that they can contribute without some form of handholding. I know that such places exist from reading HN but it always seems so counterproductive to join such a place as a fresh grad. As a beginner you need to be getting your hands dirty, getting some ownership and respobsibilities, making mistakes and decisions. Figuring stuff out, exploring tradeoffs and experiencing them firsthand. It's like when a football player joins a big team before they're ready and spends a year or 2 on the bench. It completely stunts their development and they never reach their potential. When you look at those who reach the top, they were all playing nearly every match from a young age as an important member of their team. Obviously I'm biased due to personal experience, as everyone is. And there naturally must be upsides to joining your company as a first job as well. But I'm very glad that in my first job I was writing production code and doing both brownfield as well as greenfield stuff by week 2.
- tonyedgecombe 1y ago>But I'm very glad that in my first job I was writing production code and doing both brownfield as well as greenfield stuff by week 2. If you can get up to speed in two weeks then you can be replaced that quickly as well. Getting to know how the business works can be as valuable as CS knowledge.
- ozim 1y agoI don’t see how a year is an indication of something going wrong. Year for a junior is perfectly reasonable. Definitely making a commit to a GIT repo or opening a PR for textual change they should be able to do in first days. But doing any bigger task on their own that needs architectural understanding of our system a year is definitely good.
- begueradj 1y agoBy giving candidates problems you know they can't solve during the interview, you give yourself the right to dismiss anyone "you don't like" by telling them they failed the test.
- Gormo 1y agoIf that was your intention, why would you need a pretext? You're not obligated to hire anyone in particular in the first place, and apart from being accused of purposeful discrimination based on protected characteristics, you're not obligated to explain your decision criteria to anyone.
- aeternum 1y agoMany junior devs can often leetcode crazy algos but don't know what 'ls' or 'df' does.
- bigfatkitten 1y agoEmployers, in the absence of having managers and senior ICs with any actual interviewing skills, have decided that Leetcode should be the primary means of deciding the worth of a candidate. These kids are merely meeting what the market demands.