Cómo revisar las habilidades de los desarrolladores de JavaScript para encontrar lo mejor - guía para el reclutamiento de IT

Por octubre 19, 2016 #!31Mié, 21 Oct 2020 16:04:04 +0200p0431#31Mié, 21 Oct 2020 16:04:04 +0200p-4Europe/Warsaw3131Europe/Warsawx31 21pm31pm-31Mié, 21 Oct 2020 16:04:04 +0200p4Europe/Warsaw3131Europe/Warsawx312020Mié, 21 Oct 2020 16:04:04 +02000440410pmmiércoles=269#!31Mié, 21 Oct 2020 16:04:04 +0200pEurope/Warsaw10#octubre 21st, 2020#!31Mié, 21 Oct 2020 16:04:04 +0200p0431#/31Mié, 21 Oct 2020 16:04:04 +0200p-4Europe/Warsaw3131Europe/Warsawx31#!31Mié, 21 Oct 2020 16:04:04 +0200pEurope/Warsaw10# Prueba de codificación, Reclutamiento de IT, Consejos de reclutamiento
JavaScript: software engineer interview questions

1. What is JavaScript?

JavaScript (also known as JS) is high-level, prototype-based, untyped, dynamic language. Depending on the environment JavaScript can be interpreted or compiled. It is a multi-paradigm programming language, supporting object-oriented, imperative and functional programming styles.

JavaScript started as a browser-only language, adding many possibilities for enhancing websites already written with HTML and CSS. In 2009 everything changed. Now, JavaScript can be used anywhere (literally everywhere, even in spacesuits) because of Node.js – which is JavaScript runtime environment based on Google’s V8 JavaScript Engine. Applications written in JavaScript can be very fast if they are made by skilled developers. Because of very low entry level into JavaScript world, it’s now one of most popular languages in use.

Remember: Java and JavaScript are not the same programming language. Developers are sensitive about their favorite languages so it’s very important not to confuse names.

2. What is important for IT Recruiter to know about JavaScript?

Demand for JavaScript Developers is rising very fast. There are a few things you should know when you are looking for JS developer.

– As I previously mentioned, JavaScript is very easy to pick up. With few lines of code you can change the behavior of the website or make simple HTTP Server with Node.js. And this is also JavaScript’s pitfall – a lot of developers are learning only small parts of language just to get things done. To write high quality, fast applications you need to have very good knowledge of JavaScript itself.

– There is saying in JavaScript world – „Day without new JavaScript framework is a day lost”. New tools are popping up like mushrooms in rainy weather. I do not condemn this – It’s quite the opposite – I encourage it. This phenomenon shows us how creative and passionate JavaScript community is. But such state of things has one huge drawback – we require from developers knowledge about frameworks that have been just created. Very good knowledge of popular frameworks is important to write efficient JavaScript applications fast but it is better to have a developer with huge experience with pure JavaScript and older frameworks or libraries to learn new tool than to have a developer who follows blindly what is new without a deep understanding of language.

– On the other hand, sometimes pure JavaScript is not enough. You can do everything from the scratch but it’s time-consuming and as we all know – time is money. Good JavaScript developer should know at least one popular, battle-tested framework or library. And because the ecosystem is constantly changing, knowledge about tools that were used 2-3 years ago can be outdated.

– You need to know what kind of JavaScript developer you are looking for – is it someone who will join Front-end team? Or it is someone who will work with server-side applications?

Or maybe is it someone who will work on hybrid móvil applications or Internet of Things devices? Core understanding of language in these cases is the same. However, each one of these developers should have different knowledge related to their work field.

– For high-level positions, commercial experience is required but for junior or even mid-level developers interesting portfolio with a well written code on one of popular repository hosting services (such as GitHub) can be just as good. Bonus points if a candidate is a contributor to Open Source projects.

3. How to verify JavaScript skills in screening phase?

Screening is hard when you don’t know technologies used by developers. It is even harder when everything is changing so fast like in JavaScript ecosystem. So, let’s move to a few practical reclutamiento tips how to verify habilidades of JavaScript Developers.

3.1 Technical screening of JavaScript skills based on CV

JavaScript technology – basic glossary of JavaScript terms for IT reclutadores

Candidate’s CV can tell us a lot of useful information but you need to know how to pick what is most important. There are many different technical phrases on each resume and it’s very important not to be confused by them. As Technical Recruiter looking for JavaScript Developer, you need to be familiar with all terminology used by candidates.

You will find useful information below – it will help you maintain sanity while screening.

JavaScript glossary for technical recruiters

JavaScript versionsEcmaScript 5 (ES5 – available everywhere), EcmaScript 6 (ES6 – available in newest browsers), EcmaScript 2016 (ES7 )
JavaScript frameworks and librariesAngular.js, jQuery, React, Backbone, Ember, Vue.js, Polymer, Aurelia, Knockout, Rx.js
JavaScript frameworks for Node.jsExpress.js, Hapi.js, Koa, Sails, Meteor
Node.js package managersNPM, Bower, JSPM
Node.js based task runners and build toolsGulp, Grunt, Broccoli, Webpack
JavaScript testing frameworksCasper, Mocha, Jasmine, Jest, Karma
JavaScript transpilersTraceur, Babel
Hybrid mobile apps frameworksSencha Touch, Ionic, Apache Cordova, IntelXDK
JavaScript supersets or languages that compile to JavaScriptTypeScript, CoffeScript, Elm, Dart

