OpinionT2 Dark_1200x303

Interviews can be stressful; the better prepared you are, the higher your chance of succeeding. This article shares useful tips and learning resources to help you prepare and become a better developer.

Interviews can be very stressful, especially if you are about to have your first one ever. If you managed to get an invitation to one, then congratulations. To increase your chances of getting a job, it is crucial to prepare thoroughly.

Interview difficulty may vary depending on the position you have applied for, and what kind of company you are interviewing with. Companies will expect different levels of knowledge from junior developers than seniors.

Unfortunately, there are exceptions where companies look for developers with knowledge and experience of a senior, but only offer junior salary. In a situation like this, there is just one thing to do: run away, fast. However, if you have an interview for a good position, then the tips below should help you ace it.

Things to Know about JavaScript

Quite often, new developers tend to jump straight into libraries and frameworks like React, Vue or Angular, and forget to learn about JavaScript basics and important concepts. In the past, I interviewed developers who claimed to have years of experience working with various frameworks, but when asked about things like closures or scopes, they could not answer correctly.

Frameworks do make our lives easier as they abstract a lot of functionality like handling DOM updates, and provide useful features. However, if you are not aware of the basics and how the language works, then there is a higher chance of writing buggy code and not understanding the reason for it. Here is a list of things that I think are must-haves for a professional JavaScript developer:

  • How does JavaScript work—single threaded with event loop?
  • Differences between var, let and const, and how they work.
  • What are arrow functions and how do they differ from normal functions?
  • What is a closure?
  • What is a scope?
  • What is hoisting?
  • What is this keyword?
  • What’s a prototype chain?
  • Type coercion, including the difference between == and strict equality comparison ===.
  • Asynchronous JavaScript with Promises and Async/Await.

The more you know, the better. ES6, also known as ECMAScript2015, added a lot of features to the JavaScript language, and you can see examples here: http://es6-features.org/. Since then, new features are released every year, and even though they are not immediately supported in all browsers, they still can be used thanks to tools like Babel. You can find the latest ECMAScript proposals here—https://github.com/tc39/proposals.

The way we write code changed immensely in the last few years. Nowadays, most new projects involve a degree of toolchains, which consists of tools like webpack for module bundling, Babel for code transpiling so it can be run by browsers that don’t support it yet, or ESLint for code analysis.

It is not necessary for you to know exactly how each of those tools work under the hood, but it is beneficial to be aware of their existence and why they are useful. Popular frameworks do offer pre-configured toolchains out of the box, so there is no need for manually setting everything up. For instance, Vue has Vue-CLI, while React has create-react-app.

No one would want to visit a website and realize that it does not work correctly. Therefore, writing Unit and Integration tests is crucial to ensure an application works correctly and it does not have bugs. If you do not have any experience with testing, then you might want to research this topic and read more about tools that can be used for it.

Learning and Staying up to Date

In the software industry, it is useful to keep up to date with the latest features and emerging patterns. However, it might be hard to do so while having a full-time job, a family and other responsibilities.

Personally, I am subscribed to multiple newsletters that often send me emails with variety of articles about different aspects of HTML, CSS, JavaScript, frameworks, etc. Thanks to that, I have a lot of resources that I can go through during a break or when on the go. Some of the newsletters I found useful are:

You don’t have to read all the articles, but a quick scan through titles could help with finding something new or interesting. I learned a lot of new stuff this way. Besides that, you could consider following other developers on Twitter. For example, mentors, contributors and creators of various tools and frameworks.

The above mentioned are useful ways of staying up to date with technologies. However, if you would like to learn something specific, then I can recommend watching videos on platforms like YouTube, Udemy, Coursera, Edx, or Frontend Masters. If you enjoy learning from books, then the “You Don’t Know JS” series by Kyle Simpson is a sea of deep knowledge about JavaScript.

This repository has a lot of free books about various programming languages, JavaScript included: https://github.com/EbookFoundation/free-programming-books/blob/master/free-programming-books.md#javascript. You should also find Mozilla’s JavaScript guide useful: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide.

Furthermore, it is a good idea to search for articles regarding interview questions. Here is a list you might find useful:

Interview Tips

So far, we covered what you can learn about to prepare for an interview. Let’s talk about some tips for the interview itself.

There are certain questions that are asked almost always, like the popular icebreaker, “Tell me about yourself.” This can be answered in many ways, but it also is an opportunity for you to show how passionate you are about what you do. In other words, you want to shine like a diamond. You can talk about past projects you worked on, what challenges you confronted and how you overcame them.

It’s good to mention things you have learned recently and how. If you watch or attend any meetups and conferences, that’s another good point to mention. These things will clearly show that not only you are committed to what you do and that you are up to date, but also the fact that you are willing to learn.

Conclusion

I hope you found those tips useful and that they will help you with your interviews. Preparing well will surely increase your chances of succeeding, so just do your best. If you aren’t successful with an interview, remember, it’s not the end of the world, so don’t be discouraged. Some companies just aren’t a good fit, and everyone gets rejected at some point. Stay positive, keep pushing and good luck!


Thomas Findlay-2
About the Author

Thomas Findlay

Thomas Findlay is a 5-star rated mentor, full-stack developer, consultant, technical writer and the author of “Vue - The Road To Enterprise.” He works with many different technologies such as JavaScript, Vue, React, React Native, Node.js, Python, PHP and more. Thomas has worked with developers and teams from beginner to advanced and helped them build and scale their applications and products. Check out his Codementor page, and you can also find him on Twitter.

Related Posts

Comments

Comments are disabled in preview mode.