- Prepare yourself for a frontend/fullstack interview
- Understand basic aspects of frontend/fullstack interview
- Learn fundamental javascript topics which are must-have for a frontend developer
Front-end developer technical interview: tips#
Try not to google ready-made solutions It’s hard to remember all the subtleties of a specific API and language, so if you use Google during a test assignment during an interview, hardly anyone will mind. But if you have forgotten something, it is better to refer directly to the documentation: your interlocutor will appreciate it. It is much worse if you take a ready-made solution from Stack Overflow and cannot adapt it correctly.
Specify#
Do not hesitate to ask again, clarify, ask questions while solving the test task. If something is not clear to you, or it seems to you that the solution should be different, please clarify. This is much better than doing what you think is right, while the other person is waiting for a different decision.
Deal with mistakes#
Bugs in the process of writing code are always inevitable. Try not to run errors even during a test task, deal with them as they appear. Even a seemingly insignificant change in the decision can affect your assessment, not for the better.
Refresh your coding language skills before your frontend interview#
Even if you write code every day, there may be things that you overlook that might end up in your interview. Spend extra time on documentation. For example, repeat about array.map, array.filter, and array.reduce so you don’t go overboard with loops in your solution.
Don’t forget about testing#
Even if you are not doing tests for your code, you will probably have to do it in your work. You should have at least a basic understanding of code testing: take a look at unit testing and integration tests.
Shortcuts are not necessarily better#
Brevity is the sister of talent only as long as the code remains readable. Performance and code cleanliness are important but don’t get too carried away with shortcuts or your code will end up being a hard-to-read set of methods.
Fundamental javascript and programming topics to learn#
- const & let vs. var
- Hoisting, Arrow function, IIFE
- https://developer.mozilla.org/en-US/docs/Glossary/Hoisting
- https://javascript.info/var
- https://javascript.info/arrow-functions-basics
- https://javascript.info/arrow-functions
- https://flaviocopes.com/javascript-iife
- http://adripofjavascript.com/blog/drips/an-introduction-to-iffes-immediately-invoked-function-expressions.html
- Differences between bind, call & apply functions
- XSS & CSRF (security)
- Job queue & Event loop
- Design patterns like Prototype, Factory, Singleton, Observer
- https://www.patterns.dev/posts/prototype-pattern/
- https://www.dofactory.com/javascript/design-patterns/prototype
- https://www.patterns.dev/posts/factory-pattern/
- https://www.patterns.dev/posts/singleton-pattern/
- https://www.dofactory.com/javascript/design-patterns/singleton
- https://www.patterns.dev/posts/observer-pattern/
- Reference vs Value
- Differences between deep and shallow copies
- Closures
- Call Stack and Heap Memory
- REST API, Cross-origin , Ajax
- https://flaviocopes.com/rest-api/
- https://javascript.info/network
- https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
- https://auth0.com/blog/cors-tutorial-a-guide-to-cross-origin-resource-sharing
- https://en.wikipedia.org/wiki/Ajax_(programming)
- https://www.ibm.com/docs/en/rational-soft-arch/9.6.1?topic=page-asynchronous-javascript-xml-ajax-overview
- Functional programming concepts
- Network protocols such TCP, HTTP, HTTPS, FTP, SSH, SSL, Sockets
- https://www.computernetworkingnotes.com/networking-tutorials/types-of-network-protocols-explained-with-functions.html
- https://bluefinch.com/what-are-the-different-types-of-transfer-protocols-available
- https://www.raywenderlich.com/13209594-an-introduction-to-websockets
- https://www.html5rocks.com/en/tutorials/websockets/basics
- Promises, Async/await
- Understanding the “this” Keyword
- Big O notation basics
- Performance optimizations techniques