These interviews are fantastic. Props to Sophie and especially Dan for exposing themselves like this for our benefit. Seeing Dan struggle with understanding what she was going for was really uplifting after seeing the other interview he did as an interviewer. Thanks a bunch!
@@DonTheDeveloper hey Don, could I participate in such an interview? Seems like a ton of fun. How could we set something up if you're open to it? Kind regards mate
Thanks Gabriel! We're glad it's helpful to get a peak into realistic interviews. We also always suggest to practice interviews from both directions, because you learn a lot giving interviews to others as well.
I’ve always been afraid of the interview process and as a result always set it aside but 20mins in and I’m blown away. The thing that has really hit home so far is the importance of communicating your thought process. Sure he’s a brilliant programmer but he isn’t afraid to say he doesn’t know something and is extremely good at organizing and conveying is thoughts, thank you so much.
This guy is a genius and I recommend all to learn from his people skills as well as his approach to the code questions. Notice how in the first question he was told to use setup(), but because He didnt understand its purpose (I also dont) and didnt want to get stuck up on it he found a build around. CHEEKY!! Its all about adapting
Incredible content, I was amazed by how human it felt, making mistakes and not knowing what to do at some point is something that many of us try to avoid, but Sophie clearly pointed out that it can totally happen, and the important thing is how you deal with it rather than trying to avoid it. I'm not looking for a job right now, however, this video gave me some helpful insights about how I can improve my performance in my current work, things like asking as many questions about the problem, thinking of edge cases, and most importantly to don't rush into coding without a well planned and designed solution. Great video !!!
Special thanks to Don, Dan and Sophie for this spectacular mock interview. It definitely gave me an insight of how tech interview will be and the atmosphere is so profound and palpable even though I am sitting just in front of a computer screen! Sophie is so professional as an interviewer and I really appreciate her professionalism.
I'm currently learning JS Fundamentals and watching him code gives me a headache probably after 3 or more months i can understand this. Really great mock interview it motivates me more to learn new technology.
Great mindset to have, seeing something you're unfamiliar with and feeling inspired to learn is basically a key component in being a successful programmer. Just don't burn yourself out!
One thing I don't miss is these type of tests. I now, refuse to waste my time doing them. Every one needs to till they gain experience and as such build a portfolio. First issue is spending an hour or more on these fake tests before even talking to someone about the job, if you are a fit, how the team operates, etc. Most of those of use who have say more then 5 verifiable years pf experience for the most part and if your good, refuse jobs weekly. I had to delete and/or make repos and social media private just from spam. Funny part about this example is in the last 10 years I have yet to see, and I run more in the VUEJS circles, any actual live code like what was in the interview. I mean setting up classes etc. and not just one lining or exporting a function type of mixin. When I interview junior developers to add to my team, biggest think I look for is passion and the ability to look it up/figure it out. Almost all the people I have had to let go would ask the same question repeatedly and I don't have time to teach someone how to book mark or screen shot a section of the documents because you can't remember "npm run watch" and "npm run dev".
This is one of the most impressive interview I've ever seen and tbh I would not have passed it! Sophie is a thorough interviewer and I have gained a lot from her observations
As a developer with 6 years experience these interviews are ridiculous. I get you need to know how someone may think about solving a problem but this isn't a real world situation solving a problem on the spot while someone is pressuring you lol. In reality if i needed to use regex for something complex i would just google it lol no one has time in a real world situation to take an hour figuring out the answer when google is right there. Interviewers should ask about experience, security, architecture and to show your code for any features you've created.
I tend to agree, I think the interviewer needs to understand that. And it is more important for the candidate to talk through a solution and outline their process vs testing their memorization of mdn web docs.
14 years in the industry and I can attest; these questions are absolutely absurd and as soon as I get answered one of these questions, I end the call or walk out. I'm not wasting my time on companies that value hackerrank solutions more than all of the other attributes it requires to become a competent developer.
@@Maverick2k I've been developing for 9 years. I applied to some remote jobs, and one sent me a hackerrank test. I didn't do perfectly, but I did just OK. This was not a FAANG company, so why bother testing me on dynamic programming that isn't going to ever be used on the job? Even though that company wanted to proceed with the next stages in the interview, I didn't want to. On the other hand, I had a different company which gave me technical questions about real problems that they actually experienced. As a result, I ended up taking that job.
Interviewer said you are free to look up anything you want. As an interviewee who hired 20+ developers without live test and only a sample project, I can tell that does not work. I think, if you are confident on what you can and can not do, these interviews should not be a problem. Just be yourself and work on camera just like you would off camera. The goal of this interview is to see if you are a good fit and what your level is. If you are feeling insecure or pressured, that seems to me like your way of thinking of interviews is flawed. I know being questioned on the spot is not a pleasant feeling in general, but sadly there is no other reliable way. As a response to, "Interviewers should ask about experience, security, architecture and to show your code", that is usually asked in the previous step, but all those questions can be easily faked. You can not believe the amount of people who says they can do something and when we ask them to do it, they just can not, even offline and without time pressure. It is near impossible to know full capability of developer in the matter of hours, but that is what you have to do as a interviewee. If you get it wrong, it will cost your company 6+ months.
It started off very simple then got much harder. If I understood the interview process correctly it seems like the point of the coding interview is to see how you solve problems when you don’t know the answer to that problem initially.
Yeah, and the cool thing about these problems is that one often HAS to reconsider initial assumptions / designs, and often a simple change (in data structure for example) can reduce the complexity of the problem. Else, one ends up trying to fit a square into a circle, and this is sometimes not that obvious under pressure.
Hi Marlow! Different interviewers have different styles. The overall goal for the interviewer is to gather both a signal (hire/no-hire), and the stength/confidence of that signal. Similar to cell phone reception strength bars. You can have a really strong 5 bar signal for a slower 3G/4G connection, or you can have a blazing fast 5G connection but with only 1 bar. The goal of the interviewer is to measure the connection speed and get the most bars possible. Some interviewers prefer ramping up from easy to harder problems, and some prefer jumping into medium level problems and not getting any harder.
I really liked how casual they were with each other in the interview. I was expecting more of a corporate setting as well as conversations. Great video :)
@alwinbaybay @stemipadpro you are both right, this is a mock interview but to a great extend this mirrors real life. Coding can be challenging, collaboration and conversations shouldn't be. As long as boundaries are observed.
So, I am both a developer who has gone through many interviews as well as a current hiring manager of developers. I think that in an idealized environment this is great. In practice, it would almost never go this smoothly, and I have been the victim of this kind of scenario being abused. Asking someone to work in an environment outside their norms with direct observational pressures and stresses, things are never going to be this fluid. I think the discussion of the code was worth far more than the actual coding, and that could be accomplished with some standard example code prompts for discussion.
The only thing I object on this practice is developer not using their preferred IDE/editor. Also developer should be aware they are always free to google anything they want as long as it is in screen.
@@erkinyildiz2367 It's my own experience that I can talk to a developer, ask them questions, and I will be able to figure out very quickly what kind of a dev they are. You're far more likely to get a false bad read than you are by asking them about how they approach problems, what patterns they use, and that sort of thing than you are by taking them back to college-type interactions. Also, unless they're coming in as a Jr Developer there's going to be evidence and corroborating accounts as to how good they actually perform. Everyone will use the tools they're happy with. I'm not happy with this one. If you are, more power to you.
@@GravyTraining "Also, unless they're coming in as a Jr Developer there's going to be evidence and corroborating accounts as to how good they actually perform." What do you mean by that? If you mean they will have references willing to speak highly of them, that is not always true. Sometimes really good devs work at really bad companies, which is especially likely if they don't live on the East or West Coast.
This is FAANG or now called MANGA tier frontend engineer technical interview. Watching Sophie grilling Dan with time space complexity through out the interview made me realize the importance of understanding Big O for big tech company interview. Thanks for this valuable mock up interview. We need more of this please!
This is such an insightful video! It helps so much to learn, what I feel, is that Sophie cared more about the communication & social behaviors within the interview, and I feel Dan cared more about arriving at a performant solution & enjoying the coding challenge. And it's wild that both people wished there had been more space for guidance towards the solution! Hearing each person's perspective is very helpful! Thank you!
This is so refreshingly different in approach to the create a divide and conquer or binary search etc algorithm. And the feedback was really great. Thank you so much for this resource.
How come the senior technical interview is way more chill than entry-level SWE they both look so chill I appreciate you making this video looking forward to watching more videos like this you have me subscribed
Welcome! That's just confidence from both the interviewer and interviewee. That's what an entry-level interview can look like, but anxiety tends to get the best of most people in the beginning.
Hi Kelvin, a common misconception is that senior engineers have to be better at data structures and algorithms. The DS&A bar is really the same, regardless of the level, and the smarter you are is not the more senior you are! With senior candidates, having clean code and clean thought process is more important. You want to hire someone that will mentor and do code review for junior engineers and instill in them habits and patterns for writing clean code. But you don't have to be any smarter to be more senior :D
Took me a while, but I would take the input array, iterate through it and generate every possible pattern per word, store it in a Map structure. The 0 wildcard case is also pattern. EDIT: during implementation I just realized I only need a set :)
This was a fantastic interview! I have seen many interviews on TH-cam but almost none covers the deep recruiter feedback that Sophie delivered. It not only helped Dan, but also helped me when I am set to interview for a company. It is just amazing to get the rich feedback and get to see what things to avoid in an interview. Thanks and Really helpful!
Cool content, I really like the debrief section at the end. It would be nice to see a third segment at the end where you and the interviewee reflect on the feedback from the interviewer.
with the code at 41:59 if I do isinDict('ca') it seems this will return true, but it should return false. It didn't seem like interviewer knew about it because they decided to follow-up even though problem with 1 star isn't solved. We could do 26^K (assuming we have lower-case english chars) for search and N*K(worst case) for building and memory with Trie in the worst case. alternative is K for search and (26^K) * N for building and memory. (26^K) * N (worst case with all possible permutations) could be enormous value.
First of all, the question is wow. I came up with the logic inside the `isInDict` function, I couldn't think of optimizing by creating a structure, and it was really impressive by how he wrote js code fast. I mean the speed doesn't matter but I believe it showed that he's fluent in a language javascript. The feedback given by the interview was also constructive and amazing. Thank you for sharing the great video!
Ok feeling good. I got 7 years under my belt and I stopped and got through these relatively easy. I really dig what he said about how he likes to write code how he'd like to use it, and that brings me back to a good happy place in my head
9 years experience, never did an interview before as I always got referred by other engineers. So super surprised how straight forward this is. Hoping my interview this week is like this. I had a few ideas alternative on how I would have solve this as well
Setting up Trie in the constructor might have helped. I guess that was what Dan tried to come up with. if wildcard is provided in isIndict, you just need to iterate thru all the leaves to find the match
ปีที่แล้ว
Totally, that'd be more optimal, but this is just weird. Why even have a trie as a frontend dev? The space (and time) complexity of setup is O(NM^2) where N=array size and M=length per string, and it supports only one wildcard. The first solution supported multiple wildcards and would have been faster in almost every real-world scenario.
@ A `Trie` type structure would be reasonable if you needed to implement an `Autocomplete` that had to search through a lot of items. Maybe something a bit like a "Ticker Search" in a stock trading application -- in this case, there can be a lot of items, since there are many tradable listed companies, etc, and each would be combined into a separate pair item. There could be millions of potential tradable pairs, and if you also add wildcards in it could be very slow.
Hey. Just want to say that your videos really helped me out. You are the best and coolest and the MVP. Respect for everything you do. You rock! Thanks for being so awesome!!! :)
First thing I thought of was storing the dictionary as a trie to optimize the runtime of `isInDict`, I think I can see the interviewer's excitement when the interviewee starts getting "warm" towards a similar solution lol And her way of leading him towards that solution without giving it away is also pretty skillful
it's funny, looking at this problem at home makes the gotchas obvious, however I'm sure if I were sitting in front of an interviewer, I'd be sweating profusely 😂. Shows how much pressure an interview environment can create!
I don't understand why they are so obsessed with ds & algo, like only ds & algo matters? Reflection, debugging, networking, multithreading, design patterns, distributed systems, memory management, docker, inversion of control frameworks, integration tests. No one cares?? So go solve enough leetcode problems and you are senior dev?
My approach was to find the index where the * is and replace the letter from the dict word at this position with a * too. Then you can just dict.some(dWord => word === dWord). RTC should be O(2n)? Find the index and then loop through dict words while replacing the letter..
he's very inventive. i would created a tree node dictionary, every node is letter. and for any wildcards, search the BFS. O(n), where n is number of letters in the input. I dont understand reduce() very well.
classic leetcode problem aka make a trie and recurse if it's a wildcard and return true if we reach end of the trie and false if a single letter is not a wildcard. time complexity depends on how long the word is / how many paths we need to take due to wildcards and space is mostly based on the call stack bc of the wildcards.
At first glance I was thinking bloom filter/set for q1 than q2 my first thoughts were Trie where we attempt all paths when we hit a * and after you mentioned looping over the list I was thinking take prefix + try all chars + postfix to see if its in the dict
Wow. Great video. Loved every second of it. Both parties were amazing. i get the interniewee's resistance to that feeling of "I'm drawing a blank here". How an individual deals with that emotion can be very varied so props to the interviewer for her great handling of the situation. She is clearly very good at what she does. As a task-oriented thinker myself the technical parts' importance far outways the non-technical but when you get the interviewing side of the job, you realize just how important behaviour and communication skills become critical factors in career growth. I'm at that point where you realize you need to train in these things to grow as a developer. Hence me watching this video :) So this was amazingly helpful.
I think he would fail the solution was syntactically clean but all his solutions had an O(n)^2 time complexity. The point is in setup you convert the array to an object or a map and in the inDict you use hash search which is object.hasOwnProperty or Map.has as both of these search methods have a time complexity of 1. I got stumped on a similar interview question the interviewer was nice enough to explain why I had gotten it wrong
Hi Simon. A lot of companies don't have a single pass/fail bar, most have a range of outcomes. By not having the most efficient solution, you might not get a "strong yes!" but you might be able to still pass because of the cleanliness of the solution and strong and clear communication of the thought process. We often see people put too much pressure on themselves to get the perfect solution or otherwise fail. This works if you get every question perfect, but it's not the most efficient and overall successful way to approach interviews.
This was really cool and helpful as I prepare for such interviews myself. It did not feel fake at all. I feel like I would have gotten into the “Yes” bucket, too, as I worked through the problem myself. That being said, I did have the advantage of being able to pause it and think through things in a zero-pressure situation. I thought the feedback Sophie provided was excellent. I was initially confused about the setup function as well, but that is where we’re supposed to ask better questions and she was very gracious throughout the whole process. I also appreciated her comment about needing to ask more behavioral questions to gauge seniority.
This mock interview was great! So many times I have wondered how a good or bad interview goes, and especially to hear the feedback from the interviewer (because this doesn't happen in real life)...very helpful !
I was surprised he didn't ask when first assigned the task: How do we treat capital letters? How big can the list of words be? English words? Unicode? What kinds of wildcards? What will be the longest word? supercalifragilistic? antidisestablishmentarianism? How will the code be used within the company? Throwaway? One-time? Multiple use in many apps? Will it grow so complex that we need to move it to C or webasm or faster sub-system? (should code be written to be able to easily port to other languages?) Never mentioned possibility of building a tree/graph/etc. either unidirectional or bidirectional out of the list of words for easy lookup. I thought the interviewer kept hinting to him - please do most of the work in the constructor so that lookup is fast and simple, but I don't think he understood what she was asking for.
I thought he should have asked more clarifying questions as well, especially around the wildcard functionality (particularly, how many wildcards came to mind immediately, and also, system constraints -- can I trade space to store a crazy data struct that would enable efficient lookups?). However, I'm not surprised because I've brain-farted one too many times under the pressure of interviews, and what's seemingly apparent went right over my head and the hints just didn't register 😂
@@ceplusista i know a bunch of coders who could all do it in less than an hour. however, i do like when they ask several questions of increasing difficulty and challenge your problem-solving skills
when Sophie talks about juniors using the standard for loop, is funny af. In a FAANG interview they will NEVER let you use the internal js methods (reduce/sort etc) because the time complexity is huge in those methods. For loops / standard loops in big companies are the only way to go, junior or seniors.
It can be noted for up and coming Devs not all interviews are like this. Watching these can seem very daunting, most of them are very simple and they are looking for someone who would fit in well within a team.
oh thank GOd because that was terrifyingggg!!! to be honest im just at the beggining of my career..just graduated from a bootcamp so..its too much for me definitely but I enjoyed it a lot! an d learned a lot
As a Senior Software Engineer myself, I felt like the interviewee is lacking some fundamentals and confidence to be hired to a Senior position. Not asking enough questions to clarify the scope of the problem is a big issue in my opinion and the complexity analysis was most of the times incorrect, when dealing with strings you always should consider the length of the words when analyzing the complexity, here are my points: The trivial solution with just an ".includes()" would not be O(n) as he said, it would be O(n*m) with n being number of words and m being the length of the strings. The regex complexity in this case is also bound by the length of the string. Around 24:30 where she asks about the big O complexity, even after the optimizations, the complexity is still O(n*m), even if the best case is O(1), because that is how you do big O complexity analysis. I would be leaning more towards mid-level seniority for this interview.
Honestly, interviewing is a blade you need to keep very sharp. It's a skill that is overlooked, often times costing you the job. Most important details after technical boils down to one thing: did, I like the person?
Wow. This channel is amazing. Thanks for bringing such interviews. I am a software engineer myself with 3+ years of experience. This video is helping my in upskilling.
33:34 she’s trying to get him to generate every permutation of wildcard for each word, then store that matching word as the solution. He should be asking how to match both cat and car to ca*.
come on regular expression look , every time you have a character like a star or a dot you look on the second position if it’s a you look for ace in the array so you can search it that way and you can make very fast search with it with a method so you start to searches or you can search backwards or you can search like for characters with the specific amount of positions of characters so free for example, and every vent has small characters in free will be excluded. In the specific test, it will be faster to search for the “t” on the end of the three letters, the search will be extremely fast.
my thought (without really looking into it) is to just replace the * with the char at the same index in the word and then compare...seems like it would be fast ish?
31:58 wouldn't that be O(n) not O(1)? In the case of "*at" I'd assume in the worst case you'd have to iterate through the whole array of letters to find a match. Or is it O(1) b/c you're converting the word to a dictionary, initially?
Tomorrow is my first time interview as mid senior software engineer. This video reduce 90% of my nervousness. It solved the structure 'how the interview will go on'. So I can prepare for each steps of the structure. Thank you
I was actually sweating for this guy when he started the class like a regular function, he later removed the parentheses and I was able to breathe again 😅
I could only make it through 22 minutes in due to time constraints, but I thought he should sort the string array in the setup with an O(n*lg(n)) sort complexity in the setup and then use binary search for an optimized search mechanism for O(lg(n)) search complexity. Wild cards ... didn't recall if they said the wildcard represented 0 or more characters... I don't know about that... I'll finish the video later.
What they are trying to come up with on the coding interview is basically very similar to a Patricia Tree, which ethereum uses in a differente way in its block chain.
Enjoyed watching how others interview candidates. I also use a very conversational style and iterative approach when conducting coding interviews. Great job and thanks for sharing. ------------------------ Improved Approach to Support Wildcard Character(s): ------------------------ The space complexity for the approach taken to support the wildcard character(s) was still larger than it had to be. By creating every possible variation of each word with a wildcard character, the space complexity was O(n * k) where n is number of words in the array and k is the character length of each word. This increases exponentially if creating every combination of wildcard characters for every character position and as the word length increases. -------- Example: -------- ['cat'] -> ['cat', '*at', 'c*t', 'ca*', '**t', 'c**', '***'] Increasing the array isn't necessary. This could have been reduced to O(1) (or constant space complexity) with the following approach: - While looping through the array of words, update the current word to contain the wildcard character in the same index positions found in the input value. - Then, return true if the modified current word equals the input value. Here's a version of the code to better illustrate: playcode.io/1462862
agreed with some other people. you should run from these types of interviews - teams that think this is a good way to gauge a good fit usually speaks to the personality of the team. if you want to work with a group of people who have good soft skills and are enjoyable to work with, don't interview for companies who are obsessed with finding the best technical expert. these interviews filter for a very specific type of person.
It's really insane how it filters for a mono culture and isn't representative of much given how bad the coding environment is and forced the situation is. Ive worked with so many great coders who perform poorly in these interviews.
This video is very educational and especially Sophie is very talent. Unfortunitely, she did not see the potential power of Dan. She values Dan's skill, coding behavior, etc exactly. But in my poor opinion, it seems like Dan is a little nervous and he does not have any experinece to have this kind of technical interview before. If he puts something more a little, he will be a greate engineer.
Seems like you can just interact through each letter in your dictionary and check that the input words letters match. So word one character one would check if the first character in the input word matched. Then just keep doing that.
I made a game for a client before and it has 10 mil downloads now, all of this would not happen if I had this kind of technical interview with him, because I create solution, not solve random puzzle as a time-based challenge. To think that my 10 years of experience can be defined in a 30-min puzzle challenge (which I'm very bad at), is crazy. When I interview people as a lead, I prefer task-oriented interview, that I will give you a real world task and a day to complete it, then we will review together. I believe this helps me understand the interviewee better.
As a senior software engineer: if I was going to interview someone, I would never waste my time on a programming problem like this. I’d rather have the candidate walk me through how they would solve it verbally.
Never seen an interviewer for a code interview being so nice and understanding. Can you guys try to do one but this time with someone that is the total opposite of that? Meaning, pushy, judgmental, passive aggressive, I mean the whole "I'm a superstar programmer and everything you do is shit to me". Cause this is the real tough one to overcome.
Dan made a mistake by converting from a Set to a keyed object -- the set actually does exactly what he was achieving (deuping) by keying the array; it's basically what sets are for. IMO the actual answer to this would be to (in the constructor) loop through the array, then loop twice through the length of the word, and replace both i & j position letters with an asterisk, then let it automatically remove dupes using the set. Then check against this in the main function - it basically caches every asterisk permutation I guess trees are the best method if doing something more complex, but the above "Mega Dictionary" approach is pretty fast still. What do you guys think?
What is "isIntdict" function purpose? Setup seems to create a dictionary but what is Intdict? This interview seems easy and could be more simplified, he got any entire hour to get it right and able to debug.
Bruh I'm a mid level native dev myself and i gotta say finding the most efficient solution to problems it's very challenging i can whip up o(n^2) triple loop solutions decently quick but it can take me a hours to refactor into o(n)
Honestly I've been working as a frontend dev for a couple of years and honestly yet to encounter such task that will require me to even care about complexities. If it happens in frontend it's likely that API needs redesign 😅
Blessed pigeon that’s the issue. Should be smart server, dumb client. All the complex stuff the backend should be doing shouldn’t have a front-end fallback. Too expensive and resource heavy for the slowest/weakest user devices. That’s a recipe for terrible user experience.
I'm a mid level backend dev and what I can say about the issue is that it seems completely pointless to me to have to know complex implementations of algorithms of the top of your head. Understanding complexity and Big O notation is critical, but some algorithms are complex and take a few hours to understand and implement correctly. In almost every case there's tons of online discussion and reference material. Most coding that you do, you either look up online discussions and figure out how to adjust it for what you need, or you look up official online documentation, or you reference your own previous code. Why should it be any different with algorithms ? I understand the interviewer's need to asses whether you understand the concept of algorithmic complexity as such, because it is, as I said, critically important, but having to know entire implementations for an interview to me just seems like an equivalent of a school test where you prepare for it for a week and a week later don't know half the stuff. Especially when most functionalities that could need this level of optimization are already implemented by frameworks and libraries that are used by everyone. In most cases it's way more critical for backend optimization to understand SQL and, even if you're using a framework such as Django or .NET, being able to look at the SQL generated from queries written in Python or C# and understand whether or not they can be improved.
As far as interviews go, this was a good one but I have to say from my experience, it kind of is a hit or miss for what interviewer you get. Some are nice, some are okay.
well, I stop interview senior engineer with algo for long because mostly, they wont use much algo on the job. In code pair, i always start off with design problem and then let candidate code on solution to test their OOP skills. What i am interested in is if the candidate have good reasoning and trade off on using such design patterns. I dont see how algo help in day to day job. Most senior focus on design solution, network design, architecture. I dont want to hire senior who constantly revise uni lectures or books on algo
You are correct and any mid to high level software engineer understand this. Sadly the hiring process at many large companies is not driven by the software engineers, rather by recruiters and infected by coding-interview-software sales/marketing.
These interviews are fantastic. Props to Sophie and especially Dan for exposing themselves like this for our benefit. Seeing Dan struggle with understanding what she was going for was really uplifting after seeing the other interview he did as an interviewer.
Thanks a bunch!
Yeah props to both of them for being willing to do this on camera where it can be even more nerve-racking.
@@DonTheDeveloper hey Don, could I participate in such an interview? Seems like a ton of fun. How could we set something up if you're open to it? Kind regards mate
Thanks Gabriel! We're glad it's helpful to get a peak into realistic interviews. We also always suggest to practice interviews from both directions, because you learn a lot giving interviews to others as well.
I’ve always been afraid of the interview process and as a result always set it aside but 20mins in and I’m blown away. The thing that has really hit home so far is the importance of communicating your thought process. Sure he’s a brilliant programmer but he isn’t afraid to say he doesn’t know something and is extremely good at organizing and conveying is thoughts, thank you so much.
This guy is a genius and I recommend all to learn from his people skills as well as his approach to the code questions. Notice how in the first question he was told to use setup(), but because He didnt understand its purpose (I also dont) and didnt want to get stuck up on it he found a build around. CHEEKY!! Its all about adapting
Actually the right thing to do isn't build around an unknown, but rather to ask questions until it's known
Incredible content, I was amazed by how human it felt, making mistakes and not knowing what to do at some point is something that many of us try to avoid, but Sophie clearly pointed out that it can totally happen, and the important thing is how you deal with it rather than trying to avoid it. I'm not looking for a job right now, however, this video gave me some helpful insights about how I can improve my performance in my current work, things like asking as many questions about the problem, thinking of edge cases, and most importantly to don't rush into coding without a well planned and designed solution. Great video !!!
Special thanks to Don, Dan and Sophie for this spectacular mock interview. It definitely gave me an insight of how tech interview will be and the atmosphere is so profound and palpable even though I am sitting just in front of a computer screen! Sophie is so professional as an interviewer and I really appreciate her professionalism.
I'm currently learning JS Fundamentals and watching him code gives me a headache probably after 3 or more months i can understand this. Really great mock interview it motivates me more to learn new technology.
Same here, what are the odds 😄
hope ur still learning 🙂
Great mindset to have, seeing something you're unfamiliar with and feeling inspired to learn is basically a key component in being a successful programmer. Just don't burn yourself out!
One thing I don't miss is these type of tests. I now, refuse to waste my time doing them. Every one needs to till they gain experience and as such build a portfolio. First issue is spending an hour or more on these fake tests before even talking to someone about the job, if you are a fit, how the team operates, etc. Most of those of use who have say more then 5 verifiable years pf experience for the most part and if your good, refuse jobs weekly. I had to delete and/or make repos and social media private just from spam.
Funny part about this example is in the last 10 years I have yet to see, and I run more in the VUEJS circles, any actual live code like what was in the interview. I mean setting up classes etc. and not just one lining or exporting a function type of mixin.
When I interview junior developers to add to my team, biggest think I look for is passion and the ability to look it up/figure it out. Almost all the people I have had to let go would ask the same question repeatedly and I don't have time to teach someone how to book mark or screen shot a section of the documents because you can't remember "npm run watch" and "npm run dev".
This is one of the most impressive interview I've ever seen and tbh I would not have passed it! Sophie is a thorough interviewer and I have gained a lot from her observations
@@TheMasterUzi DANMMM
@@TheMasterUzi What are you on about 🤣. I'm sure you would've flopped it
As a developer with 6 years experience these interviews are ridiculous. I get you need to know how someone may think about solving a problem but this isn't a real world situation solving a problem on the spot while someone is pressuring you lol. In reality if i needed to use regex for something complex i would just google it lol no one has time in a real world situation to take an hour figuring out the answer when google is right there. Interviewers should ask about experience, security, architecture and to show your code for any features you've created.
I tend to agree, I think the interviewer needs to understand that. And it is more important for the candidate to talk through a solution and outline their process vs testing their memorization of mdn web docs.
14 years in the industry and I can attest; these questions are absolutely absurd and as soon as I get answered one of these questions, I end the call or walk out. I'm not wasting my time on companies that value hackerrank solutions more than all of the other attributes it requires to become a competent developer.
@@Maverick2k I've been developing for 9 years. I applied to some remote jobs, and one sent me a hackerrank test. I didn't do perfectly, but I did just OK. This was not a FAANG company, so why bother testing me on dynamic programming that isn't going to ever be used on the job? Even though that company wanted to proceed with the next stages in the interview, I didn't want to. On the other hand, I had a different company which gave me technical questions about real problems that they actually experienced. As a result, I ended up taking that job.
Wanna mentor me and make superiour web-developing machine from myself? I have all the free time of this world.
Interviewer said you are free to look up anything you want. As an interviewee who hired 20+ developers without live test and only a sample project, I can tell that does not work. I think, if you are confident on what you can and can not do, these interviews should not be a problem. Just be yourself and work on camera just like you would off camera. The goal of this interview is to see if you are a good fit and what your level is. If you are feeling insecure or pressured, that seems to me like your way of thinking of interviews is flawed. I know being questioned on the spot is not a pleasant feeling in general, but sadly there is no other reliable way.
As a response to, "Interviewers should ask about experience, security, architecture and to show your code", that is usually asked in the previous step, but all those questions can be easily faked. You can not believe the amount of people who says they can do something and when we ask them to do it, they just can not, even offline and without time pressure.
It is near impossible to know full capability of developer in the matter of hours, but that is what you have to do as a interviewee. If you get it wrong, it will cost your company 6+ months.
It started off very simple then got much harder. If I understood the interview process correctly it seems like the point of the coding interview is to see how you solve problems when you don’t know the answer to that problem initially.
Yeah, it can be a really popular and effective strategy for interviews.
Yeah, and the cool thing about these problems is that one often HAS to reconsider initial assumptions / designs, and often a simple change (in data structure for example) can reduce the complexity of the problem. Else, one ends up trying to fit a square into a circle, and this is sometimes not that obvious under pressure.
Hi Marlow! Different interviewers have different styles. The overall goal for the interviewer is to gather both a signal (hire/no-hire), and the stength/confidence of that signal. Similar to cell phone reception strength bars. You can have a really strong 5 bar signal for a slower 3G/4G connection, or you can have a blazing fast 5G connection but with only 1 bar. The goal of the interviewer is to measure the connection speed and get the most bars possible. Some interviewers prefer ramping up from easy to harder problems, and some prefer jumping into medium level problems and not getting any harder.
I really liked how casual they were with each other in the interview. I was expecting more of a corporate setting as well as conversations. Great video :)
mock means not real bro
@@stemipadpro what's the point of your comment?
@alwinbaybay @stemipadpro you are both right, this is a mock interview but to a great extend this mirrors real life.
Coding can be challenging, collaboration and conversations shouldn't be.
As long as boundaries are observed.
After giving multiple interviews at big tech can confirm being casual doesn't hurt.
So, I am both a developer who has gone through many interviews as well as a current hiring manager of developers. I think that in an idealized environment this is great. In practice, it would almost never go this smoothly, and I have been the victim of this kind of scenario being abused. Asking someone to work in an environment outside their norms with direct observational pressures and stresses, things are never going to be this fluid. I think the discussion of the code was worth far more than the actual coding, and that could be accomplished with some standard example code prompts for discussion.
The only thing I object on this practice is developer not using their preferred IDE/editor. Also developer should be aware they are always free to google anything they want as long as it is in screen.
@@erkinyildiz2367 It's my own experience that I can talk to a developer, ask them questions, and I will be able to figure out very quickly what kind of a dev they are. You're far more likely to get a false bad read than you are by asking them about how they approach problems, what patterns they use, and that sort of thing than you are by taking them back to college-type interactions. Also, unless they're coming in as a Jr Developer there's going to be evidence and corroborating accounts as to how good they actually perform. Everyone will use the tools they're happy with. I'm not happy with this one. If you are, more power to you.
@@GravyTraining "Also, unless they're coming in as a Jr Developer there's going to be evidence and corroborating accounts as to how good they actually perform." What do you mean by that? If you mean they will have references willing to speak highly of them, that is not always true. Sometimes really good devs work at really bad companies, which is especially likely if they don't live on the East or West Coast.
This is very real, not some TH-cam interview drama, thank you!
This is FAANG or now called MANGA tier frontend engineer technical interview. Watching Sophie grilling Dan with time space complexity through out the interview made me realize the importance of understanding Big O for big tech company interview. Thanks for this valuable mock up interview. We need more of this please!
Another one should be released in the next month or so.
not at all dude, this is a junior interview in my reality
@@RaZoRxan junior to mid at best but even then definitely not MANGA tier, just your normal everyday interview
@@RaZoRxan I don't think a jr would know this to be honest. More like mid to SSr.
pretty sure this is LC med so perhaps 1 question of 5 you’d be seeing in FANG
This is such an insightful video! It helps so much to learn, what I feel, is that Sophie cared more about the communication & social behaviors within the interview, and I feel Dan cared more about arriving at a performant solution & enjoying the coding challenge. And it's wild that both people wished there had been more space for guidance towards the solution! Hearing each person's perspective is very helpful! Thank you!
This is so refreshingly different in approach to the create a divide and conquer or binary search etc algorithm. And the feedback was really great. Thank you so much for this resource.
How come the senior technical interview is way more chill than entry-level SWE
they both look so chill
I appreciate you making this video looking forward to watching more videos like this
you have me subscribed
Welcome! That's just confidence from both the interviewer and interviewee. That's what an entry-level interview can look like, but anxiety tends to get the best of most people in the beginning.
Hi Kelvin, a common misconception is that senior engineers have to be better at data structures and algorithms. The DS&A bar is really the same, regardless of the level, and the smarter you are is not the more senior you are! With senior candidates, having clean code and clean thought process is more important. You want to hire someone that will mentor and do code review for junior engineers and instill in them habits and patterns for writing clean code. But you don't have to be any smarter to be more senior :D
Took me a while, but I would take the input array, iterate through it and generate every possible pattern per word, store it in a Map structure. The 0 wildcard case is also pattern.
EDIT: during implementation I just realized I only need a set :)
This was a fantastic interview! I have seen many interviews on TH-cam but almost none covers the deep recruiter feedback that Sophie delivered. It not only helped Dan, but also helped me when I am set to interview for a company. It is just amazing to get the rich feedback and get to see what things to avoid in an interview. Thanks and Really helpful!
His hairline is impressive for a senior dev
He's the resurrected Boris from the Bond film Goldeneye.
I'm not really that impressed with his JavaScript fluency though
@@minademian 🤣🤣🤣🙌
@@minademian “I AM INVINCIBLE!”
💀💀
Cool content, I really like the debrief section at the end.
It would be nice to see a third segment at the end where you and the interviewee reflect on the feedback from the interviewer.
That could be interesting. Thanks for the suggestion.
Sophie is the best - awesome feedback post-interview.
She is a very very good interviewer, I really liked the feedbacks at the end. Amazing content, congrats and keep it up!
with the code at 41:59 if I do isinDict('ca') it seems this will return true, but it should return false. It didn't seem like interviewer knew about it because they decided to follow-up even though problem with 1 star isn't solved. We could do 26^K (assuming we have lower-case english chars) for search and N*K(worst case) for building and memory with Trie in the worst case. alternative is K for search and (26^K) * N for building and memory. (26^K) * N (worst case with all possible permutations) could be enormous value.
I've just begun learning Python/coding in general and this is daunting.
Are you still going?
What a cool problem and solution. Definitely would've been sweating that one. Thank you Don and the participants. 🙏
First of all, the question is wow. I came up with the logic inside the `isInDict` function, I couldn't think of optimizing by creating a structure, and it was really impressive by how he wrote js code fast. I mean the speed doesn't matter but I believe it showed that he's fluent in a language javascript. The feedback given by the interview was also constructive and amazing. Thank you for sharing the great video!
Ok feeling good. I got 7 years under my belt and I stopped and got through these relatively easy. I really dig what he said about how he likes to write code how he'd like to use it, and that brings me back to a good happy place in my head
9 years experience, never did an interview before as I always got referred by other engineers. So super surprised how straight forward this is. Hoping my interview this week is like this. I had a few ideas alternative on how I would have solve this as well
XDDDDDDDDDDDDDDD
Setting up Trie in the constructor might have helped. I guess that was what Dan tried to come up with. if wildcard is provided in isIndict, you just need to iterate thru all the leaves to find the match
Totally, that'd be more optimal, but this is just weird. Why even have a trie as a frontend dev? The space (and time) complexity of setup is O(NM^2) where N=array size and M=length per string, and it supports only one wildcard. The first solution supported multiple wildcards and would have been faster in almost every real-world scenario.
@ A `Trie` type structure would be reasonable if you needed to implement an `Autocomplete` that had to search through a lot of items. Maybe something a bit like a "Ticker Search" in a stock trading application -- in this case, there can be a lot of items, since there are many tradable listed companies, etc, and each would be combined into a separate pair item. There could be millions of potential tradable pairs, and if you also add wildcards in it could be very slow.
major kudos for you guys putting yourself out there for our benefit. I learned a lot, thank you
i love the fact that these coding interviews still exists lol
Hey. Just want to say that your videos really helped me out. You are the best and coolest and the MVP. Respect for everything you do. You rock! Thanks for being so awesome!!! :)
Immediately subscribed to your channel!
First thing I thought of was storing the dictionary as a trie to optimize the runtime of `isInDict`, I think I can see the interviewer's excitement when the interviewee starts getting "warm" towards a similar solution lol
And her way of leading him towards that solution without giving it away is also pretty skillful
it's funny, looking at this problem at home makes the gotchas obvious, however I'm sure if I were sitting in front of an interviewer, I'd be sweating profusely 😂. Shows how much pressure an interview environment can create!
I don't understand why they are so obsessed with ds & algo, like only ds & algo matters? Reflection, debugging, networking, multithreading, design patterns, distributed systems, memory management, docker, inversion of control frameworks, integration tests. No one cares?? So go solve enough leetcode problems and you are senior dev?
true!
My approach was to find the index where the * is and replace the letter from the dict word at this position with a * too. Then you can just dict.some(dWord => word === dWord). RTC should be O(2n)? Find the index and then loop through dict words while replacing the letter..
Great interview, I learned a lot with what questions to ask, and more on how to approach problems like this.
he's very inventive. i would created a tree node dictionary, every node is letter. and for any wildcards, search the BFS. O(n), where n is number of letters in the input. I dont understand reduce() very well.
classic leetcode problem aka make a trie and recurse if it's a wildcard and return true if we reach end of the trie and false if a single letter is not a wildcard. time complexity depends on how long the word is / how many paths we need to take due to wildcards and space is mostly based on the call stack bc of the wildcards.
At first glance I was thinking bloom filter/set for q1 than q2 my first thoughts were Trie where we attempt all paths when we hit a * and after you mentioned looping over the list I was thinking take prefix + try all chars + postfix to see if its in the dict
Wow. Great video. Loved every second of it. Both parties were amazing. i get the interniewee's resistance to that feeling of "I'm drawing a blank here". How an individual deals with that emotion can be very varied so props to the interviewer for her great handling of the situation. She is clearly very good at what she does. As a task-oriented thinker myself the technical parts' importance far outways the non-technical but when you get the interviewing side of the job, you realize just how important behaviour and communication skills become critical factors in career growth. I'm at that point where you realize you need to train in these things to grow as a developer. Hence me watching this video :) So this was amazingly helpful.
I think he would fail the solution was syntactically clean but all his solutions had an O(n)^2 time complexity. The point is in setup you convert the array to an object or a map and in the inDict you use hash search which is object.hasOwnProperty or Map.has as both of these search methods have a time complexity of 1. I got stumped on a similar interview question the interviewer was nice enough to explain why I had gotten it wrong
Hi Simon. A lot of companies don't have a single pass/fail bar, most have a range of outcomes. By not having the most efficient solution, you might not get a "strong yes!" but you might be able to still pass because of the cleanliness of the solution and strong and clear communication of the thought process. We often see people put too much pressure on themselves to get the perfect solution or otherwise fail. This works if you get every question perfect, but it's not the most efficient and overall successful way to approach interviews.
My face melted off early on...good vid
That’s good. Face melting was the goal of this video.
This is a classic Trie problem and can be easily solved with it.
Man, this is great! Thanks for the video.
Really fun to watch and super helpful! Thanks a bunch Sophie and Dan! Love the videos Don. Stay awesome! =D
You too!
This was really cool and helpful as I prepare for such interviews myself. It did not feel fake at all. I feel like I would have gotten into the “Yes” bucket, too, as I worked through the problem myself. That being said, I did have the advantage of being able to pause it and think through things in a zero-pressure situation. I thought the feedback Sophie provided was excellent. I was initially confused about the setup function as well, but that is where we’re supposed to ask better questions and she was very gracious throughout the whole process. I also appreciated her comment about needing to ask more behavioral questions to gauge seniority.
This mock interview was great! So many times I have wondered how a good or bad interview goes, and especially to hear the feedback from the interviewer (because this doesn't happen in real life)...very helpful !
What do you mean it doesn't happen in real life? It does. Every time I had interview like this, interviewer was helpful and discussing with me.
This was amazing, I need to watch more of these type of videos.
Tough interview. I don't see myself passing this but then again, I'm an accountant.
@@InStevenWeTrust you got it queen
I was surprised he didn't ask when first assigned the task:
How do we treat capital letters?
How big can the list of words be?
English words? Unicode?
What kinds of wildcards?
What will be the longest word? supercalifragilistic? antidisestablishmentarianism?
How will the code be used within the company? Throwaway? One-time? Multiple use in many apps?
Will it grow so complex that we need to move it to C or webasm or faster sub-system? (should code be written to be able to easily port to other languages?)
Never mentioned possibility of building a tree/graph/etc. either unidirectional or bidirectional out of the list of words for easy lookup. I thought the interviewer kept hinting to him - please do most of the work in the constructor so that lookup is fast and simple, but I don't think he understood what she was asking for.
I thought he should have asked more clarifying questions as well, especially around the wildcard functionality (particularly, how many wildcards came to mind immediately, and also, system constraints -- can I trade space to store a crazy data struct that would enable efficient lookups?). However, I'm not surprised because I've brain-farted one too many times under the pressure of interviews, and what's seemingly apparent went right over my head and the hints just didn't register 😂
thats why such interviews with coding sessions solving "real problem" is wasting time, it is not possible to solve such problems in one hour!
@@ceplusista i know a bunch of coders who could all do it in less than an hour. however, i do like when they ask several questions of increasing difficulty and challenge your problem-solving skills
@@mazthespaz1 I know right?? People use the word "senior" so loosely these days. It was pretty Junior-ish. Mid-senior level tops.
Visual coding is so much better and flexible. I always beginning from the end, probably I am different of a common people
when Sophie talks about juniors using the standard for loop, is funny af. In a FAANG interview they will NEVER let you use the internal js methods (reduce/sort etc) because the time complexity is huge in those methods. For loops / standard loops in big companies are the only way to go, junior or seniors.
Seems like a really good structure to use here would be a trie.
I agree.
It can be noted for up and coming Devs not all interviews are like this. Watching these can seem very daunting, most of them are very simple and they are looking for someone who would fit in well within a team.
oh thank GOd because that was terrifyingggg!!! to be honest im
just at the beggining of my career..just graduated from a bootcamp so..its too much for me definitely but I enjoyed it a lot! an d learned a lot
You guys are highly professional
Sophie killed it!
As a Senior Software Engineer myself, I felt like the interviewee is lacking some fundamentals and confidence to be hired to a Senior position. Not asking enough questions to clarify the scope of the problem is a big issue in my opinion and the complexity analysis was most of the times incorrect, when dealing with strings you always should consider the length of the words when analyzing the complexity, here are my points:
The trivial solution with just an ".includes()" would not be O(n) as he said, it would be O(n*m) with n being number of words and m being the length of the strings.
The regex complexity in this case is also bound by the length of the string.
Around 24:30 where she asks about the big O complexity, even after the optimizations, the complexity is still O(n*m), even if the best case is O(1), because that is how you do big O complexity analysis.
I would be leaning more towards mid-level seniority for this interview.
That was awesome thanks so much!
I'm surprised how much she helped him. It was like hand holding him to the answer.
Super beneficial to see the interview and communication process
Honestly, interviewing is a blade you need to keep very sharp. It's a skill that is overlooked, often times costing you the job. Most important details after technical boils down to one thing: did, I like the person?
Wow. This channel is amazing. Thanks for bringing such interviews. I am a software engineer myself with 3+ years of experience. This video is helping my in upskilling.
You're welcome!
33:34 she’s trying to get him to generate every permutation of wildcard for each word, then store that matching word as the solution. He should be asking how to match both cat and car to ca*.
Thanks for doing this I really appreciate that
Very helpful and precise. Thanks for sharing.
I eenjoyed every bit of this video..aweesome
Thank you! There's a lack of senior engineer interview prep on TH-cam.
This is such a good video
20:00 isn't it o(n^m)? where n - num of strings in dict; m - num of chars in a string (cuz of replaceAll)?
come on regular expression look , every time you have a character like a star or a dot you look on the second position if it’s a you look for ace in the array so you can search it that way and you can make very fast search with it with a method so you start to searches or you can search backwards or you can search like for characters with the specific amount of positions of characters so free for example, and every vent has small characters in free will be excluded.
In the specific test, it will be faster to search for the “t” on the end of the three letters, the search will be extremely fast.
i would have aced it but the follow up (multiples wildcard) question had me. For that, I was thinking toward binary search
really helped me in deepening the javascript language 😁
my thought (without really looking into it) is to just replace the * with the char at the same index in the word and then compare...seems like it would be fast ish?
31:58 wouldn't that be O(n) not O(1)? In the case of "*at" I'd assume in the worst case you'd have to iterate through the whole array of letters to find a match. Or is it O(1) b/c you're converting the word to a dictionary, initially?
Tomorrow is my first time interview as mid senior software engineer. This video reduce 90% of my nervousness. It solved the structure 'how the interview will go on'. So I can prepare for each steps of the structure.
Thank you
I was actually sweating for this guy when he started the class like a regular function, he later removed the parentheses and I was able to breathe again 😅
I could only make it through 22 minutes in due to time constraints, but I thought he should sort the string array in the setup with an O(n*lg(n)) sort complexity in the setup and then use binary search for an optimized search mechanism for O(lg(n)) search complexity. Wild cards ... didn't recall if they said the wildcard represented 0 or more characters... I don't know about that... I'll finish the video later.
i loved it and i hope to see more content like this
What they are trying to come up with on the coding interview is basically very similar to a Patricia Tree, which ethereum uses in a differente way in its block chain.
Enjoyed watching how others interview candidates. I also use a very conversational style and iterative approach when conducting coding interviews. Great job and thanks for sharing.
------------------------
Improved Approach to Support Wildcard Character(s):
------------------------
The space complexity for the approach taken to support the wildcard character(s) was still larger than it had to be. By creating every possible variation of each word with a wildcard character, the space complexity was O(n * k) where n is number of words in the array and k is the character length of each word. This increases exponentially if creating every combination of wildcard characters for every character position and as the word length increases.
--------
Example:
--------
['cat'] -> ['cat', '*at', 'c*t', 'ca*', '**t', 'c**', '***']
Increasing the array isn't necessary. This could have been reduced to O(1) (or constant space complexity) with the following approach:
- While looping through the array of words, update the current word to contain the wildcard character in the same index positions found in the input value.
- Then, return true if the modified current word equals the input value.
Here's a version of the code to better illustrate:
playcode.io/1462862
agreed with some other people. you should run from these types of interviews - teams that think this is a good way to gauge a good fit usually speaks to the personality of the team. if you want to work with a group of people who have good soft skills and are enjoyable to work with, don't interview for companies who are obsessed with finding the best technical expert. these interviews filter for a very specific type of person.
It's really insane how it filters for a mono culture and isn't representative of much given how bad the coding environment is and forced the situation is.
Ive worked with so many great coders who perform poorly in these interviews.
This video is very educational and especially Sophie is very talent. Unfortunitely, she did not see the potential power of Dan. She values Dan's skill, coding behavior, etc exactly. But in my poor opinion, it seems like Dan is a little nervous and he does not have any experinece to have this kind of technical interview before. If he puts something more a little, he will be a greate engineer.
Seems like you can just interact through each letter in your dictionary and check that the input words letters match. So word one character one would check if the first character in the input word matched. Then just keep doing that.
I LOVE THIS SERIES!!!! :) Thanks Don
I made a game for a client before and it has 10 mil downloads now, all of this would not happen if I had this kind of technical interview with him, because I create solution, not solve random puzzle as a time-based challenge.
To think that my 10 years of experience can be defined in a 30-min puzzle challenge (which I'm very bad at), is crazy.
When I interview people as a lead, I prefer task-oriented interview, that I will give you a real world task and a day to complete it, then we will review together. I believe this helps me understand the interviewee better.
NIce one. enjoyed watching
In c++, we can use trie and solve this problem is O(Len*26) .. right ??
This was a great interview!
As a senior software engineer: if I was going to interview someone, I would never waste my time on a programming problem like this. I’d rather have the candidate walk me through how they would solve it verbally.
Yea it makes sense because it shows if you really know what you're doing and have good communication skills
The issues is that this process wasn't created by software engineers, it was created by recruiters and coding-interview-software sales people.
This is amazing video with a lot of great helpful works very you.
Never seen an interviewer for a code interview being so nice and understanding. Can you guys try to do one but this time with someone that is the total opposite of that? Meaning, pushy, judgmental, passive aggressive, I mean the whole "I'm a superstar programmer and everything you do is shit to me". Cause this is the real tough one to overcome.
Dan needs to discover styled components for react native - really fills a lot of the gaps with the mobile styling issues he talks about
Dan made a mistake by converting from a Set to a keyed object -- the set actually does exactly what he was achieving (deuping) by keying the array; it's basically what sets are for.
IMO the actual answer to this would be to (in the constructor) loop through the array, then loop twice through the length of the word, and replace both i & j position letters with an asterisk, then let it automatically remove dupes using the set. Then check against this in the main function - it basically caches every asterisk permutation
I guess trees are the best method if doing something more complex, but the above "Mega Dictionary" approach is pretty fast still.
What do you guys think?
What is "isIntdict" function purpose? Setup seems to create a dictionary but what is Intdict? This interview seems easy and could be more simplified, he got any entire hour to get it right and able to debug.
Bruh I'm a mid level native dev myself and i gotta say finding the most efficient solution to problems it's very challenging i can whip up o(n^2) triple loop solutions decently quick but it can take me a hours to refactor into o(n)
Honestly I've been working as a frontend dev for a couple of years and honestly yet to encounter such task that will require me to even care about complexities. If it happens in frontend it's likely that API needs redesign 😅
@@blessedpigeon6304 TRUTH. These front-end algo/data structure questions are unnecessarily useless. IMO.
@@mrchedda i mean these are needed in case your BE guys are so bad frontend guys will have to explain stuff to them, which happened to me before lmao
Blessed pigeon that’s the issue. Should be smart server, dumb client. All the complex stuff the backend should be doing shouldn’t have a front-end fallback. Too expensive and resource heavy for the slowest/weakest user devices. That’s a recipe for terrible user experience.
I'm a mid level backend dev and what I can say about the issue is that it seems completely pointless to me to have to know complex implementations of algorithms of the top of your head. Understanding complexity and Big O notation is critical, but some algorithms are complex and take a few hours to understand and implement correctly. In almost every case there's tons of online discussion and reference material. Most coding that you do, you either look up online discussions and figure out how to adjust it for what you need, or you look up official online documentation, or you reference your own previous code.
Why should it be any different with algorithms ? I understand the interviewer's need to asses whether you understand the concept of algorithmic complexity as such, because it is, as I said, critically important, but having to know entire implementations for an interview to me just seems like an equivalent of a school test where you prepare for it for a week and a week later don't know half the stuff. Especially when most functionalities that could need this level of optimization are already implemented by frameworks and libraries that are used by everyone. In most cases it's way more critical for backend optimization to understand SQL and, even if you're using a framework such as Django or .NET, being able to look at the SQL generated from queries written in Python or C# and understand whether or not they can be improved.
As far as interviews go, this was a good one but I have to say from my experience, it kind of is a hit or miss for what interviewer you get. Some are nice, some are okay.
well, I stop interview senior engineer with algo for long because mostly, they wont use much algo on the job. In code pair, i always start off with design problem and then let candidate code on solution to test their OOP skills. What i am interested in is if the candidate have good reasoning and trade off on using such design patterns. I dont see how algo help in day to day job. Most senior focus on design solution, network design, architecture. I dont want to hire senior who constantly revise uni lectures or books on algo
You are correct and any mid to high level software engineer understand this. Sadly the hiring process at many large companies is not driven by the software engineers, rather by recruiters and infected by coding-interview-software sales/marketing.
2 years later this interview is for entry level software engineers not seniors