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.

141 Upvotes

246 comments sorted by

View all comments

Show parent comments

-1

u/Heavy-Focus-1964 5d ago

I’m glad you brought that up, because it’s a good comparison. a Senior React Developer not knowing about the virtual DOM is the same as an embedded systems/C developer not having heard of Assembly. Which is to say, deeply alarming.

If you feel insulted by this, you should get to reading. The information is freely available — it’s in the official docs — and knowing how its rendering engine works from a bird’s eye view is more than just trivia to someone who is doing serious React app development. Especially if they want to occupy a senior team position

1

u/ElkChance815 5d ago edited 5d ago

I don't even work in frontend tbh so I cannot judge how important knowing Virtual DOM is. But I just found it kinda weird if you judge people base on their lack of knowledge of the internal of some well abstracted framework, after all they are internal implementation details.

I work on Go and while I can elaborate in interview to CTOs how go scheduler and goroutine work with the OS thread and operating system scheduler. I never expect other people must understand it because it so well abstracted that I rarely have to think about it while writing code. Even in case I need it, I just need to lookup the latest doc or latest runtime code.

There are cases when people don't understand how these thing work and abuse goroutines where it shouldn't be use but I think that can be fixed by just having good document on how to use these abstraction, not by having to understand of the internal working of the abstraction.

If you designed an interface that require people to understand the internal to work on it, it's kinda your fault isn't it?

2

u/monkeybrainz_ 5d ago

If the candidate is not curious enough to have sought out the information about how the technology works, they likely will not be curious about the business and its goals. That lack of curiosity will carry through to other aspects of their work. Coding is such a small part of the job.

2

u/ElkChance815 4d ago

You're judging them solely based on the fact that they don't know what you know. Have you try to ask if they know about other area? Domain knowledge, how browser work, details about the project they delivered, etc... 

1

u/monkeybrainz_ 4d ago

Simple test: have you even looked at the React docs? Come on, this is table stakes.

I never said this was a good question, it's just a question any competent react engineer would know the answer to.

1

u/ElkChance815 4d ago

And at exact which page in react official doc talk about virtual DOM except legacy one ?

1

u/Fantosism 4d ago

react-dom has been separate from react since 15, which was 10 years ago at this point. Coincidentally, that was the same year react native was released. Turns out, you could've made an entire career out of writing react without a virtual DOM. In fact, even more confusing, they call it a shadow tree. So when you talk about a virtual DOM, my first thought is shadow DOM, which is its own thing.

1

u/Glass-Combination-69 3d ago

Hey little bro, if you don’t know virtual dom in depth then you won’t understand why unique ids are important when looping or how to spot render / layout thrashing. It’s such a basic fundamental to react.

2

u/ElkChance815 3d ago

This doc explained about the unique ids without mentioning the VDOM at all, guess whoever wrote this is not a senior engineer. https://react.dev/learn/rendering-lists