[HN Gopher] Explain the first 10 lines of Twitter's source code ... ___________________________________________________________________ Explain the first 10 lines of Twitter's source code to me Author : ohjeez Score : 126 points Date : 2022-02-25 16:11 UTC (6 hours ago) (HTM) web link (css-tricks.com) (TXT) w3m dump (css-tricks.com) | paxys wrote: | I was going to say what's the point of asking such basic, obvious | questions, but reading the replies in this thread - yikes! If you | cannot answer at least 7-8 of the 10 questions in under a minute, | you have no business being a web developer, forget calling | yourself a "senior" one. If I was an interviewer in this | situation, I'd be perfectly happy with a candidate who thinks | they are too good for this walking away and taking their | framework-of-the-month skills elsewhere. | jenscow wrote: | Such responses actually highlight the need for us to do basic | checks like this. | missblit wrote: | So... how did I do? ;) | | --- | | <!DOCTYPE html> is a magic string that indicates the document | should be parsed as an HTML5 document (possibly avoiding quirks | mode too? I don't remember what triggers that). | | "Doctype" comes from the XML concept, and XHTML documents may | have a different doctype. | | <html> is the document's root element. It's supposed to be there | but the browser will create it if you leave it off. | | ltr means the document direction is left to right. direction here | refers to the direction of lines (e.g. in English lines go left | to right, in Arabic lines go right to left). There's another | value that influences writing mode too below the document level, | but I forget what it's called. | | Browser implementers and webmasters have to be careful with a non | RTL direction; as it changes the scrolling element origin, the | browser will have to deal with logical vs physical coordinates, | and scrollX may go negative. I believe scrollX was reconciled | across the different browsers fairly recently. | | The meta tags tell you metadata about the document. I believe | they're supposed to go in the head section, but again the browser | will create that for you if you don't. | | lang just tells you the language of the page. I'm not familiar | with what this is used for, but you could imagine a search engine | using it for one thing (e.g. Google's "display only results in | English"). | | The two letter country code comes from some standard I don't | remember the name of. Also used in TLDs. Watch out for easy to | confuse countries like cn, ca. Some websites like to use the | trendy .io TLD, but I heard rumors it wasn't run very well. | | charset="utf-8" means the document's bytes should be treated as | unicode. Note that this meta tag should occur in the first 1024 | bytes of the document or browsers may not notice it. Without | specifying the charset the browser will likely fall back to... I | think latin1? | | Anyway I read once that browsers don't get too fancy with the | encoding detection on purpose, to avoid people relying on | unreliable heuristics. | | Another interesting point is that Chrome can load utf-8 documents | as utf-8 without a metatag if it's a file:// URL. I guess | conceptually this is because local files can't specify the | encoding in HTTP headers or something? | | Viewport specifies the responsive sizing behavior. This is | described in the CSS Device Adaptation Level 3 spec; but the | section on actually parsing this tag is pretty gnarly. If I | remember right it was a non-normative section and had a few weird | corners that were likely left over from matching browser | implementation quirks. | | Anyway you need the viewport for responsive viewport sizing. 99% | of the time you can just copy-paste the usual string and don't | need to get fancy with custom values or anything. There's also a | newer way to specify the viewport behavior through CSS (and | indeed Chrome basically converts the meta tag to this | internally), but it didn't really work right last time I tried | it. | | "og:" is from some semantic web standard. I never learned the | details, but basically it tells crawlers some basic information | about the page's contents. | | For the remaining lines; presumably Safari recognize some custom | meta tags to change Apple device theming. The "origin-trial" may | refer to Chrome (or Safari?) origin-trials, where webpages can | opt into (or sometimes out of) experimental browser behavior. | | Line 10 is CSS. Presumably there was a <style> tag off the right | end of the screenshot on line 9. | | Interesting point about CSS or JS embedded in HTML: | | This actually changes the parser's language from HTML parsing to | CSS or JS parsing on the fly. But with a special rule to look for | the end tag and switch back to HTML. This is why you'll see | people break up the string "<script/>" if they have to embed it | in JS embedded in HTML. | | But my favorite is the <plaintext> tag which switches the parser | to... plaintext. Unlike CSS or JS there is no special escape- | hatch and it's just plaintext for the rest of the document. | | Speaking of embedded languages: SVGs have a title element but it | isn't the document's title element. Poorly written browsers or | crawlers could confuse the SVG title with the document title if | they don't have an understanding of tag namespaces (another relic | from XML perhaps?!) | tjungblut wrote: | > Another interesting point is that Chrome can load utf-8 | documents as utf-8 without a metatag if it's a file:// URL. I | guess conceptually this is because local files can't specify | the encoding in HTTP headers or something? | | You can guess the encoding after reading a few bytes from the | request. Checkout universalchardet from Mozilla or the | equivalent Java port: | https://github.com/albfernandez/juniversalchardet | | By the time the meta tag is parsed, you almost always know the | right encoding already. | missblit wrote: | So actually reading the post now: | | > People even used to use * { margin: 0 } which is totally | overkill and not great for performance. | | Wait why would that be bad for performance? Zero margins should | be just as fast as 8px margins, and if you have this style in | the head section it's not like the browser will have to | relayout a bunch of stuff. | enkrs wrote: | The argument on performance comes from the idea that | theoretically the rules are applied in order. So the browser | has built in stylesheet of 8px, and after that a margin of 0 | is calculated. (And after that, some more specific margin in | the stylesheet is recalculated) | | Basically * { margin: anything } adds one extra calculation | to each element in the page. | | Not sure if the performace hit is measurable tough, knowing | how much optimization goes into browser engines. | csnover wrote: | The universal selector has the potential to be slower than | other selectors in naive CSS engines because CSS works by | matching selectors from the right to the left. A rule like | `.baz *` matches _every element_ on the page (vs something | like `.baz .foo` which only matches elements with `.foo`). | The match is only rejected after walking up the DOM tree to | the root node to see if any parent elements have the `.baz` | class or not. | | In the case of a single universal selector, there is no | performance issue, the selector just matches every element, | which is fine. | | In modern engines, there is also no performance issue, they | JIT compile selectors[0] and do other stuff to be fast. Even | old engines wouldn't really have a performance issue in | practice unless you were doing something else bad, like | having extremely deep DOM trees with extremely large numbers | of elements. | | [0] https://webkit.org/blog/3271/webkit-css-selector-jit- | compile... | ejb999 wrote: | Its interview questions like this that makes me never interview | for a new job. I get jobs when I need them pretty easily, but | usually just through someone who already knows me and/or worked | with me before and skip the silly interview questions like this. | RandallBrown wrote: | What don't you like about this question? | | The author isn't looking for exact right answers and just wants | a discussion about the technology to gauge your skill. | | I enjoy interviews like this. | heavyset_go wrote: | Quizzing on trivia, especially minutia that can be looked up and | fully understood in less than 2 minutes, seems like a waste of | time to me on the interviewer's part. | | I also find it strange to pick apart and quiz on the messy output | of Twitter's frontend frameworks, compilers/transpilers, | minifiers, bundlers, etc. It's akin to feeding a binary or some | bytecode into a decompiler and quizzing on its output. | iratewizard wrote: | The best questions are the simple ones that start a | conversation. That only works if the interviewer is confident | in their ability to read people and competent at their job. | These articles are written by and for people who don't meet | those criteria. | heavyset_go wrote: | I just don't see the value in the questions from the OP. What | if the person being interviewed genuinely doesn't know and | says, "I don't know"? Asking them to then guess what the | markup could mean doesn't really tell you much about their | skills or abilities. It feels like a potential dead end to | me. I think there is better material to review and ask | questions about that actually pertains to the abilities of | the interviewee or the skills needed for the job at hand. | tgsovlerkhgsel wrote: | There's 10 lines. | | If they're applying for a web development role and say "I | don't know" to _all_ of them, it tells me enough about | their skills and abilities to end the interview right | there. | | If they don't know half of the trivia but tell me "this | looks like it probably controls browser feature X", and | they're making a _reasonable_ guess (regardless whether it | is correct or not), that 's a good sign. | | If they don't know something but confidently pretend they | know and spurt bullshit - red flag. I don't want to have to | second-guess everything they say, and have them deliver | something that looks right while being completely wrong. | | If you don't know what that specific prefixed attribute | does, I don't care. If you don't know what a vendor prefix | is in CSS, you haven't written much CSS. | paxys wrote: | Knowing what a <html> tag is is _very_ far from trivia. If | someone fails to answer at least ~7 of 10 questions in this | interview, there 's really no point in continuing on. I'd call | it an excellent filter. | irrational wrote: | Why are lines 10+ not inside of a <style> tag? I wasn't aware you | could put CSS into the document without being in a <style> tag. | | Also, why does the document not have a <head> tag? And, why does | it not have a <title> tag? | | It appears that many things that I thought were normal to put | into an html page are not. | reaperducer wrote: | _It appears that many things that I thought were normal to put | into an html page are not._ | | Those are normal things, but some companies like to deviate, | often just to be different. For example, Google uses a Unicode | lightning bolt as its DOCTYPE for Amp pages. | | However, saving 100 bytes on a page load can end up being | actual money saved when you shove out as many pages as Twitter | does in a month. | irrational wrote: | Saving bytes makes sense. But how does the rendering engine | know that those lines are CSS instead of junk text? And | without a head tag, how do those lines not end up as text in | the body of the document? And isn't it strange that it | doesn't have a title tag (though, if you aren't going to have | a head section, maybe skipping the title tag makes sense | too). | hartator wrote: | I think this might weed out more junior but very promising | profiles. | | And remembering the Netscape days and why of each meta "hacks" | might be a little tricky even for very senior profiles. | Sohcahtoa82 wrote: | > Twitter also applies user-scalable=0 which, as the name | suggests, disables the ability to zoom | | I want to revoke the keyboard from whoever decided this is a | feature. | | I understand removing features in order to clean up a UI, but | this serves no such purpose. It's purely removing a feature | because you think you know what the user wants, despite there | being no negatives to leaving the feature enabled. | tgsovlerkhgsel wrote: | Check your browser settings under accessibility. It makes sense | for most users to allow sites to disable this, because users | accidentally zoom (especially by double-tapping) making the web | app feel non-native and broken. But I believe most browsers let | you tell them that you always want to be able to zoom, and then | they ignore this setting. | | Providing it as a setting has the advantage that developers | just set it (and you can tell your browser to ignore it), | instead of finding some horrifying and harder-to-avoid way of | preventing the browser from zooming. | savrajsingh wrote: | WebKit ignores this, I can resize Twitter no prob | https://webkit.org/blog/7367/new-interaction-behaviors-in-io... | Forge36 wrote: | I assumed my accessibility settings were overriding this. | Enough websites had disabled zoom I turned it on. | munk-a wrote: | Ditto for everyone who has ever written code to stop me from | copying text - they're obnoxious anti-features. | buro9 wrote: | I'm an old-timer and mostly backend now... I knew all but one of | these lines. But the chances of me now being able to make a | website based on modern frontend frameworks is near zero. | scrozier wrote: | I've been doing web development since the web began, literally. | The percentage of my time that I've cared about the stuff in this | header is approximately .000047%. And when I do care, I can look | it up and reacquaint myself. A full stack developer has so many | things to know. This is representative of the kinds of questions | that make interviewing so awful these days. | | Oh, and I've interviewed hundreds of front end developers, so | I've been on both sides of the table. | fleddr wrote: | The comments in this article are embarrassing. It shows none of | you have even basic reading comprehension. Either you didn't read | the article at all or not very carefully: | | "So, instead, we have an hour-long technical discussion where I | ask them questions about web vitals, accessibility, the browser | wars, and other similar topics about the web. One of the | questions I always like to ask is..." | | It's ONE of the questions, so those concluding it's a terrible | interview altogether are dramatizing. | | As for the question being relevant or not, I think it actually | does say a lot about a developer. Just those few lines of code | show historic knowledge, internationalization, SEO and social | networks, mobile optimization, CSS normalization, and bleeding | edge features (origin-trial). | | In that sense it's an effective question. You learn a lot about | someone with little code, even if the understanding of some | individual lines is not a showstopper. | | Finally, saying that your framework usually generates this for | you isn't the great answer you think it is. | pwdisswordfish9 wrote: | With that title, I would have expected an analysis of leaked | backend code. | [deleted] | kabes wrote: | So his way to test a full-stack javascript developer is to let | someone explain 10 lines of which none is javascript. | zamadatix wrote: | If you position yourself as a full stack JavaScript developer | and you think talking to 10 lines of non-JS front end code is | too much out of a 1 hour long interview I'd be extremely | suspicious of how much time you've spent on the front end half | of JavaScript integration. | cogman10 wrote: | The issue I have with this test is it tells you nothing about | the person you are interviewing. | | When would you actually create such tags as a fullstack dev? | Almost never. 90% of the time, those tags are auto generated | by some boiler plate app. | | A person that can answer correctly MIGHT be someone that's | looked into those tags and done things the hard way, but is | that really someone you need to hire? A person that answers | incorrectly doesn't necessarily seem like someone I wouldn't | hire. After all, what do I care about someone knowing the | intricate details of the "html" tag and how it interacts with | various browsers? That's write once and forget sort of code. | | If you wanted this test to mean anything, why are you picking | worthless trivia. Why not, instead, pick something like a | function out of jquery or your own code base and ask the same | question "Tell me what this function is doing". | irrational wrote: | > 90% of the time, those tags are auto generated by some | boiler plate app. | | Well, that's a problem. If you don't know how to create a | web page with out having to fall back to using "some boiler | plate app", I question if you really are a fullstack | developer (I would also question if you really can consider | yourself a web developer at all, but I know that will just | upset people, so I won't go there). | zamadatix wrote: | "Explain the first ten or so lines of the Twitter source | code to me." doesn't read to me like a test, it reads like | an opener. Sure, it's possible to show off you know 100% of | the trivia for the tags that show up... but more so it's an | opener for you to talk to about how much background you | know, how much you can relate what you didn't know to | things you did or have worked on, and how much you've | bothered to go beyond "that boilerplate is generated for | me" and look into what the first few lines of the webpages | you work on do. | | The point does not at all seem to be "Aha, gotcha! You | didn't know about the syntax for Apple's limited PWA like | functionality offhand in an interview. 5 demerits, next | question!". | | A person that can hold a good discussion around these tags | is both likely to be one that has truly been developing | pages for a couple of years and has an interest in learning | more than how to make their framework work rather how to | make any framework work in a browser. If you're not able to | say something cursory about language attributes I'm going | to have a hard time believing you've full-stacked a multi- | language website (not that I wouldn't but it'd lead to a | lot of different questions later). If your response about | the doctype line is "it's boilerplate put in by my IDE" my | first thought isn't going to be "oh they just spend a lot | of time writing code in the rest of the page" it's going to | be "they either don't care what the first line of the page | is about or it's been so long since they've touch the front | end directly they can't say anything about the first tag. I | wonder how well they can deal with integrating the front | end JS with the page" and steer to towards more about that. | | Also the interview was mentioned to be an hour long, if 10 | lines of HTML boilerplate, most of which should be on every | page, is too far into the weeds of front end time wise then | I'd have severe concerns the candidate would be too back- | end heavy. Yes, other things should be talked about too, | that's why the interview is an hour and this singular | question is only about 10 lines. | ZeroGravitas wrote: | I thought "full-stack" implied you understood the front-end web | environment? | Viliam1234 wrote: | > A full-stack developer should be able to change a diaper, | plan an invasion, butcher a hog, conn a ship, design a | building, write a sonnet, balance accounts, build a wall, set | a bone, comfort the dying, take orders, give orders, | cooperate, act alone, solve equations, analyze a new problem, | pitch manure, program a computer, cook a tasty meal, fight | efficiently, die gallantly. Specialization is for junior | developers. | | -- Robert A. Heinlein | y42 wrote: | I'd say that's legit, considering what he is looking for - full | stack. JavaScript is strongly connected to the term | WebDevelopment and thus to HTML. That's just basic knowledge. | kabes wrote: | Sure, but it also means being skilled in writing Node | backends and I'm doubtful if knowing what some meta tags mean | is a good indicator for that. | | This is the equivalent of interviewing for a C developer by | letting him explain a Makefile. | jbki1121 wrote: | what's wrong with that? surely a c developer would know | their tools. I wouldn't call it a stretch to ask if a java | developer could explain maven | cogman10 wrote: | Pretty much the same thing that would be wrong with | asking a javascript dev to explain grunt. | | What if that C++ dev primarily uses visual C++ and Visual | studios projects? What if the C++ dev primarily used | Cmake, ninja, or scion (or any of the other thousands of | C++ build tools). | | What if that C++ dev never really needed to start a | project from scratch? | | The issue is testing someone on minutia doesn't tell you | anything about how capable they are. In particular, | testing them on minutia that they very likely rarely | interact with is beyond pointless. | ripley12 wrote: | > What if that C++ dev primarily uses visual C++ and | Visual studios projects? What if the C++ dev primarily | used Cmake, ninja, or scion (or any of the other | thousands of C++ build tools). | | Then it's an opportunity for the candidate to explain the | tools they _do_ use. | | There are certainly bad interviewers out there who misuse | these kinds of questions, but I think they're fine if | used as conversation starters. | jbki1121 wrote: | if it makes any difference, I was referring to C, for | which Make is the majority, I think - could be wrong, | though, since I'm not a c developer. | | But to the point, I'm not sure if the code at issue would | be considered minutiae or not, but I believe that the | more curious you are, the more you tend to dig into the | details, and a person doing this over many years would | attain a rich knowledge-base spanning depth and breadth. | I know as a java developer that I've referred innumerable | times the docs for the POM and settings structure in | order to explore the limits of customizing my build, | which would include the rather obscure features. Not | saying this is technically comparable to meta tags in | html, but maybe that's what the author was going for. | whateveracct wrote: | It's not that they can't technically answer it. | | It's that the signal you're gonna get out of such an | interview is gonna be so low that whoever you end up | hiring is mostly going to be due to chance + how much you | "liked" them. | [deleted] | RGamma wrote: | Self-description about the business that is mentioned in the | first sentence: "Beautiful interior design for your home with the | flexibility to /rent/ or buy the furniture you love" | | Renting furniture... Isn't it weird* how the right to own drives | capitalism which spawns businesses that thrive on you not owning | the things they sell you? | | * read: perverse | new_guy wrote: | That seems a pretty basic question for a senior position, it's | weird the author says most candidates failed it. | leftnode wrote: | "Senior" developers tend to waaaaaay overestimate their | abilities, unfortunately. | kache_ wrote: | My expectations for people cratered after I began interviewing. | It's.. incredible.. how untechnical people applying for highly | technical positions can be. | lghh wrote: | How is not knowing something unethical? | | [EDIT] - they said "untechnical", not unethical. | hknapp wrote: | un - technical | InvaderFizz wrote: | Agreed. It's sad how many SRE candidates are positioning | themselves as senior and end up being someone with basically | nothing more than surface level knowledge of AWS manages | services. | | I have a relatively similar approach as the article: | | 1. I have them walk me through a production dockerfile and | explain what is going on (it is not a very complex | dockerfile). | | 2. I have them troubleshoot a broken web server with the most | basic scenario (public web server that we run, ec2 with | apache2, public ip, no load balancers, no cdn, just a VM | serving a static html page on xyz.actualdomain.com). | | Things that are broken: | | 1. NXDOMAIN (I make sure to unset the DNS before the | interview) | | 2. Security group isn't allowing 80/443 | | 3. NACL isn't allowing egress | | 4. iptables isn't allowing 80/443 | | 5. Apache2 is stopped | | 6. Apache2 is bound to 127.0.0.1:80/443 | | 7. Self signed TLS | | I don't require specific incantations, I know I can't write | the iptables insert without looking up an example. But I do | expect candidates to know where and what to look for to | troubleshoot the entire chain. They are allowed to run any | command they want (I'm running it on a screen share). If they | get stuck on a portion, they get some hints, then finally | they get given the answer to get past it. My goal is not a | gotcha, my goal is to see how they attack the problem and if | they are at least familiar with how things can break and have | guesses at fixes. | | Fully a third of interviewees get stuck on NXDOMAIN, which is | just shocking to me interviewing people that, on paper, have | over a decade of deep Linux and cloud experience. | | To me, the scenario I present is basic troubleshooting and | something that should be a breeze for most candidates. | jaywalk wrote: | So many people have the idea that "senior" is just someone | who's been doing it for a long enough time. | dgritsko wrote: | It feels kinda reminiscent of a "FizzBuzz" type of question, | serving as a litmus test or catalyst for an informal | conversation rather than anything strictly defined. | Taylor_OD wrote: | Ah. FizzBuzz the destroyer. | sontek wrote: | I saw a tweet yesterday where someone with 4 years of | experience was looking for a Staff Engineer position. One thing | the engineering community doesn't lack is confidence in our | abilities, even if we aren't there yet. | sockpuppet69 wrote: | kache_ wrote: | I've seen interns perform better than "Staff Engineers" at | some companies. | | Leveling is purely a function of leverage and nothing else. | I'm ~4yoe and I find myself in meetings pretty much entirely | populated by staff engineers. I've seen kids come right out | of waterloo with more skills & knowledge than I think I'll | ever manage to get. I've seen people get to Staff at FANG | before 27 | | Anything is possible, just get good :) | jandrese wrote: | > <html dir="ltr" lang="en"> | | This one surprised me a bit. Are there browsers that are default | Right-to-Left rendering and are going to put English language | characters backwards if you don't specify the direction? | dymk wrote: | There's probably a line of code that looks like this: | | > echo('<html dir="$dir" lang="$lang">') | | (or something similar), and they unconditionally include the | `dir` attribute without checking if it's already set to the | default value a browser would assume. | j-krieger wrote: | No, but a screen reader that has set rtl as a default _might_. | missblit wrote: | Per https://html.spec.whatwg.org/multipage/dom.html#the-dir- | attr... it'll default to LTR | | > The directionality of an element (any element, not just an | HTML element) is either 'ltr' or 'rtl', and is determined as | per the first appropriate set of steps from the following list: | | > ... If the element is a document element and the dir | attribute is not in a defined state (i.e. it is not present or | has an invalid value) ... | | > ... The directionality of the element is 'ltr'. | | It's not that common to see LTR explicitly specified for the | document, but you could imagine some code that either outputs | ltr or rtl based on the user's preferences. (Indeed I just | checked and twitter puts a rtl there if you're using it in | Arabic) | dpweb wrote: | I think I'd enjoy this interview, as I don't really like people | watching me code. | | But to have a discussion about quirky html history would be a fun | (I think less stressful) way to spend the time. | joshstrange wrote: | I'm sorry but if a place I was interviewing for asked me this I'd | end the interview and move on. This is about as useful as knowing | how to write C boilerplate on paper from memory (something a | college professor had us do for an exam), which is to say it's | completely useless. | | > The first line of every document's source code is perfect for | this interview because how much a candidate knows about the | DOCTYPE declaration closely resembles how many years of | experience they have. | | This just screams "I have some esoteric knowledge and I'm going | to lord it over you", sure I remember vaguely when the html | doctype first came out but knowing what that does doesn't make me | a better programmer. I write that line 1 time max in a project | and then never think about it again. Why would you ever harp on | that? Especially when most frameworks your are going to be using | handle that all for you or it's in the default header | block/index.html? | | Talk to me about how I'd solve a problem or how I'd architect | something but don't quiz me stuff I rarely need to know. Even PHP | argument order (a near-useless skill) is more useful than this | list. Give me 5 minutes on google and I'll tell you what every | single one of the tags mean/do (the ones I might not know off the | top of my head), that's a way more important skill then being | able to spout off what they are from memory. | ASalazarMX wrote: | I'll gladly admit that creating boilerplate from memory is a | low-value skill, but you absolutely must know why it is there, | and what does it do. | | Through the eyes of the interviewer, you googling those tags | means you don't know what they do. If you were hired and for | some reason had to change those tags, what is the chance that | you'll just google and copy/paste? (again, through the eyes of | the interviewer) | | To be fair, not all people work the same way. Some are happy to | swim through the mountain of knowledge that web development has | become these days, others are happier specializing in a subset | of web development, and others will prefer to diversify their | knowledge outside of web development, which means wider breadth | in exchange for lesser depth. The interviewed should make sure | to clearly transmit how he works, so the interviewer doesn't | have to make too many assumptions. | jollybean wrote: | It's not 'useless' and it doesn't scream 'knowledge signalling' | - it's just not a very good question. | chrismarlow9 wrote: | Yeah I'd only ask that question if I was interviewing people to | work at w3.org. | | The years of experience line is nonsense. I learned html 25 | years ago and can only describe what that line does in pretty | generic terms. It's like asking a journalist candidate to give | you the Webster definition of "amalgamation". | tinco wrote: | I'm sorry but if you don't understand most of the first ten | lines of twitter.com (or any website) you're just not a senior | frontend web developer. He's not asking you to recite them from | the top of your head, he's asking you to have a simple | conversation about them. | | Who cares if you can architect Twitter. Any college graduate | can make a half hearted attempt at architecting some bullshit. | What needs to be tested is how well do you know your domain. If | you claim to have ten years of experience as a web developer, | how much did you actually learn in those ten years? | | You can't be serious that you couldn't explain what UTF-8 is, | or why text direction might matter, or why we put social media | links in our headers if you claim to be a senior frontend web | developer. | jtchang wrote: | Is this sarcasm? | munk-a wrote: | I'd strongly dispute this point - these tags need to | (usually) be written once per _organization_ , occasionally | you need to come in and fiddle with it, but the contents of | your page header should occupy no brainspace. _Additionally_ | I think this interview question might be testing a depth of | knowledge, but not one that 's actually relevant for your | position. I've worked on backend systems for most of my life | (that and databases) and I can definitely name the purpose of | most of these tags since, back before node, I'd just be | popping them out in some PHP file somewhere - again, once | written and then mostly forgotten about. If the job | responsibilities are going to involve a modern front-end | framework/language suite and your interview isn't even | touching on that topic then you're not effectively | interviewing for the position - you're querying about some | corollary information that most people in the space will sort | of know but, if I was their manager, I'd be happy as a clam | if they popped over to the MDN and copy-pasted a big chunk of | this as a starting point... assuming they ever actually | needed to interact with it. | grumple wrote: | Not only do these get written once per organization, but | they are specific to that organization. With the exception | of the doctype, html tag, viewport, and charset, we use | none of the rest. And our attribute usage differs. | [deleted] | svachalek wrote: | Wow, there seems to be a consensus that being able to read an | entire HTML file is not a reasonable expectation of a senior | frontend engineer. That's news to me, and honestly I can't | imagine how narrow the job definition must be if it doesn't | include a working understanding of page headers. | june_twenty wrote: | Senior engineers duties including mentoring juniors, | working with managers and architects, setting and | maintaining the technical direction of a project, having | input into planning etc etc etc. Talking about the first 10 | lines of a website and seniors is laughable. | ge96 wrote: | It's auto filled ha | | ! then tab (emmet). | | To me though most important is that viewport scale 1 and | similar tangent, using offsetWidth for Mac's higher DPI | screen. | Jare wrote: | > What needs to be tested is how well do you know your domain | | I pretty much never look for this in an interview, outside of | specific claims from the candidate, specific needs for the | position, or the bare minimum. | | I try to evaluate candidates for their ability to think, | reason and operate in a domain. Knowledge is easy to acquire | and useless in the face of changing tech. | devoutsalsa wrote: | Ask me questions I can't answer using Google. If you do ask | me questions I can Google, let me answer the what I can | from memory & give me points for looking up the rest. | [deleted] | joshstrange wrote: | > I'm sorry but if you don't understand most of the first ten | lines of twitter.com (or any website) you're just not a | senior frontend web developer. | | _cough_ No true Scotsman _cough_ | | I'm loving the way you are putting words in my mouth about | what I do/don't know from those headers. I can explain most | all of them but that doesn't stop it from being a stupid | exercise. If you start a potential working relationship with | me by asking me to explain 10 lines of HTML head tags then | that tells me you focus on all the wrong things. By the way, | I am a senior frontend web developer and I've been quite | successful at it, thank you very much. | jenscow wrote: | This is basic stuff. Perfect answers aren't required.. it's | just whether or not you can have a conversation on | something technical which you ought to be, according to | your job title, at least vaguely familiar with. | | Don't take this type of exercise personally; it's not aimed | at you - it's aimed at the many people who call themselves | "full-stack engineers", but haven't ventured beyond the | bounds of a particular framework. | tinco wrote: | I never doubted you were. That's why I'm saying you're not | serious if you say you don't know these things that you | obviously do. I'm 100% sure you'd ace the first ten lines | of Twitter's html question. | | I want to hire you, not someone who's never really thought | about what's going on. These questions are just a trick to | force someone to step out of the box and go deep into some | fundamental web concepts. It's not about memorizing some | HTML tags, it's about knowing why they exist. | | edit: This is just in the hypothetical scenario I'd be | hiring a senior frontend web developer. You generally only | need maybe 30% of those, the rest I can get trained on | developing features within 3 months after finishing a 10 | week bootcamp. I wouldn't bother asking them how UTF-8 | works, I just explained what the word "encoding" means to a | junior who'se been outpacing me for the past 3 months. The | person who reviews their merge request should definitely | know what UTF-8 is. | jkubicek wrote: | It's also about your communication style. If you know | what an HTML tag is for, can you clearly explain it in | language that's easy to understand? If you don't know | what it does, do you just say that, or do you try and | bullshit your way through the answer? | ALittleLight wrote: | I don't think it's a great question, partially because | there are a lot of meta tags there and it feels a bit | redundant and slow, and partially because the phrase "first | ten lines of Twitter's source code" makes me since - but, I | don't see the problem with it. It's a basic question asking | you to talk through some stuff. Test of knowledge and | communication. There is a right and wrong way to evaluate | to evaluate this kind of thing - e.g. "Didn't know about | the direction property in the HTML node? Terrible, get | out." Would be a pretty lousy interview, but there's no | reason to assume the interviewer is going to do that and | anyone could beat jerk with any set of interview questions. | | I would think that if you would walk out of an interview if | the interviewer asked you basic questions then those | questions have done their job. | hombre_fatal wrote: | These conversational questions where you talk out some | code are probably the most pleasant interviews. | | It's not a quiz, if done right. But you can get to know a | lot about someone even by how they respond to not knowing | the answer. | | Someone with experience knows it's not a big deal to not | know every bit of trivia, but they can talk intelligently | about what the code might do. And they know how to find | out. | | Rage-quitting the interview or blurting out confidently | wrong guesses, on the other hand, are bad signals. | [deleted] | zitterbewegung wrote: | IMHO instead of doing fancy tricks the first day for | interviewing take something that could be completed in one day | at the job you are interviewing for and if you can complete it | or get it near enough I would think that would be a better | criterion to hire. Also, this interview would be paid for the | first day at the same rate that you would be hired for. | tgsovlerkhgsel wrote: | I think it's a very good question. You're not just checking | boxes and giving a score here, and if the interviewer is any | good, it's not just about "how many correct answers". | | The depth of each answer gives you a lot of information about | the depth and breadth of the candidate's knowledge. It | immediately lets you tell the complete idiot who has always | copy-pasted without any understanding from the person who lives | and breathes web standards. | | Since some of the questions are very esoteric, as you said, it | lets you judge how the candidate deals with lack of knowledge. | Do they make up some bullshit pretending to be confident (which | could be a huge problem in a real project), or do they say "I | don't know this one, but based on X I assume it's probably Y"? | teaearlgraycold wrote: | I agree. If this is judged by how many you can answer then | the interview isn't useful. But if the interviewer uses it as | a launching point from which the candidate can talk about | their experience with web technologies then it's a great | addition to a longer interview. | forty wrote: | It's not a very good question and it's not a very good answer | either. Discussing the DOCTYPE without mentioning SGML or XML | seems to be a bit weird to me. | rjh29 wrote: | That was more relevant 10 years ago. Nowadays the primary | point of the html doctype declaration is to say 'I am HTML5'. | I know this and I'm not even a frontend developer. | ramesh31 wrote: | Count me as someone who loves this. I could turn this prompt into | an enjoyable 30 minute discussion easily. I am a front end | developer, not a computer programmer. I cannot reverse a linked | list or invert a binary tree. But I can explain in depth to you | about every single aspect of the browser, HTML, CSS, JS, and UI | engineering in general. I have a decade of deep, specialized | expertise in building software for web browsers, and an | encyclopedic knowledge of web technologies. I can build anything, | and my previous work speaks for itself. But I simply cannot pass | the SV Leetcode/whiteboard style interviews. It's maddening. | maxbaines wrote: | Why the first line of Twitter, why not Facebook.com or Google.com | actually I just looked there all very different given meta tags | for each company, i.e Facebook does not use twitter meta tags | from what i could see neither does the google home page, although | i guess there search does. | jdrc wrote: | I like that now we have "apple" tags, and "twitter" tags | everywhere. Maybe cocacola and mcdonalds should buy a tag too , | because, why not. At least facebook had the decency to call their | tags "open graph" | jeroenhd wrote: | I'm not so sure about this one. There's not much open about | opengraph other than that Facebook published the for wat they | want to use. Everybody else copied it, but Facebook decides | what does and doesn't make it into the standard. | | At least Twitter has the decency to mark their proprietary | standards as proprietary. | jdrc wrote: | why didnt twitter just use og: ? it 's the exact same | content. they create tag pollution without thinking | DHPersonal wrote: | This test leaves me conflicted. I'm often surprised by what | developers remember and more importantly forget; it seems that | after a while the fundamental elements of what makes up a website | are lost in the sea of new development languages or platforms. | I've done front-end design and development for over a decade now | but have largely leaned into the prototyping and design area of | that career, so my knowledge of development is limited enough to | not have forgotten HTML and the markup for building a page. I | would've been able to ace this test while also failing to be | suitable for a senior Javascript developer. Developers here on HN | who would likely be able to outwit me in every way in development | seem to have lost touch with simple HTML markup. Still, I wonder | if something important is lost when development requires these | basic elements of a page to be forgotten in service of a new | framework or language. | dvtrn wrote: | Hi! I'm not a front-end person, I'm an ops guy, I live in the | world of bash terminals and thread dumps. My knowledge of HTML | and CSS is enough to make some headings and paragraphs. So pardon | what might be to you folks who look at this daily-seem like a | "duh" question. | | The article says this: | | _You might think that this information is redundant because the | browser already knows that the MIME type of the response is text | /html; but in the Netscape/Internet Explorer days, browsers had | the difficult task of figuring out which HTML standard to use to | render the page from multiple competing versions._ | | Are there still a lot of browsers in use that have difficulty | figuring out the HTML standard, and if not, is the doctype | declaration just an anachronism of markup? | | Asked in a less roundabout way: If response data is sufficient | for a browser to know what it needs to do, and modern browsers | support such capability: why do we still declare document types? | ZeroGravitas wrote: | Browsers include a lot of crazy backwards compatability stuff. | You can basically trigger a whole different experience with the | right/wrong doctype line. | | I guess it'll disappear eventually and become an opt out rather | than an opt-in, but not sure if we're there yet, IE11 has been | a major drag on progress. | csnover wrote: | It can never disappear and become an "opt out" without | breaking backwards compatibility. This has nothing to do with | old browsers, but rather, old content. You can't go back in | time and rewrite every HTML file ever published in order to | have them "opt in" to quirks mode. | jaywalk wrote: | It's not that there's any "difficulty" in figuring it out, but | it's literally part of the standard. An HTML 5 page will not | render correctly without <!DOCTYPE html> even in modern | browsers. | dvtrn wrote: | Ok, that's fair, it's in the standard. | | I suppose my _real_ question is (and maybe this is a | discussion that 's been beaten to death and I'm merely | ignorant of it): why does the standard require it, if modern | technology seems to have obviated the need for it? | | Am I too far off the mark with "backwards compatibility" as a | scientific wild-ass guess or is it more complicated than | that? And if so, with what kind of devices/browsers that | would still be in use today? | jaywalk wrote: | It is for backwards compatibility, but you're thinking | about it in reverse. It's so that modern browsers can also | render pages written to older standards correctly as well. | They will not use "HTML 5 mode" unless the page explicitly | declares that it's HTML 5. Nor should they, because you | can't have a valid HTML 5 page without it. | dvtrn wrote: | The loud noise you're hearing is the sound of a bunch of | old, rusty mechanical gears clanking into place. This | explanation makes perfect sense to me now. I hadn't done | much serious front-end things since high school in the | early 2000's and even then I had no idea what "web | standards" were. I just knew how to make pages and | display images for a counter-strike 1.6 clan haha. | | Thanks for taking me to school. | jaywalk wrote: | No problem, glad I could help! | jeroenhd wrote: | Most browsers have quirks modes for different types of HTML | standards. Certain errors are renderered in certain ways | because that's what web devs used to expect, even if they | weren't following the standard. If you strictly enforce | XHTML1.1 or HTML4 because the website says that's the standard | it follows, you end up with tons of broken websites. It's a | consequence of websites historically being lenient with front | end developers. | | The HTML5 string basically says "I promise to be good, please | turn off your weird workarounds". Of course, HTML5 has been | around long enough that some browsers still have certain | quirks, but they're not as extensive as the ones before HTML5. | | Compared to the `<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 | Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">` | monstrosity from before, I'll happily take the modern standard. | There's no version number anymore, just a simple HTML | identifier. | dinkleberg wrote: | I'm imagining many of the people who are against this idea have | never been on the interviewer side. Or aren't web developers and | feel they should be able to answer this regardless. | | The intention of questions like these aren't to see if you know | all the answers, it is to have a discussion and to learn about | your experiences and see how you think. | | Also if you're applying for a web dev role and you're not fairly | familiar with what real world HTML looks like it's may not be a | great fit. You may not remember the exact syntax (because who | care, you can google it), but you should have an idea of what | you're sending over the wire. | tgsovlerkhgsel wrote: | Also, people who haven't been on the interviewer side have no | idea what kind of idiots apply to jobs they're absolutely not | qualified for. | | Like web developers who couldn't make a reasonable guess at | more than two of these lines. | noahjk wrote: | HN: complains about leetcode-esque interviews | | Also HN: complains about alternative conversation-style | interview | | I don't work on the front-end, but I have had a general | curiosity for it for a while, and I think this would have been | a great conversation starter! And I think a lot are missing the | point that the interviewer isn't exactly using this to just | "fail" people. Like you mentioned, these are the sort of out- | of-the-box conversation starters that good interviewers try | hard to come up with so they don't have to just give coding | tests and ask the top 30 JS trick questions that are easily | googleable. | degenerate wrote: | Exactly -- it gets people talking so you hear how they | communicate and solve problems. | jeffalbertson wrote: | this is such a dumb, mediocre gotcha interview question. | | I prefer take homes to live coding questions but ffs, ask me | questions that will pertain to my day to day responsibilities and | have me explain my code sample. No FE dev in 2022 is creating a | bunch of HTML pages. | brimble wrote: | Expecting people to know meta tags is ridiculous for all but very | specialized roles. It's the kind of thing you rarely touch once | it's set up. I'd expect most developers to be able to guess | correct or near-correct answers just from context, which I guess | is a test of a certain kind of reading ability. So I suppose | that's some kind of signal. But this stuff changes often enough | and there's enough subtlety, and very few people touch it very | often, that you _should_ be consulting a guide or reference most | every time anyway. | | This is probably a test of some useful ability for developers to | have, but it's not knowledge of these things in particular. | | Also: | | > <meta name="theme-color" [...] | | > This is the proper web standards-esque equivalent of the Apple | status bar color meta tag. It tells the browser to theme the | surrounding UI. | | Oh, so _this_ is the horrible thing that 's infecting my desktop | Safari and making it hideous and weird and inconsistent? | Interesting. | TameAntelope wrote: | I think expecting people to know things they really shouldn't, | and seeing how they react to that lack of knowledge is a very | important part of interviewing. | | I assume this isn't the only question OP asks in their | interviews, but I think it's got a couple of good outcomes and | returns a lot for the length of time it takes to go through. | kemar wrote: | - https://htmlhead.dev | | - https://github.com/kevinSuttle/html-meta-tags | wlesieutre wrote: | _> Oh, so this is the horrible thing that 's infecting my | desktop Safari and making it hideous and weird and | inconsistent? Interesting._ | | FYI you can disable the coloring as well as the "compact" | layout that mushes the URL bar into the active tab and hides | its <title> | | https://www.macrumors.com/how-to/safari-macos-turn-off-websi... | brimble wrote: | Yeah, reading TFA prompted me to finally go figure out how to | do that :-) | | Much better. No more wild recoloring of my browser chrome | because I switched tabs. | | > FYI you can disable the coloring as well as the "compact" | layout that mushes the URL bar into the active tab and hides | its <title> | | Did that day-1 with the new Safari. That part was wholly | intolerable, not just ugly and annoying. | bdcravens wrote: | It's not a test of their meta tag knowledge, it's a test of how | well they can speak to concepts with some context. (For | instance, I don't really do anything with Open Graph, and I | don't know the meta tag off the top of my head, but I spotted | it in this example) | ProAm wrote: | And this is for a furniture rental business...? I think there | is a easier way to determine if a candidate has the minimum | technical skills required for the job besides a diminutive | interrogation about Twitter. | iamben wrote: | > Expecting people to know meta tags is ridiculous for all but | very specialized roles. | | Devil's advocate - is it? You're right, this stuff rarely gets | touched, and (aside from changing the colours in the bit you | hate!) it's the kind of stuff I'd normally boilerplate between | projects. | | But if you're interviewing for a role and you're not giving | them a coding test (yet?) but looking to see how _curious_ they | are, how disparate their knowledge is, or just (as you say) how | good someone is at guessing from context - isn 't this a fun | experiment? | | I'd imagine just seeing how people deal with the answers gives | you a good idea as to how they'd approach something when you're | working together. Are they guessing? Confidently wrong? Seen it | before but don't know what it is? Can roughly talk around it | and what it does without exactly knowing? Proficient in it all | (and how that relates to what they have or haven't said on | their CV - have they under or over sold themselves?!)? | | I assume you could apply the same sort of test to any domain - | test someone on something closely related you don't necessarily | _need_ to know and see how they react. | bri3d wrote: | The problem with these "present a tangental question / | loosely unfamiliar but similar" questions is that they become | useless when a candidate _does_ know the answer as memorized | trivia. At that point you 're looking for a signal about | "what does the candidate do when presented with something | familiar but unknown" but receiving "can the candidate | regurgitate an answer." | | Of course you can then ask a different question, follow-ups, | and so on, but you're so far off baseline compared to most | candidates that the question starts to become useless. | thomasahle wrote: | I don't think the point is that every interviewer should | ask about Twitters source code, and every interviewee | should memorize it. | | The point is to ask a few randomly sampled knowledge | questions to measure how well rounded the candidate is. | Taking the "first 10 lines of Twitter" is just one way to | sample such questions. | [deleted] | [deleted] | TrickardRixx wrote: | If you want to know how curious I am, ask me. If you want to | know how disparate my knowledge is, ask me. If you want to | know how good I am at guessing from context, ask me. If | you're asking about meta-tag trivia, all you're going to find | out is if I know meta-tag trivia. I know myself way better | than any interviewer possibly can. If you don't trust me to | evaluate myself, then you shouldn't be hiring me into a | creative, professional, self-directed position. | thomasahle wrote: | In my experience, lots of people apply for jobs they aren't | qualified for. How does I as the interviewer know which | candidates I can trust to assess themselves and which I | can't? | munk-a wrote: | I mean, a fair number will walk in the door talking about | C-pound. A number of them will exclaim "What wizardry is | that!" when you open up the developer console (or accuse | you of hacking). Just do your best to sus out obvious | lemons and fix the rest in post (i.e. figure out if | they're full of crap during their probationary period). | | If you have specific pieces of technology you're working | with and want to interview about then take an afternoon | and just code up some bizarre snippets to go through with | them - add a few mistakes they should be able to catch | and just talk through their process. | | I honestly don't think opening up a random website and | asking about some of the source code is a terrible | approach... if you're interviewing someone for writing | HTML in the 90's - in the modern world all the JS is | minified (and likely generated by a framework), the CSS | is absolutely atrocious to read (usually also generated) | and the HTML is pretty much irrelevant. Use something | that's going to be applicable to candidates to judge | their understanding - I've always been fond of short | puzzles very much _unlike_ this one (it 's way too | arcane) in PHP `0x5 &$var=['cow' => 6]['cow']`[1] - just | blerbs where you can step through some syntax | understanding and problem solving at the same time. | | An actually good suggestion is to check out a random | (ideally mostly self-contained) file from your codebase | from a decade ago and step through what's awful about it | - all code bases have these, and they're usually still | kicking around as active code in production. At one of my | more recent interviews they sent me login.php (the one | actually in production, which they knew was broken - they | had _two_ developers before me which were really | overworked) and just asked me to mark up wrong stuff - I | found SQL injections, unbound variables, conditions that | would result in invalid HTML and broken forms and some | terrible decisions from a readability perspective. I | spent... maybe an hour on it. | | 1. https://3v4l.org/85MV3 | rileymat2 wrote: | " I know myself way better than any interviewer possibly | can. If you don't trust me to evaluate myself, then you | shouldn't be hiring me into a creative, professional, self- | directed position." | | I am not sure this is well grounded in the studies of human | psychology. | munk-a wrote: | I think it's extremely fair to not trust people to | evaluate themselves when doing open hiring - for | networked candidates you can usually relax some | assumptions and for very senior/niche positions there's | usually ample street knowledge available... but in these | cases you're relying on a third party for some level of | vetting. I would never solely trust a second party during | hiring unless I had some method to confirm at least some | of what they're saying. | | A lot of companies are far too hesitant to trust | employees, but blind trust is unwise - you can end up | with an employee that either wastes three months salary | or actively causes damage. | rileymat2 wrote: | I think we may be talking about slightly different | things. | | There is a ton of well researched psychology work on self | deception, confirmation bias, it goes on and on. | | Asking about the things that the OP was mentioning are | deep psychological traps. Perhaps the OP has deep self | awareness, but that does not apply to the general | candidate or human. | | Our blind spots of our own actions and behaviors are | profound. | tshaddox wrote: | It's really just the same kinda thing that fills most coding | interviews (that aren't just pure live coding challenges): | the interviewer is testing for something that isn't directly | relevant to the role, because of course in the real role | you'd be able to (and should!) research all the appropriate | meta tags you should have on your web site, but since the | interviewer deems it too difficult to actually directly test | for the ability to do the job, they instead test for things | that _surely the candidate must have ran into before and has | a good enough memory to at least have a conversation so that | I can subjectively judge how skilled the candidate is_. | matth3 wrote: | I've not been a frontend dev for well over a decade but I knew | the meaning of all these meta tags. Back then I think it'd be | pretty rare to find a good frontend developer who couldn't say | what these were. | | Have things changed so much that knowledge of meta tags is | specialist now? | | Assuming this interview was for a front end role that is. | krapp wrote: | >Have things changed so much that knowledge of meta tags is | specialist now? | | Yes. More or less all web development now involves generating | HTML with a language that compiles to javascript and a | framework. No one even looks at, much less directly interacts | with, fundamental web code anymore, and HTML has become | esoteric "low level" knowledge like assembly language. | matth3 wrote: | But we've always generated the html using other languages, | still needed to have a pretty decent idea of how it works. | I find it hard to believe that's all redundant now in quite | the same way knowledge of assembly is when your a python | dev for example. | | Like take the open graph meta tags for example, for certain | websites it'd be a big oversight to leave them out because | you never bothered to learn what they were. | | I don't know if all this makes for a decent interview. Just | blows my mind that people deem it too low level to have to | care about, but what do I know anymore, it's been a real | long time since I made a web page. | Alex3917 wrote: | > It's the kind of thing you rarely touch once it's set up. | | Exactly. Surely being able to actually configure the metadata | tags on a webpage correctly must be more valuable than being | able to remember what the different configuration options do | years later, no? | umvi wrote: | The author says he doesn't expect perfect answers | | > Note that since our technical discussion is a conversation. I | don't expect a perfect answer from anyone. If I hear some right | keywords, I know that the candidate knows the concept, and I | try to push them in the right direction. | | If I were being interviewed, I would probably say "yeah all | those meta tags are metadata for various consumers. The apple | related ones are probably for tailoring the page for display on | apple devices" | | Hopefully that's good enough, if I were doing the interview I | wouldn't expect more than that. | brimble wrote: | Yeah, the post indicates that the author might be Doing It | Right, but then there's stuff like: | | > Surprisingly, only a few people knew about the dir | attribute in my interviews | | No. Most of those few people who "knew" it are decent-to-good | readers with enough context to figure it out, and in this | _particular_ case they probably recognized "ltr", then | worked backward to get what "dir" means, and were confident | enough about that guess to state it as fact. They did all | this in less than a second, because, again, they're decent- | to-good readers who had the right context for this particular | task. If this had been a made-up attribute you'd have gotten | nearly as many people who "knew" it, I guarantee. | | This is closer to a web dev reading test than a direct test | of knowledge. Which, again, might not actually be a crazy | thing to administer. | filmgirlcw wrote: | You're right that this is closer to a reading test than a | direct knowledge test, but I don't think that's a bad | thing. | jspash wrote: | But don't underestimate the importance of reading as a | skill! It's incredibly frustrating to see devs make stupid | mistakes and spend time trying to get something to work | when the answer is right in front of their nose. | | I see this too often. A developer (usually more towards the | junior end) who think they can just chug through any | problem. Trying this, then that, then google, then that | again. When, if they would just stop and think through the | problem - and use their eyes - they would see the solution | was there all along. | filmgirlcw wrote: | Totally agree. I've definitely made this mistake myself | (we all have) and the lesson is definitely to stop, | think, read the code and that usually helps with the | solution (or at least makes it easier to hone in on what | to google) | tedunangst wrote: | It's a perfectly cromulent attribute! | johannes1234321 wrote: | They don't expect candidates to be able to write the "right" | set of tags, but they use them as a basis for discussing | different topics and recognizing things and maybe doing | educated guesses in the meaning are quite useful skills. | filmgirlcw wrote: | I actually really like this and I'm a bit surprised to see all | the pushback. If someone asked me this in an interview, I would | have no problem talking about all of the stuff (origin trials, I | might have messed up, but I might have been able to BS my way | through the answer depending on the full length of the line and | what context I could glean from it) and even now standards and | boilerplate and defaults have evolved over the years. | | Now, whether or not that would be a good indicator for my | viability as a front-end dev, I'm not sure. But at least it would | show I have an understanding of what is going on and how to read | and explain it. Which is better than a lot of leetcode exercises. | | I actually like the idea of asking people to explain code to them | -- even if it isn't something like the first ten lines. If I'm | proficient in a language, I should hopefully have a good idea of | what is going on, at least in a sample app. And that is a useful | skill, especially if your job is to come into an already | established codebase. | jenscow wrote: | > able to BS my way through the answer | | That's it. Anyone claiming to be a _senior full-stack engineer_ | should be able to BS their way through this. | | If you're shocked by what you see on a "view-source" screen, | then you haven't been doing this for very long, and you're not | really "full stack". | filmgirlcw wrote: | Absolutely. And I'll also say that as an interviewer, I | appreciate someone who can BS though something like this. | Because part of the job is BSing through a lot of stuff. | devoutsalsa wrote: | If someone can get stuff done on the front-end and back-end | at a senior level, who cares what they've memorized? I used | to memorize all sorts of stuff. The only advantage it gave me | was occasionally sounding smart, which it came at the expense | of learning actually interesting things, like how to pick a | useful database schema. | filmgirlcw wrote: | I don't think of this as rote memorization tho. This is | about, can you read, identify, and explain the different | parts. Now, you might not think that is a good test to see | if someone is competent or not -- and I'm not going to | pretend it is perfect. But as these things go, I don't | think it's a bad starting point. | | I could explain nearly every one of those ten lines (and | again, I'd have to see to full origin-trials line to know | for sure, but I'd say there is a 70% I could infer/BS the | answer), not because I've memorized anything but because | I've spent years writing and reading this sort of thing. | | Now, if you asked me to write the first ten lines perfectly | without any mistakes or use of code completions or | boilerplate, I would almost assuredly fail. To me, that's a | stupid memorization test. But asking someone to explain why | something is there and what it does, I don't think that's | the same thing at all. | jenscow wrote: | But for the job in question, this kind of stuff isn't | memorisable factoids. | | Knowing what these 2 tags are for is fundamental, the | wording of the attributes are vaguely self-descriptive, and | recognising CSS from HTML is instinctive. | | You can't "get stuff done" without being able to at least | bullshit the basics. | jrochkind1 wrote: | You don't know this stuff because you have "memorized" it, | like with flash cards or something as some kind of | memorization exersize. You know it because you know web | technologies. | | It's weird to use "memorization" as basically a synonym for | "remembered". Being a good developer is not just copy-and- | pasting things from google, it involves actually | understanding some technologies. Understanding technologies | is not "memorization". | tgsovlerkhgsel wrote: | And BS-ing through it is exactly one of the red flags I'd be | looking for as an interviewer. | | I don't want people who tell me "it's all under control" and | "I know this" and then the result is a disaster. I want | people who tell me "I know X and Y but I'll have to look up | Z". Tell me that you don't know but are assuming, _then_ show | me your reasoning skills by "BS-ing your way through it". | deckard1 wrote: | This seems to be closer to the right approach to interviewing | over the leetcode grind, but it's the _wrong_ example. The head | tags are trivia and have changed _a lot_ over 5-10 years (not to | mention Twitter doesn 't include the head tag which is just | wrong, IMO, though every browser since the '90s is flexible on | this and everything else to do with HTML). Many front end devs | haven't touched the head tags because that's a separate team. Or | it's the lead devs that set that up. It's also the kind of thing | you set once and never touch again and every site will use | different head tags. | | A better approach is to drop into some code and ask the candidate | to explain it. What's the code doing, why is it doing it. Maybe | even show some code with a bug and have the candidate fix the | bug. That's like 60% of most jobs right there. Reading code, | understanding what it's doing, and figuring out how to make | changes to it. | brundolf wrote: | I think this is fine as a fun litmus test, I don't think it's | fine as a key criterion. If a person didn't know a single one of | these, they should still be in the running (if marked down a | little bit). Most senior front-end devs I would expect to have a | decent grasp on maybe 1/3 of these. | | I think it's fine to have some ridiculous questions that you | don't expect anyone to get perfectly, just to gauge, though it's | important to communicate that to the candidate so their nerves | aren't rattled when they feel out of their depth | MaxMoney wrote: | dillondoyle wrote: | I know these, because I build websites, often simple static | sites. A bunch are social or just rendering on apple devices. | | And manifest wasn't even in there. though does anyone actually | 'install' pwa 'apps' (sorry double apps)? | | IDK why anyone who's main job is not SEO or building static html | pages should know this. Except maybe viewport for people writing | css by hand. Hell even then. | | You can just use a generator. I think the SEO one that generators | most of this is the #1 wordpress plugin | dark-star wrote: | I wonder why people keep calling HTML "source code" | sockpuppet69 wrote: | brimble wrote: | It screams "non-technical manager" (or journalist, or | politician, et c) to me (though that doesn't seem to actually | be the case, here?) | xiekomb wrote: | Ahah this! When reading the post title I was wondering if | Twitter backend end (or even front end) source code had leaked. | As a candidate I would give minus 1 point to the interviewer ;) | leephillips wrote: | I don't, for one. From the title I thought this was about the | code that runs the Twitter back end. I would call this "markup" | or "HTML". | shadowgovt wrote: | Great discussion of what these mean, but terrible idea for an | interview question. As a rule, I really try to shy away from | questions where the answer is "I don't konw, but I'd be happy to | look it up if it were relevant to my job," and with modern | frameworks direct knowledge of these tags is almost never | relevant. | | (On the other hand, if the candidate had access to a computer, | following their process of looking these up might be | interesting...). | ripley12 wrote: | I see this as similar to the "what happens when you visit | google.com?" question - it's a starting point for conversation, | not gotcha trivia. | | I certainly wouldn't expect anyone to know every answer off the | top of their head, but talking through a candidate's educated | guesses can be informative. | fefe23 wrote: | May I jump in to point out that this is not "Twitter's source | code". It's their HTML. | | Source code implies it's a programming language. This is not. | This is HTML, which is a Markup Language (hence the ML in HTML). | | There is probably some Javascript code there further down but you | didn't look at it. | | In common parlance, Twitter's source code is the source code to | their web services and backend systems, which is not public. | FatalLogic wrote: | Calling it "Twitter's HTML Source" or "Twitter's HTML Source | Code" would be reasonably clear. But just saying "Twitter's | Source Code" does imply something other than that, probably | non-public backend code, you're right | | That would make me wonder about the interviewer's experience. | That's not a feeling you want to have at the start of an | interview | tfvlrue wrote: | I tend to agree with this. My expectation from reading the | headline was that it would be code from the backend (which | admittedly seemed odd, since that's not public). | | I can't recall ever seeing someone use the phrase "X's source | code" to mean HTML. In my view it's data, not code. Just like | you wouldn't call some XML file "source code" -- it's purely | descriptive markup. When a browser's context menu says View | Source, the word "code" isn't implied. It's the same usage of | the word "source" meaning "origin" (as in "cite your sources"). | | Maybe I'm being overly pedantic, but the phrasing definitely | read strangely to me regardless. Speaking as someone who's done | a mixture of programming and web development for over two | decades. | booleandilemma wrote: | "Sorry, we don't hire pedants here" | hoten wrote: | The browser ui to view this Html has been called View Source | for decades. | paxys wrote: | If someone starts arguing about this in an interview it would | be the quickest no-hire decision ever. | CPLX wrote: | It's the _code_ you see when you view _source_ | jbki1121 wrote: | I'd say it's fair enough to consider markup as code ("code" in | the sense of morse code) | Animats wrote: | "As a side note, it looks like Twitter omits the HEAD tag for | performance reasons" | | Yeah, right. | | HTML is supposed to be <html><head>head stuff</head><body>body | stuff</body></html>. But in practice you see multiple HEAD | sections, missing HEAD sections, multiple BODY sections, missing | BODY sections, and even multiple HTML sections. If you omit all | those tags, it still works, mostly. | munk-a wrote: | It's an absolute necessity that they shave 13 bytes off the | packet size... to make room for more advertisements. Their page | size is 90KB for me, which isn't great nor terrible, but | violating standards "just because" feels unnecessary. | sockpuppet69 wrote: | jollybean wrote: | This isn't a very great interview question. | | Testing detailed arcane knowledge is one thing, and it should be | impressive if people know everything. | | But the web is a giant mess of technologies that nobody can | really fully keep up with and I'd rather people spent that extra | minute learning about another language or subject, than say the | details of 'doctype'. | partomniscient wrote: | If anything this illustrates how convulated and painful web | development has become. | | The design was that HTML was HTML and the client managed all the | implementation details. Over time that got ruined by wildly | different implementations, introducing non standard tags and so | on. | | I'm glad I moved away from it before mobile versions of sites | became a neccessity. | | Having to do all this work to cater for members that have a | mobile device made by a specific manufacturer just emphasises | that the whole thing has gone totally off the rails and | completely awry. The ratio of actual information you read vs the | amount of cruft that comes with it to display it is insane. And | it's been a major issue for a long time. It was painful enough in | the 'if !ie6'...era. | | At what point does the ongoing cost of presenting and maintaining | the information exceed the value of the information itself? | | However, this is the reality of the online world we live in | today. It also makes you appreciate the simplicity, usability and | maintenance-ease of HN itself. You're already into the actual | content only 3 lines in. | ingvul wrote: | And this is why the tech interview process is (still) broken. ___________________________________________________________________ (page generated 2022-02-25 23:00 UTC)