These are the basics. Now we can go deeper. There is a variety of tools, frameworks and libraries and each of them is different. To make things spicier, there can be large differences in tools versions. If a candidate states that they know AngularJS, is it a version of framework our client is looking for? Keep reading and everything will be clear.

Most Common JavaScript names that are used interchangeably:

– JS, JavaScript, EcmaScript

– Node.js, Node, Server-side JavaScript runtime environment

– Hybrid aplicación, Hybrid mobile application, hybrid app

Relations between respective versions of JavaScript technology:

– EcmaScript 6 extends EcmaScript 5 (JavaScripts needs to be backward compatible, otherwise new versions would break the Web)

– jQuery 1.x , 2.x and 3.x are similar

– Angular 1.x is totally different from Angular 2.x

– Core concept is same but there are differences between each major version of React

– Vue 1.x is totally different from Vue 2.x

– Applications written with Ember.js 1.x still work with 2.x

– Core concept is same but there are differences between each major version of Node.js

– NPM 3.x is richer version of NPM 2.x

También es valioso tener en cuenta las relaciones siguientes:

– MV* Frameworks – If someone knows one of Ember, Knockout or Angular 1.x then will be able to deal with rest

– Hybrid mobile apps – If someone knows Angular or React then will be able to make hybrid mobile application

– Server-side applications – If someone knows Express, Hapi, Koa or Meteor then will be able to deal with rest

Other information on resume that can show developer’s JavaScript skills:

Because of constantly changing the world of JavaScript, there are no certificates that can prove candidate’s skills. Well, there is one. And it’s GitHub account. Good JavaScript developers often participate in Open Source projects as contributors or are making software by themselves for the greater good. In such environment, they are exposed to other developers which are constantly checking their quality of code. Sharing your code with others is the best way to be a better developer.

Another aspect is participation as a speaker in JavaScript conferences. Very often developers with very high skills in a particular field are invited to various places to talk about their experiences with these technologies.

3.2 Technical screening of JavaScript skills during phone/video technical interview

Resume can tell us something about developer’s skills but it won’t tell anything about developer itself. That’s why interviews via phone call or video conferencia are so popular – skills are important but we need to know with what kind of person are we dealing – and even more important – with what kind of person might our client’s teamwork. That’s why proper preparation before an interview is needed.

Below you will find few example questions that will tell you more about the candidate. I hope they will make searching for right candidate easier.

  1. JavaScript interview question concerning developer’s experience

Q1: With which technologies listed in you CV, did you have commercial experience in past 2 years? What were your responsibilities?

Por qué preguntarle a Q1: Haciendo esta pregunta, puede averiguar más sobre la experiencia actualizada en Java del candidato, sus responsabilidades y logros. De esta forma, conocerá mejor a su candidato.

  1. JavaScript interview questions concerning developer’s knowledge and opinions

Q2: Which JavaScript libraries are you consider to be valuable and why?

Por qué preguntarle a Q2: This question shows us candidate’s knowledge about JavaScript ecosystem. We can see whole  regarding choosing technology.

Q3: Me he dado cuenta de que has incluido el marco X en tu currículum. ¿Qué opina al respecto? ¿Es una buena elección?

Por qué preguntarle a Q3: These questions show us knowledge about particular technology. Uncertain and shaky answers can help us find lies in a resume. You can also play devil’s advocate based on their answers “But why not use framework Y for that?”. Thus you can see how the candidates choose a technology, justify their choices and whether his opinions are in line with your IT teams.

Q4: If you would like to learn new technology connected to JavaScript, what would it be?

Por qué preguntar a Q4: Answer to this question demonstrate candidates approach to learning and can help us find developers who are still using outdated knowledge acquired in past.

  1. Java interview question concerning developer’s decision making regarding JavaScript technology

Q5: ¿En qué etapa se unió a los proyectos recientes? ¿Participó en la elección de la tecnología o en la configuración del proyecto? En caso afirmativo, ¿qué tecnología eligió o recomendó para el proyecto y por qué?

Por qué preguntarle a Q5: Such a questions shows not only how a candidate makes choices regarding technology but also whether they were included in making decisions. Especially important if you are looking for someone with experience.

  1. Behavioral question for JavaScript developer

Q6: Piensa en la decisión del proyecto de programación que tomaste y que fue un fracaso. ¿Por qué crees que fue un error? ¿Por qué sucedió? ¿Podría hacerse algo diferente para convertirlo en un éxito? ¿Qué medidas tomaste para mejorar la situación? ¿Qué aprendiste de esta experiencia?

Why ask Q6: Este tipo de preguntas le ayudará a averiguar cómo percibe el candidato sus decisiones, saca conclusiones y cuánto aprende de su experiencia anterior.

