# Junior Full-Stack Developer This is a compilation of questions that we have stumbled upon in our job interviews. None of the questions are generic or borrowed from internet, they are real questions. Me and the other authors (@rudiaj, manny) have decided not to log company names, as that would spoil the idea of the interview itself. ## Question type The questions come from multiple interviews for Full-Stack, Front-End and Back-End positions. All interviews were Junior Level. Most of the questions (level 1) deal with pretty basic stuff and serve a functional purpose of eliminating candidates that do not have a certain level of overall and precise knowledge. A smaller amount of questions are harder (level 2), and they are usually meant to test the way you solve problems. These questions are more important in the eyes of the employer, and this part of the test is often performed live or over a video call. These level 2 questions are almost always in the form of a programming task. The idea being that you are required to talk about your solution and often your train of thought. This type of question is almost always language-agnostic, which means you can pick whichever language you like. These questions sometimes also test your knowledge and understanding of math algorhythms like sorting and looping over large arrays. ## A real world test looks like... This is a compilation of a bunch of questions. In reality, you can expect 15-19 level 1 questions and 2-4 level 2 questions. Length of a test depends on the company. Usually you will have 24h to return the answers, but 1/3 of our interviews had a limited 120min test time on an online system like hackerrank or in the company offices. ## Question sources All questions are real world examples submitted by good-willed colleagues who came in contact with them during their own interviews. We decided to hide company names. Some of the questions come from the largest companies in the industry. If you find this gist helpful, consider sending us your own experiences. ## Word of advice from our examiner friend > "When answering, always try to give a live example from your experience, along with the technical answer. It makes you stand out, even if your level of contact with the issue was realtively small. Never lie about your experience even if you do not fully understand the issue. Also, having a low level contact with a wide varriety of issues is often more important than having deep level understanding over only a few. In the eyes of examiner, it shows that you have no fear in front of what you don't know. That is rare, trust me." > "Oh, i forgot, examiners love to change subjects a lot. If you came in for a JS based job, you can certantly expect a question in HTTP protocol or basic PHP etc. For Full-Stack web, i often ask some quick questions from gaming industry. The idea of these questions is not to measure your level of knowledge, it is purely to test if you have a potential." ## Wanna add from your experience? If you wish to help others, send us some questions you have stumbled upon! Contact me via direct message or email or simply do a pull request. Permalink: https://gist.github.com/markomitranic/d9319af84d2c87b81df9 **SAE Institute Belgrade © 2017** *** ## GENERAL - Did you ever use `GULP, LESS, SASS, GRUNT, NPM, GIT, BOWER, WEBPACK, ELIXIR` (no need for advanced knowledege) - What does `git diff` do? - What is the fastest way to find out who commited a particular segment of code when using Git? - What is `URI, URN, URL` and what is it short for? (brief explanation) - What is the length limit for URLs? - What OS is used on most servers? - Try to explain step by step what exactly happens when you type in a URL in the browser and press Enter. - When a web browser wants to open a page, what type of request is sent? (`GET, POST, PUT...`) - What is the practical difference when submitting a form via `GET` and via the `POST` requests? - What are key parts of any HTTP request? - What HTTP methods are there? - What do codes `404, 301, 200, 500` stand for, list some real-world or restful examples. - Can a file with a filename different than `index.php/index.html` be set as directory default and explain briefly how? - What is a Cookie? - What is a Web Socket? - What is a Web Worker? - What is this `localhost` thing? - What is `http` short for, and what is it? - Try to bfiefly explain what `SSL` certificates are, how they work, what is it short for? - Try to briefly explain how an `SSL handshake` works? - If we want users to only be able to use the `https` version of our website, how would we do it? - What common types of redirection exits and list some examples? - Did you have any experience with uncommon types of redirections, why did you use them and what were the drawbacks? - Show us a piece of your code you are proud of. (i hate this) - Did you ever have a client who was really tough to work with? Talk about your experience. - What is a wireframe? - What is a mockup? - How about a NDA? - Explain what would Unit Testing be, and how does it work? (create a roman numerals converter via unit tests) - What `HTTP` status code is used for a general server error? - Identify a status code returned after a resource is successfully deleted using the `HTTP DELETE` method? - What is an image sprite? - How does `HTTP` support caching? Explain the differences in how caching is implemented using `Last-Modified, Expires, E-Tag`. ``` Identify all of the following HTTP methods that will give the same output irrespective of the number of times the methods are invoked: - GET - PUT - POST - DELETE - HEAD - PATCH ``` ``` Identify all rules that should be followed when designing a good URI: - URIs should never be changed - URIs must be constructed by the client - URIs should be short in length - URIs should be case-sensitive - HTTP verbs should be used instead of operation names in URIs - Use spaces when designing a URI - Redirection must be used if a change in URI is required ``` ``` True or False: the Response Body contains the metadata for the HTTP response message as Key-Value pairs. - True - False, because the Response Code contains metadata for the HTTP response message as Key-Value pairs - False, because Response Body contains metadata for the HTTP response message as Key-Value pairs - False, because the Response Header contains metadata for the HTTP response message as Key-Value pairs - None of these ``` ## HMTL - What is a `doctype`, why do we write it and what is/was it compsoed of? - What is `HTML` short for? - What is `XML` short for? - What is the `DOM` and what is it short for? - What exactly happens when you don't close a `HTML` tag? - What are `self-closing` tags and list some examples? - What is, speaking hierarchialy, higher than the `DOM`? - If `DOM` is a pyramid, what is the base and what is on the tops? - Tell us about some new `HTML5` elements, and explain when they are used? - Think of a use case scenario for an `
` tag? - How do you import a locally hosted video into the page? - How many files and in what exact formats are required to insert a locally hosted video into a page, in order to have a wide browser support? - Does a `
` go inside an `
`, or is it the other way around? Explain please, give us some use cases. - What is `
` tag used for? - What is `
` tag used for? - What are `RDF, microdata, microformats`? - Tell us, from the top of your head, some basic SEO rules that Google imposes? - When do we put scripts before the `` and when do we put them in the end? What is the difference? - How can you accomplish that when a mobile device user taps on a phone number in your page, the phone acctually dials that number for them? ## CSS - What is a `CSS ruleset` composed of? - What happens if you do not close a CSS property line? - What happens if you do not close a CSS declaration? - If the CSS aprser stumbles upon a syntax error, how does it try to solve it? - What is `CSS` short for? - Tell us about some more advanced CSS selectors. ``` - You are presented with the following code. Which properties will `H1` have? h1 { display: block; margin: 0 auto font-size: 24; color: blue; } ``` - What exactly is this 'cascading' nature of the CSS? - Explain the difference between the behaviour of `inline` and a `block` element. - Explain the pros/cons for using `inline-block, flex or floar` elements ina grid. - Did you happen to use `flexbox` and explain a few different use scenarios. - Set some examples for using `relative, absolute, fixed` positioning, and explain the drawbacks of each with an example. ``` - Faced with the following code, explain how would you horizontally position a `div`. How yould you do the same with the `p`?

