Software Engineering: Why do companies ask candidates to solve interview questions using google doc, no google search, and algorithms questions that few programmers memories! my question is why they do not test a candidate on his or her ability to deal with a given problem using the tools that they actually using on the job like search on google, compiler, editor.. give them the same parameters that your current employees has and see how they perform? many programmers do not memories algorithms or they might not be fimilair with it but they have the fundamental knowledge the relate to the given algorithm or they might have a fantastic searching skills and they might solve the issue as fast as the other guys who memories it I understand large companies can implement strict interviews but for most companies that's not the case. I am not saying it is bad. I am a senior at college who want to understand the market. I would the love experts take on this question #softwareengineer #programminginterviewprep #programmanageratgoogle #interview
It's an iq test that you can practice for and has rough correlation with software ability. That's it. If your requirements were "can compile a tic tac toe program" then everybody could work at your company. How is faang supposed to filter?
You think people who grind leetcode just since they ask leetcode like questions is a sign of a good filter?
Yes. Not everyone can grasp leetcode. There's lots of people who do 300+ lc and aren't as good as others who understand it naturally. Either you are you enough to be great at it with little practice or you are willing to grind a lot to achieve the same bar which is just as deserving imo
Going through the leetcode process changed my opinion. If you can study and comprehend the body of knowledge that is algo, it evidences dedication and drive that is very general. Granted, it's not always necessary. Some companies need skill positions in a particular area. For those, the interview process should be different.
If you think you have to "memorize" something, you're not doing it the right way.
Definitely totally agree with you, I choose that word because in my opinion that would be the case of many people need to do during interview to answer the questions. Unless the candidate is a genius and think incredibly fast with someone holding a timer and watching them writing a DFT in a white google doc, the chances for most people are really low.. My point is what's wrong of making the interview question similar to the actual job?
I once had a junior coworker with "fantastic searching skill" and less impressive algo skills. During one of the first code reviews we incidentally discovered (all file headers/comments had been stripped) a sizeable copy/paste of open-source code into our proprietary desktop application. Had a serious discussion on why that's really bad and liabilities we'd be exposed to if it had gone unnoticed. During the second code review I discovered that his regex skills were nearly as good as his searching skills. Had a second serious discussion, and this time his manager got involved. Eventually trust was broken and HR decided to transfer him to another location/project. I couldn't resist and snooped on the code he had written there - immediately found some copy/paste/regex of gamedev tutorial code, etc. Notified my manager that told me that the guy had complained that I was harassing him and enjoined me not to look at his code ever again. I am convinced he did not have the skills for the job he was asked to do. Always regretted we didn't do a LC-type interview before hiring him.
Thanks for your take.. why he didn't learn when you gave him feedback. Feedback should've helped him learn.. Mistakes is how many people learn I think. On a second note, I am not arguing there shouldn't be technical interview, i am simply saying wouldn't be better if you exposed candidate to the real position environment so you get better understanding of who is the best to satisfy you expectations?
Ohh and btw ask any young doctor whether it is indeed helpful having a "Fantastic searching skill" you would be surprised
Since nobody mentioned it yet: It is useful to be aware of important algorithms and where can you apply them - it is a prerequisite to be able to search on Google. As in, when you want to implement a feature, in most cases, you can't just type the feature description in Google, and get the algorithm to use. Similar logic for system design questions as well.
It’s similar in reasoning for why top investment banks recruit history majors from Harvard. Leetcode is a good way to test baseline intelligence and work ethic.
Because pretty much everyone does different things in their day to day, uses different editors, compilers etc. How would you objectively judge candidates if everyone is solving a different interview question? Of course you can have one standardized question, like "build a web server" or something, but that has the same problem as leet code and is even dumber. At least leet code is CS fundementals.
@OP Imagine that there was a pipe with endless food that is being streamed to you. All the food looks good, but you have a limited capacity in your stomach (regardless of how big you are). So you need to choose which food to pick from this amazing pipe that just brings more and more dishes to you. Problem is, that you also have other things to do. How will you choose what to eat and what to throw? very simple, you'll choose a greedy algorithm that is sub optimal in the long run, but is optimal in the short term. You define some criteria to how you select which food you pick and all the rest is thrown to the garbage. You also don't feel bad about it, cause the pipe never stops sending you more food. So you know that no matter how much "good" food you throw, there will always be some more good food or perhaps even better that will come along. If you understood this analogy you understood interviews at the top companies.
Idk why but I feel like this is great dating advice for young men, as well. Hell, maybe even life in general in some aspects.
It's algorithm and coding. It's objective - you are either good at it and solve it beautifully, or you fail. Algorithms ARE CS fundamentals! And trust me, although the problems are not real world problem, the approaches to solve the problems (in other words the algorithms) are definitely needed as a software in their day to day job - maybe not every type of SDE, maybe not every day, but many types of SDEs and many days - someone knows algorithms well can solve a problem in linear complexity, versus someone not good at it would write their codes with n^2 complexity, or even worse they wouldn’t be able to solve a problem while there are many ways to solve it.
Totally understand but would you be comfortable judging a candidate on his finish code after the time run up or would you be looking broadly on how he approached and thought about it?
It's not either or, it's both and