6 ms·
I've interviewed developer candidates who seemed to know a lot of theory, but when it came to write some code, they failed miserably. They could not implement f
by koliber 2y ago
I've interviewed developer candidates who seemed to know a lot of theory, but when it came to write some code, they failed miserably. They could not implement fizz-buzz. Senior Java developers who could not import HashMap without looking it up.
It's kind of like math. If you need to multiply 562 * 1041, you should use a calculator. If you need to reach for a calculator to tell me how much 3 * 7 is, I will doubt that you are an expert.
Many companies overdo the leetcode interviews. A live coding interview that shows that a person can do array manipulation, implement flow control, and use basic data structures shows me that you have the muscle memory that only comes with experience. If you need to study graph-traversal algorithms in order to pass, it's probably too leet.
- watwut 2y ago> Senior Java developers who could not import HashMap without looking it up. Eclipse does not without me having to even look at it. IntelliJ does the same. In what situation these people had to import it by hand? They had no ide available or what?
- gjadi 2y agoAnd now any editors with LSP integration do the same.
- batshit_beaver 2y agoGoogle used to ask people to write code in a Google doc. No tools allowed. Facebook to this day disables intellisense in their coderpad interviews. It's fucked up.
- kristopolous 2y agoIt'd be like interviewing a chef and you give them twigs and a flint rock to roll their own stove. I don't get what these tests are trying to show. Breadth? Depth? There's other ways. Give some complicated code that touches a bunch of things and have them work with that.
- emblaegh 2y agoFrom my interview at facebook some four years ago, I am inclined to believe they disable intelisense so the candidates do not get tangled up in the minutiae of language syntax, function arguments, etc. and instead focus on the algorithm they are trying to write.
- batshit_beaver 2y agoExcept you get dinged on your performance if your code doesn't run once the interviewer has a chance to test it after the interview. And getting dinged generally means rejection in today's economy.
- emblaegh 2y agoI passed that round and I’m 100% sure the code I wrote was not runnable as it was written.
- Der_Einzige 2y agoI actually got a google doc interview where they asked me to code up a hyperparamater optimizer from scratch. I couldn’t believe that they asked me to code in a google doc. I should have stopped the interview right there.
- koliber 2y agoNo IDE, specifically to test basic ability. We use a web-based shared editor, that has syntax highlighting, and auto-tabbing, but specifically no auto-complete nor auto-import. Sometimes, it's just pseudo-coding, either in a conversation, or on a whiteboard. Even though Eclipse does it, I'm sure you know where HashMap lives. Some people are compile-and-pray type devs. They lean on auto-complete for everything, not as a productivity tool, but because they don't know how to do even basic things. We don't want those on our team.
- vundercind 2y agoJesus. The last time I could maybe have passed something like that was 20 years ago when I’d only worked in one language and had only recently stopped writing code in MS Notepad. [edit] oh god it’s closer to 24 years. The time, how she flies.
- david_allison 2y ago> Even though Eclipse does it, I'm sure you know where HashMap lives. Why? ---- I'd struggle. It's a trivia question as it has no bearing on modern Java development Modern IDEs both collapse the import section, and auto-import on the fly The only reason I'd see the line is: * Looking up documentation: very rare * Conflict on the import - unlikely * Code Reviews - skimmed over
- tiew9Vii 2y ago> Senior Java developers who could not import HashMap without looking it up > No IDE, specifically to test basic ability. We use a web-based shared editor, that has syntax highlighting, and auto-tabbing, but specifically no auto-complete nor auto-import. I can sympathize with the candidate and think the test is poor and not surprised people had to look it up. I've been doing Java since early 2000's and off the top of my head can't tell you what package HashMap is in without looking it up except it starts with `java.` something, probably. I type `HashMap` in my IDE, hit auto complete. I haven't needed to remember the exact package name since early 2000's when I started coding so don't know it, no need to, why waste space in my head for it. If there's a second HashMap class available on the class path I can tell you the one I want from the suggestion list. You're trying to test someones memory on something they haven't needed to remember for decades now, knowing a specific fully qualified path to a class/what package it is in isn't a useful test. Knowing what a HashMap is and how to use it is useful. Enable auto complete/import. You don't have it disabled for your currently employed devs and they'd not function well without it and probably fail the same test.
- xxs 2y agoIf I am looking for a senior java developer I absolutely expect that they know about java.util and java.lang classes w/o any reference whatsoever. Heck, I expect they know why java.util.HashMap is subpar, or even the common hash mul-and-add const 31 is suboptimial.
- raincole 2y agoTo you, someone who doesn't know which namespace HashMap belongs to is like someone who can't do 3 * 7...? Not sure it's a satire about interviewer stereotype or...
- johnnyanmac 2y agoin all fairness, Java.util isn't some esoteric namespace. But the fact that you can do years of Java without touching core Java libraries (e.g. maybe you're highly reliant on DI, or have a proprietary library at work) does make it hard to properly gauge with. I'd say it's a fine question if interviewers stopped treating their technical tests like trade secrets and just said "okay, interview is next week, make sure you know the some the basic built-in Java namespaces and yadda yadda". I can understand wanting to avoid googling, but consider the situations: - someone truly out of their element won't pass, study or not - someone who knows the stuff after a quick refresher is a perfectly functioning programmer, it's something all programmers do on the job. - someone who truly knew nothing but could pass a test in a week is clearly a fast learner, the perfect candidate for many roles with changing demands - and ofc the best interviewers aren't impacted. Simply more confident. unless you truly need an expert/principle level engineer in a domain to solve problems (and let's be real: few companies do), I don't see many downsides to this approach.
- SCLeo 2y agoI think most people just start typing "HashM..." and trigger auto complete, and hit tab to import and auto complete HashMap.
- xcv123 2y agoMemorization of the hashmap package name is the stupidest Java programming test I have ever heard of.
- deleted 2y ago[deleted]
- lordnacho 2y ago> could not import HashMap without looking it up I think this is silly. On its own, you could imagine a kid in college who had just seen an example of HashMap in Java remembering what the import was. But this isn't the only thing you need in a program. There's going to be many things that are trivial that your program needs, all of which would need to be memorized in your world. > If you need to multiply 562 * 1041, you should use a calculator. If you need to reach for a calculator to tell me how much 3 * 7 is, I will doubt that you are an expert. The strange thing about this is, I would expect you to know how to calculate 562 * 1041, in other words the principle of how it works. You might mess up the calculation, but you can't mess up the idea of how long multiplication works. In that context, it is perfectly permissible that you have forgotten some entry in the times table, like 3 * 7. After all, you are a programmer, you organize calculations, you do not work them out yourself, the computer does that. > If you need to study graph-traversal algorithms in order to pass, it's probably too leet. This I agree with. You should know where to find the solution to whatever the issue is, you don't need all the solutions to hand.