Google Frontend Interview With A Frontend Expert
Вставка
- Опубліковано 6 вер 2024
- In this video, I conduct a mock Google frontend interview with a frontend expert, Conner Ardman, who's also the FrontendExpert course creator and an ex-Facebook software engineer. As a Google Software Engineer, I interviewed dozens of candidates. This is exactly the type of frontend coding interview that you would get at Google or any other big tech company.
Check out the Google Frontend CSS interview that we filmed on Conner's channel: • Frontend CSS Coding In...
AlgoExpert: www.algoexpert...
SystemsExpert: www.systemsexp...
MLExpert: www.algoexpert...
FrontendExpert: www.frontendex...
ProgrammingExpert: www.programmin...
My LinkedIn: / clementmihailescu
My Twitter: / clemmihai
My Instagram: / clement_mihailescu
Prepping for coding interviews or systems design interviews? Practice with hundreds of video explanations of popular interview questions and a full-fledged coding workspace on AlgoExpert - www.algoexpert.io - and use the promo code "clem" for a discount on the platform!
Wanna build the next FrontendExpert? We're hiring course creators to build out new products on AlgoExpert! Learn more and apply here: www.algoexpert.io/jobs
young people trying to sound expert by using Promise all and some very basic JS code examples with document.createElement and append? This isn't even pair with a shorter Frontend Course in 3 weeks. Heaven almighty.
@@somerandomchannel382 u should tell young man how to pick up javascript and what is source code of "doucment.createElement" in c or c++ by chrome or safari
Why not event deligation.
I guess this is what the difference is between an experienced developer and someone like me...
I would have run my code 10 times before writing another function...
my man is writing logics with such confidence...
It's not a real interview Conner is a genius.
@@biggestthreattoyourexistence it’s pretty realistic for candidates that know how to interview well. doesn’t take a “genius” to do this.
My manager will write hundreds of lines of code before testing anything and he gets it 99% correct every time. He’s been doing it for around 8 years and the biggest difference between someone like him and a beginner is that they have a very strong understanding of how they are going to solve the entire problem from the beginning, even complex problems. Lots of beginners try to come up with the steps to a solution as they develop and will get confused because they don’t have a clear understanding of what their final solution should be.
to be fair it was too basic
@@vulcanvulcan2963 thanks for the comment❤😃
Thanks for having me on, it was a lot of fun! 😀
Conner, you are a beast! Great interview example, was super clear! I can learn to communicate ideas loudly from you!
I would console.log at the end of every step to check if data is what I expect, even I know that code should work haha. :D
Great ✌🏻
This is very cool. Great video Conner.
@@brockharris8169 Thanks! Hope you're doing well, it's been a minute 😅
@@arnasjuskevicius4193 Thanks, communicating ideas is definitely something I try to focus on a lot in interviews. And nothing wrong with adding console.log statements in every step. In hindsight, I probably should have logged out the result of each of the transformation functions after writing them. It can be a good sanity check, and it helps make sure you don't lose the interviewer along the way.
This is such a great example of a very confident interview, gotta learn a lot to be more like that.
Because of your youtube interview content, I've bought your algo expert course for a full year. The marketing worked.
The speed in which he did this in is quite impressive. Makes me realize how far I have to go!
Also, the courses are very very good, thanks for creating them. Looking forward to “Mobile expert”!
Me too
This shows how important it is to choose a proper data structure for the problem. Otherwise it would be difficult to navigate the code and understand what is being done.
I have been learning to code for the last month or so but I still don't understand what you mean by a proper data structure for the problem. Can you please explain like I'm 5?
Very true. Fundamentals is always key, frontend or backend. DSA is king. Lots of practice and build lots of things.
Bro can center a div
These interviews are super realistic of what its like to be a FE dev..
I always code using a web based IDE, implement features with another dev looking over my shoulder, and explain every decision I make as I make them out loud.
😂 right? Interviewing is a completely different skillset. Imagine hiring a chef solely based on his ability to sharpen knives.
presenting your skills is a part of this job, unless you want to be a underpaid specialist
@@jakubnowak7091 Presenting your solution is only a part of interviewing though, the more problematic part is performing your job while having someone look over your shoulder, that someone being the deciding factor in whether you get the job you want. Without trying to add to stereotypes, I do also think it's fair to say that this is especially bad for people who - on average - tend to be more shy and less skilled in social situations.
@@aufkeinsten7883 many great people have been denied jobs because they are shy when they might have been really good for it, that's just part of the discrimination that goes on in hiring and if we are going to correct for discrimination based on race and gender we must also correct for discrimination based on shyness, disability, and many other things.
This was so so cool and helpful! There are not many frontend interview prep videos, and this is just what I was looking for! Is it okay if I recreate/use the api endpoints to practice this same problem?
Sure. Alternatively, buy FrontendExpert and get access to way more problems! 💪 frontendexpert.io
@@clem Looking into it right now :) Did have a question, does it provide the env like you've shown in the video? I mean will I be able to run and test my code for promises and array problems etc.?
@@andreigugeanu Yes, this happens when you call an API from another domain. I don't think there's anything you can do from the front end to solve it. I'm not sure though and maybe others could add to it.
@@VishakhasEngineeredPlans yup! You are seeing them use the platform in the video. It would be the same.
As a primarily back end dev, this was eye opening! Thanks buddy
Exactly what I thought, I 100% agree, it is just beautiful and fulfills the picture.
Hey CoderGrammer, what are your usual tasks as a backend dev? What are the types of projects you work on?
Hey KeemKorn,
Well mainly it involves quite a lot of variety really: estimating, designing, a lot of collaboration with others in the organisation (so good communication really helps), wiring code of coarse, reviewing code, sometimes dealing with performance and build issues, pushing back on design decisions which could have a negative technical impact etc.
Great demonstration! As both interviewer and interviewee, I learned a lot from this video, thanks.
Yo Clem, I just want to say you and Conner are great teachers. You guys have explained concepts that were “scary” and now they’re not.
I completely understand the logic and it doesn't seem too hard, but it would take me half a day to actually get the right logic and code it up like he did hahahah
This is outstanding. Using plain html, css and javascript for wonderful page rendering
Pretty basics. Would be better off using factories instead and create functions for the API calls, make it abstract etc... Nothing special.
Not the React way unfortunately. 12:30
Idk why I feel like watching these just teaches me more things Iv never seen or tried before you can always learn from others and try it yourself
Interesting approach with building the DOM using DOM. My first intuition was to create a template literal and just call functions inside of it. Kind of like templating language.
Then you have to worry about XSS
@@bleulejour forget all that and use Svelte?
This
I enjoy these, great job. But, I’m old and often can’t see much of the text. Is there any way you can zoom in or use larger fonts in the future so those of us who started coding on Apple II’s can read?
I use youtube in browser so i can zoom in
In quality 360p or 480p you cannot read the texts properly, even on a monitor. You should try it with min. 720p.
I don't want to sound cocky and all, but this test is not even remotely to the level I expect for a Google interview. It's pretty basic, covering just a few entry level JavaScript concepts like fetch, async/await, and promise.all. Seems like something anyone who's been into JavaScript for a few weeks could handle.
I've built and published pretty complex libraries over the years, and I still don't think I'd have much chance at a big tech company, yet I find this challenge almost laughable.
Given that this test doesn't pose much of a challenge to any frontend developer, it can't what big companies are asking for.
If it's so easy, why aren't you making $500k+ at big tech?
@@YeetYeetYe If you doubt my statement that this test is very easy, I can say that you know nothing about web development. And by your comment, I can also say that you can't read either, because my comment already answers your question.
My question is:
Do you have to work on designing part aswell as a front end web developer?
when I interviewed for Google FE, they asked me all algo questions? I didn't do anything like this. It was like dfs, bfs, rate limiter, compose pipe, string algos, trie, tree
Thank you Clement 💓💓💓. Was waiting for it for so long....
What I was lacking from this interview was usage of even more modern API:s like Map over usage of just an object and classes to structure code a bit more. But I guess first question should be, what browsers am I targeting, from there you can evaluate what API:s to use😊
Modern frameworks has tools like Babel when building your app, so you don't really need to worry about modern syntax.
@@diegoalvarez437 Uhm... Not correct, babel can transform your code to an earlier version of ES if needed, but it won't convert things like an object into a Map. Those operate differently.
@@Krilllind you're right I misunderstood your text.
dam dude u pro or something?
@@bigbob2364 Worked with tech for over six years as fullstack developer, focusing on web frontends and dotnet backend. So not a pro yet, but on my way☕
Thinking about the solutions is one thing. But properly articulating it with a coherent accuracy is without a doubt a mark of someone with confidence and experience.
hasOwnProperty checks the entire prototype chain so its not recommended to use it over plain object indexing. So already a mark down for that
The interviewer is really intense.. Kinda stresses me out..
But it was very interesting to watch, great content, challenges and I learned something new so that's always worth celebrating!
Thank you for this Terrific video! I needed exactly this to practice my interview questions! Great job to you both!
@Nikola B. Ethics and problem-solving are two different things, perhaps you should learn the difference first. On my own, I am learning how to solve problems. In fact, I have been doing so at the different companies I have worked for several years. I would like to have a fighting chance by learning how to pass certain interview questions and this right here demonstrates that. If you find this unethical, then you should'nt be here. Have a Blessed day!
@Nikola B. Oufff This right here, what you have said "Can you at least treat me as a fellow human being and spit to my face without pretending you're kind?" why would I spit on your face when you were the one to come at me about ethics? I did not ask for cheat codes, so please do NOT imply that or, simply assume so. I am merely learning here as do everyone else who has positively commented on here.
So yes, thank you, I will feed the right wolf that I choose.
If you choose what I have said to be poison, then so be it. Your choice.
I do wish more companies did these kinds of interviews because it does test what is actually the part of the job of a FE dev.... unlike more algorithmic heavy interviews companies do.... That said, I highly doubt these big companies ask for such simple tests... This was pretty basic
was this really simple?What questions are asked in general?
Exactly, it's a much better way of seeing the sort of code someone writes day to day, rather than some hyper optimized solution to a hypothetical problem that they'll never have to deal with in the real world. Obviously if you hiring for a systems position then this basic front end manipulation won't cut it.
who uses native DOM instead of React/Angular/Vue? I don't realize why Google asks about DOM manipulations.
@@aleksandrzhilkin4800 I think it can show what is the level of your expertise and what is happening inside all Frameworks rendering DOM
@@aleksandrzhilkin4800it's because they don't use frameworks for best performance. even worse they are using web assembly and canvas rendering
That's just very cool, a few times ago I couldn't explain how works with the DOM. It's just really simple and very useful.
Can someone explain why he didn't use an HTML template strings and opted for creating javascript elements? I must be missing something, because that's what I would have gone for.
It's all about performance
I don’t know. I don’t think this is a scenario where the difference in performance between the two approaches matters as much at all. I would consider that a premature optimization. What is probably much more important is readability and maintainability. But I could be wrong in this case, as I haven’t actually done the benchmarks. But I can’t imagine that parsing a template string inside the browser and converting it to the objects takes a perceptible difference in time
@@Moamal-Alaa I just actually looked this up and apparently template literal strings are faster in addition having the other benefits
Really cool, detailed explanation and good enough speed.
In fact, learning the font-end also requires learning the back-end
after 4 years working in the industry i fully understood everything and would have probably coded it the same way, however, my man is very bold not testing functions throughout i would have tested each one checking the data with not as much confidence as him!
you can call prototype functions either way. both will work. that's the beauty of it
That was, surprisingly for what I expected from Google interviews, a quite easy challenge. I would have done the code similarly. Though I'm not confident I would answer the "how would you clean up the code" as well as he did.
if it was harder how would you complete it in 45m. interviews are about communication & problem solving, you'd be surprised how many people can't do this as calmy
@@jww0007 A harder challenge not necessarily means that it takes longer to complete. Believe me, I've had much more difficult live coding challenges from companies half as big as Google.
No way the real interviews would have something this basic.
@@theLowestPointInMyLife NoT EvERY OnE iS As SkiLlEd LIkE YoU,ThIS Is MoCK INtErVIew So US ThE UnSkILlED PLeBs CaN LeArN ALoNG ThE Way,ok boss?
hey! I am a junior java developer now fo several month and have 1 year BootCamp behind as well (backend java) - I think I now understand what "front-end" development means! And it is beautiful! It fulfills the picture, it is just soooo good :) gl with everything :))
instead of creating every element on the page, can we use template and fill it's fields with our info? It template tag not recommended now?
Apart from the API building round, my Front End interview for Google did not have any FE specific round.
41 min. If you want to order the categories, you have to assign each category as a key then when finished, iterate through the keys and sort them in an array then every time you select, select from the array and use the value to point to the key in the object. Once you get that, you just iterate through that set within the category. I just had to do this myself.
Just incase anyone is still watching this video 2 years later, there are no frontend live coding tests in 2024 that will have this amount of complexity in the role. Even for senior roles.
@@markwillis1045 Relevant links to what? I am mainly speaking anecdotally as someone who has been interviewing for intermediate/senior roles for a couple of months. They generally don't get to complex with the questions.
That was really smooth. STRONG HIRE!!
Agree 💯%
Thank you for making this video. This is just awesome and super helpful for my upcoming interview.
Some i learned from this video is promise all and replace function, thank you so much for new insight, oh and you miss the progress bar, it was mentioned in the early interview but yeah the code still amazing to me
I present to you Conner, also known as FrontendChad. 💪😎 Check out the CSS interview that we did on Conner's channel! ua-cam.com/video/ak4p7sdKJQw/v-deo.html
@clemnt please answer me
Juat got rejected from Google xD
Lol
As a backend engineer, I feel like it’ll be more interesting to watch a Frontend interview! 👀 instead of testing by running through manual test cases, I’m guessing the interviewer will just get distressed when the browser doesn’t turn pink like you told it to???
Jk, I know FE is way more complex than that 😀 thanks for sharing! Exited to learn more
😅
Please bring more video like this one.
wow i learned so much after almost one hour video :O I hope theres more like this videos on your channel D:
Loved this video! I am new to coding and have never seen frontend, so this is was real fun :)
Is this interview just for showing the steps of interview? This questions seems entry level.
Clement are you still rocking the ultra-minimalist apartment? I see a big monitor back there... I'm getting worried 😅
You should try to do a format where you have subscribers attempting real coding interviews :)
Am I the only one who got the feeling from the beginning that the guy was like... "Can you shut up already? Because I will do it easily..." CONFIDENCE IS THE KEY!
Once again, a very good video by Clement.
Why do we need to await inside the fetchAndAppendQuestions function? Isn't it enough we used await once during fetch?
The problem with choosing any random category and adding a question into it (for the random complexity question) is that you can't control the number of questions going into one category and as I see on the screen, if the count of random categories was 4, all the questions were almost equally divided into each of the 4 categories. Thoughts?
randomize your array of questions first and then come the first questions.length/4 questions into the first category and so on (assuming you have 4 categories. First thing that pops into my mind atleast.
Great video. Never thought UI interviews are this easy. One suggestion though: He should have used higher ordered functions to eliminate duplicate functions.
Isn't that what refactoring is for.
I am just a plain beginner as a developer and I get so afraid of interviews and especially coding interviews
Any tips and advice to not get be frustrated and super nervous
I swear I won’t be able to say 1+1= 2 in an interview without thinking 20 times
It's an interesting interview :) So amazing, I hope that here I live frontend engineer interviews would be going like you guys do here. Thank you for the great video!
I've heard some stories where a company had the candidates build things with pasta for the tech interview in a small groups, there are many insane things when hiring in tech
But... can he center a div?
Awesome content. Would Google interviewers allow us to use Angular instead of vanilla for implementation questions?
Yes, had it last year, i use React, even the interviewer don't know React. Good thing is you can explain it well how things differ and how things work. Just there's an input, state, and output.
I did this with react and my interviewer failed me and said 'did well, seems to only know react'. So, do this at your own peril
Is it wrong to use question mark conditionals in this type of interview? Also I’m assuming using a library like Axios is out of the question for this type of interview?
This is fantastic, thank you both
you can see why libraries like React/Vue are making life much easier and organized.
That's the best FE interview format!
can use reduce function for more clean code
testing the createcategory :)
Awsome, I liked a lot this interview. I hope in a couple of years try to apply to one of this roles. Thank you so much
Nice function building and logics, could use this to improve mine ^^. How many years of exp did he have?
Yeah, fetch it like network is reliable! YOLO, no errors, no throws.
For me the big takeaway is that for every new feature request, he is modifying existing working code to implement it.
The moment he realised his platform didn't work properly... ouch
Wouldn’t this be way easier if you just used template literal for rendering the html? It would be a lot more readable IMO.
it is! also using array reduce to categorize questions would've made it more clean.
@@abdellatiflabreche9518 can you give an example?
ok, im gonna stop watching this and challenge myself to do exactly same thing. cheers
Why await when returning a promise?😮
a simple page with 3 functions, "fist step is to use react". way to go
Was Waiting for this
wow just speechless
@ConnerArdman you said you use a Map but instead you used a simple Object, would be nice to see how the implementation would look like using a Map. Also, using the for...of loop would be faster than the forEach loop.
I just started to learn JS and didn’t understand much, it sounded like a high magic. Hope one day I will be able to understand that😂
Just keep at it and you'll eventually be an expert like this guy:)
as long as you keep trying youll only get better. Even if you dont understand whats going on with videos like this, its still a good way to see how others work through something
The Google Backend interview is going to be interesting !!!!
My interview to Google for a front-end engineer position was anything but this. I was finding a token in an infinite string and bfs-ing a bst, also, designing a spam filter for a email service. And, of course, I didn't pass.
wtf
now that's some challenging stuff I'd expect in a google interview.
@@sanjeevdandin8231 sure, it's Google after all. There's this joke: on the interview, write a compiler in 30 mins, in the daily life, move that button 2px to the left.
I'm afraid, this video might set the wrong expectations. My point is, if one is having an interview for a front-end position, they should expect all sorts of questions, not only FE-related.
@@idemchenko-js true that
If only this is the kind of frontend interviews I get, I would confidently ace it
i don't think the current trend uses this sort of interview technique, as major companies are biased towards candidates' React, Vue, or angular knowledge. I can consider this technique for interns or fresh graduates
Why did he choose an object for the questionsByCategory and not an array?
This was a good confirmation of my love for template literals. I'd much rather return template literals in most cases than creating elements with js methods.
give me return ``; over const div = document.createElement('div'); div.classList.add('category'); return div; any day
Can you please do the same with backend interview (java, spring, ...), thanks a lot
Oo god I am worried now
I just finished HTML5 and UA-cam recommended this to me.
first clement interview i feel i could do. but it would take me like 2 to 3 hours.
Always do big companies test frontend developers practically?
I learned a lot from this. Thank you!
Please bring an iOS Software Engineer mock interview.
Why weren't template literals used? That createCategory function is unreadable.
Why would you call the title as Google Interview while it's being not an actual Google Interview.
Do Google actually have front specific questions? Unlike FB I was told that all engineers at Google have to go through the same SWE interview process
When I was at Google, software engineers who went through the Frontend-specific interview track at Google typically got 2 or 3 algorithm-style interviews and 2 frontend-specific interviews.
i doubt this is a 'real' ineterview question regarding the level of difficulty. This was basic af...
it's for junior dev?
I'm definitely not the best front-end webdeveloper, I'd say average to below average, but I could probably handle it
Very nice, helpful and motivating. Thank you!
wish I had your brain. I cant even find a job as a frontend dev.
I think when you count the correct counter missing partially correct count in count I am not sure 🤔 I think I might be wrong
Great stuff! Us "Frontenders" usually don't get the love we deserve 😀
Also, was it specified to use old-school method of creating elements for this task? Because if not he could've just copied the HTML code from the instructions inside template literals and appended to the wrapper using innerHTML += and finished this interview with a lot more spare time.
This would clean up the code a lot and represent modern framework style of working and in my humble opinion make the case for a stronger hire.
Nevertheless I like how he was able to organize his code on the fly and get a successful render on first attempt each time. Promise.all was also a great touch there 👌🏼
I thought the same when I started to see the interview, I thought like ok he'll write innerHTML and will create all of the HTML in there
innerHtml isnt considered good practice due to the security risks it poses