A few days ago, either someone tweeted or someone shared with me an interesting document: Front-end Developer Interview Questions. This document (well, Git repo really) is a large set of questions that could be appropriate for interviewing someone for the role of a front-end developer. While this was new to me, apparently this document started way back in 2009 (did we even have browsers then?) and has had contributions from quite a few people.
I've recently gone through a few interviews myself. I've discovered that I'm quite bad at it. Like probably some of you, the second someone asks me a question during a job interview I tend to freeze up. If I'm giving a presentation then it typically doesn't really bother me. If I don't know the answer, it is an excellent opportunity to show people what I do when I don't know the answer. (Which, frankly, is more important than rote knowledge imho.) While I'm not interviewing anymore (hello IBM!), it bothered me that I performed badly. It also bothered me that there were quite a few things on this list that I felt I didn't have a firm grasp on. I'm not ashamed to reveal my ignorance to my blog readers. (Not too ashamed.) Here are a few things that I would have struggled with in a job interview. To be clear, for some of these I think I know the answer, but my confidence in sounding intelligent when answering them would have been low.
- What are the limitations when serving XHTML pages?
- Are there any problems with serving pages as application/xhtml+xml?
- How do you serve a page with content in multiple languages?
- What are the different ways to visually hide content (and make it available only for screen readers)?
- Any familiarity with styling SVG?
- What are some of the "gotchas" for writing efficient CSS?
- What's the difference between inline and inline-block?
- Explain how this works in JavaScript (Yes, I admit this. I think I know it, but I don't think I have a 100% lock down on the answer here and I want a 100% lock down.)
- AMD vs. CommonJS?
- What's the difference between host objects and native objects?
So here's an idea. A challenge - for myself really - but open to my readers. Would it be useful to go through all of the questions, a few at a time, and write up my blog entries on what my answer would be? I don't think this is something I could do quickly, I'm thinking this could be a year long project, and heck, maybe I'll give up, but there are topics on that list that I want a firmer understanding of and I think my readers could help flesh out my own misunderstandings.
Photo credit: Question mark by ed_needs_a_bicycle
Archived Comments
You're giving us homework now... no fair.
Seriously though... those would knock me off my seat if I was interviewing too... especially if I wasn't able to GOOGLE to confirm my thoughts.
Some interesting questions there, sounds like a good series... I'd be interested in even the questions you didn't put on this list.
My thinking is to do ALL of them, not just the ones I don't know... and trust me - the list above is a *sampling* of what I don't know. :)
I just went through a bunch of interviews with various companies. I can only describe them as Marathons. One company was 5 phone interviews 3 of which were technical, then it would have been a full day of onsite interviews. Another company was 1 phone interview followed by 6 onsite interviews one right after the other. Then there were mini projects I had to do in prep for onsites. I'm glad I got hired when I did cause I was almost burnt out going through the process and I couldn't imagine starting over again with another company.
I think that's an absolute brilliant idea. We all have our strengths and weaknesses. One question might be a no brainer to me, but completely befuddle you (and vice versa). Why not level the playing field?!
To me the best interview is done when pair programing with the candidate. I typically use the js-assessment repo from Rebecca Murphey https://github.com/rmurphey...
And I focus on having the candidate speak through what he/she is thinking in order to determine the level of knowledge in JS at least.