Foo Bar!

``` - How would you go about horizontally centering an element directly within a `body` tag? Explain pros and cons for each one of the possible ways. - Tell us about some different unit sizes. We need an extensive explanation of differences, pros and cons between them, on some examples. - What are `vw, vh`? - When we use a percentage unit to determine the width of a block element, based on what does the browser determine 100%? - What is the default `font-size` in most desktop browsers? And on mobile? - What ways are there to implement a custom font into the page? - What extensions and file types re needed in order to achieve a wide broser support when importing a custom font? - Do you know of any different conventions of naming CSS elements and selectors? - Is it possible to create a responsive website without media queries? - What is the right way to add a shadow to text? ## JavaScript - What would be the difference between `==` and `===`? Tell as about as much examples as you can remember. - What exactly does happen if you compare any combination of the following values: `0, "0", NULL, false`. For example: `if ( "0" == "true" )` - Explain the term `hoisting`, with some examples. - What does incrementation mean? How do we do it? Explain two ways. - What does `i--;` mean? - If JS compiler stumbles upon a syntax error, hot does it try to cope? - What is Vanilla JS? - What is a difference between framework and a library? - Tell us about some libraries you have used so far? - What is `this`? Give us some examples of using it in pratice. - If you have alistener on an element, what does `this` reference within the delegate function? - What is `Yoda notation`? - What is `camel case` and how do we write it? - Have you ever had any difficulties in communicating with servers? - If we try to include a file from another server within our `