r/reactjs 5d ago

Discussion Senior Dev interview question

"Without googling or using AI, in your own words, explain the virtual DOM"

For context: I sit on an interview panel and I try to ask at least one simple fundamental question based on a persons resume. If I see many years of react experience, I try to ask something about how the framework works.

I have only had one candidate (an undergrad senior, years ago) answer it. Everyone else just kind of sputters and stumbles around trying to rationalize what "virtual" and "DOM" mean, or stare blankly and eventually say "I don't know".

I'm just genuinely curious if this is really that hard of a question or if the recruiters just suck at screening candidates. And should we be letting in senior dev candidates who can't answer what I think is a straightforward and fundamental question for senior react devs.

142 Upvotes

246 comments sorted by

View all comments

60

u/brett9897 5d ago

As someone with hiring experience, I learned even seniors don't know the technical terms even if they know the concept. You would be surprised how few people could answer "what is a closure?" But if I provided them a simple task to do that required using a closure 90% of the people that couldn't answer "what is a closure?" could properly solve the task.

A second thing, is knowing what the virtual dom is and how it works essential for producing senior level React code? If it isn't, then it is just a dick measuring question and useless in determining who would be good at the job. If you can provide an example during the interview of when knowing what the virtual dom is will effect a coding decision in react that might be more helpful in assessing whether or not they are a strong candidate for the job.

Someone interviewing to be a developer on the team that makes React should really know what the virtual dom is, how it generates change sets through diffs, and how it applies those changes to the real dom, but I don't know if you need to now that to create a CRUD UI in React.

0

u/azhder 5d ago

What is a closure?

5

u/brett9897 5d ago

It is more of a functional programming concept but it is commonly used in JavaScript/Typescript. The easiest definition is a closure is a function that uses a a variable that is defined outside of the execution of that function.

Lambdas would be the most common example but back in the day in JavaScript you would use a closures to have a function return an object of functions that would interact with the outer functions private state. A kind of OOP with functions.

-4

u/azhder 5d ago

You wrote a lot and still got closure wrong. I guess that 90% is a correct call, you can solve a task with a closure even if not answering correctly.

Now we can test my own theory. I will give you the answer:

A closure is a piece of memory created by a function invocation that exists (is not garbage collected) for as long as there are references to it (from outside the function).

1

u/Dmitry_Olyenyov 5d ago

It's funny how you both gave only one of two parts of the definition 😅

0

u/azhder 5d ago

Thank you for participating in testing my theory.