Q7: Are you contributing to any Open Source project or maybe are you maintaining your own Open Source Project? Are you attending any JavaScript conferences?

Why to ask Q7: Questions like these show us if a candidate wants to share their knowledge and wants to be a meaningful part of JavaScript ecosystem. People with a strong will of sharing their experience are often good team players.

Check our complete JavaScript developer salary guide.

 

Author – Mateusz Rojecki Front-end Developer @ Coders Lab

Coders LabCoders Lab (www.coderslab.pl) is the biggest coding school in Poland which is active in Warsaw, Crakow, Katowice, Wrocław, Poznań and Łódź. During six-week bootcamp students learn web development technologies: front-end or back-end. Our teaching methods focus on 4 areas: practice, work with mentor, building student’s portfolio and career support. We adjust program to current technology needs of market in order to support knowledge-based education. Over 300 students graduated bootcamps.

 

DevSkiller ready to use online JavaScript coding assessment tests

DevSkiller helps companies in IT recruitment process by providing them with an infrastructure which lets them test programming skills of candidates in the environment which imitates 1st day at work experience. We allow companies to use their own code base, whole IT projects using frameworks and libraries, to test programadores en línea. However, we also have some ready-to-use JavaScript coding tests which you can use in your technical recruitment campaign.

Reacciona
MIDDLE
Habilidades probadas
Duración
113 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación - Nivel: Duro

JavaScript | React, Redux | Agenda - Implementa las características que faltan de una pequeña aplicación web de React construida sobre Redux.

Tarea de programación - Nivel: Medio

JavaScript | Node.js | Libreta de direcciones - Implementar puntos finales para obtener la lista de contactos (con una coincidencia de fase y limitación de resultados), obtener los detalles de un solo contacto y eliminar el contacto dado.

Lagunas en el código

evaluando el conocimiento de MongoDB

Java
JUNIOR
Habilidades probadas
Duración
120 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación de Front End - Nivel: Fácil

JavaScript | TypeScript | Aplicación de facturas - frontend - Implementa la parte del frontend para fusionar y agregar los datos de la factura con los tipos de cambio de la moneda.

Tarea de programación del Back End - Nivel: Fácil

Java | Aplicación de facturación - backend - Implementa la parte del backend para buscar y agregar los datos de la factura con el servicio y los métodos DAO.

JavaScript
SENIOR
Habilidades probadas
Duración
57 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de ES6, JavaScript, HTML, CSS, Accesibilidad

Tarea de programación - Nivel: Duro

JavaScript | Memorización funcional - Escriba las dos versiones del mecanismo de memorización genérica.

Angular
JUNIOR
Habilidades probadas
Duración
44 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Angular2+, JavaScript

Lagunas en el código

evaluando el conocimiento de Angular2+, JavaScript

Tarea de programación - Nivel: Fácil

JavaScript | Angular 2+ | Calculadora de divisas - Termina una aplicación que debe convertir la cantidad de dinero en la moneda seleccionada a USD.

Redux
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de JavaScript, Redux

Tarea de programación - Nivel: Fácil

JavaScript | Redux | Departamento de RRHH - reductores - Ponga en marcha correctamente los reductores y selectores de redux.

JavaScript
SENIOR
Habilidades probadas
Duración
46 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de ES6, JavaScript

Tarea de programación - Nivel: Duro

JavaScript | Memorización funcional - Escriba las dos versiones del mecanismo de memorización genérica.

TypeScript
SENIOR
Habilidades probadas
Duración
105 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de Tipo de letra

Tarea de programación - Nivel: Duro

TypeScript | Social Media Queries | Find friends by name - Implementar la función FriendsQueries#queryByNameMatching según los requisitos y hacer que todas las pruebas pasen.

JavaScript
JUNIOR
Habilidades probadas
Duración
50 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de JavaScript

Tarea de programación - Nivel: Fácil

JavaScript | Búsqueda de palabras - Inicializar el objeto de la Búsqueda de palabras para mantener la letraGrid e implementar el método de búsqueda que buscará una cuadrícula dada en todas las direcciones.

Reacciona
SENIOR
Habilidades probadas
Duración
175 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Tarea de programación de Front End - Nivel: Senior

JavaScript | React, Redux | Agenda - Implementa las características que faltan de una pequeña aplicación web de React construida sobre Redux.

Tarea de programación de la parte trasera - Nivel: Medio

JavaScript | Node.js | Address Book - Implementar puntos finales para obtener la lista de contactos (con una coincidencia de fase y limitación de resultados), obtener los detalles de un solo contacto y eliminar el contacto dado.

Reacciona
JUNIOR
Habilidades probadas
Duración
35 minutos como máximo.
Evaluación
Automático
Resumen de la prueba

Preguntas de elección

evaluando el conocimiento de JavaScript, Reacciona

Tarea de programación - Nivel: Fácil

Javascript | Reaccionar | Notas de Calendario - Implementar una aplicación con la que el usuario pueda añadir una nota para una fecha que elija de un calendario.