Skip to content

Latest commit

 

History

History
232 lines (190 loc) · 13.3 KB

File metadata and controls

232 lines (190 loc) · 13.3 KB

shieldsIO shieldsIO shieldsIO

WideImg

Máster en Programación FullStack con JavaScript y Node.js

JS, Node.js, Frontend, Backend, Firebase, Express, Patrones, HTML5_APIs, Asincronía, Websockets, Testing

Clase 25

Notas

Elige tu camino como developer

Imagen

¿Cúal es tu relación?

  • Freelance/Nómada digital
  • Developer por cuenta ajena
  • Modelo hibrido

¿Qué haces?

  • Desarrollas activamente (Software Engineers - SWE)
  • Desarrollas parcialmente (Engineering Managers)
    • Lideras producto
    • Organizas y dinamizas el equipo
  • No desarrollas pero aportas conocimiento técnico (Company Leadership)
    • Team Lider/Manager
    • Arquitectura y sistemas
    • CTO
  • Otras combinaciones
  • Sin desarrollo activo
    • Preventa
    • Ingenier@ de soporte
    • etc...

Entrevistas: Lo común al resto de los mortales

  • Preparate un pequeño discurso sobre ti y tus habilidades
  • Ten en mente algunos retos que has superado en el pasado
  • Estudia la empresa en la que quieres trabajar
  • Pregunta a tu red de contactos por la empresa y busca conocidos en el entorno
  • Cuida tu imagen y no te pongas ropa con la que no trabajarias
  • Llega con tiempo y se educado
  • Prepararte para hablar sobre ti y gestionar preguntas
  • No te quedes con dudas
  • Aclara las cosas poco claras de la oferta y confirma todos los detalles (salario, condiciones, etc...)
  • Antes de dejar un empleo, firma un contrato y asegurate que todo esta correctamente reflejado
  • Pregunta por las politicas del "salario emocional" (remoto cuantos días, horario reducido, apredizaje...)
  • Intenta conseguir formación o recursos para seguir formandote en horario laboral
  • Pregunta sobre su politica de Open Source y autoria del código
  • Pregunta por las condiciones y limites del NDA(s)
  • Pregunta por la compatibilidad y clausulas especiales con otros empleos del sector
  • Revisa las clausulas con alguien expert@ en la materia

Entrevistas: Lo especial del sector

  • No tener todo lo que piden es NORMAL!
  • Preguntar por las tecnologías que usan
  • Preguntar por la metodología de trabajo
  • Pedir ver código/diagramas/Etc...
  • Preguntas sobre tu puesto actual
  • Preguntas sobre tus tecnologías actuales y retos
  • Ejemplos concretos de tu trabajo
  • Retos lógicos (la cerilla, la cabra y el rio, etc...)
  • Preguntas concretas o mas abiertas sobre las tecnologías que utilizan
  • Proyectos en lso que has trabajo que te hacen sentir orgullo
  • Cosas que cambiarias en proyectos anteriores, con la vision que da la experiencia
  • PetProjects, sideprojects, charlas, comundiades y demás...

Parte técnica

  • Resolución de algoritmos (empresas muy grandes)
  • Coding Challenge (muy común)
  • Puzzles and Brainteasers (poco común)
  • Pair coding (muy poco común)
  • Technical Whiteboarding (demasiado popular)

Inspiración y recursos

Algunas preguntas típicas con lo que sabemos hasta ahora

Preguntas generales

  • ¿Qué es una arquitectura server render? ¿Qué diferencias tenemos con una arquitectura basada en AJAX?
  • ¿Cómo gestiona el navegador la descarga de recursos de un mismo dominio?
  • ¿Si usas un control de versiones...? ¿Qué metodología recomiendas? y... ¿por que?
  • ¿Si podieras aprender una tecnologia nueva ahora mismo... cual sería?
  • ¿Qué cosas tengo que tener en cuenta en 2018 para crear un sistema web?
  • ¿Tienes alguna recomendacion de como gestioanr el trabajo en un equipo multidisplicanr (back/front) para desarrollar una web usando AJAX?
  • Animaciones con JS o con CSS?
  • Jquery o no... ? por que?
  • ¿Qué es una API? ...y Restfull?
  • ¿Cómo gestionas la accesibilidad?¿Cómo la testeas?

HTML

  • ¿Qué es y para que sirve doctype?
  • ¿Qué utilidad tienen los atributos data-?
  • ¿Qué diferencia <script>, <script async> y <script defer>?

CSS

  • ¿Qué es la especificidad en CSS?
  • ¿Qué se entiende por "cascada"?
  • ¿Qué nomenclatura utilizas en CSS y por que?
  • ¿Qué preprocesador recomendarias para un proyecto pequeño?¿Y.. para uno grande?
  • ¿Cómo enfocarias el refactor de un código legacy?
  • ¿Cómo plantearias una migración de Bootstrap a nuestro propio CSS?
  • ¿Cómo funciona una media Query? Haz un ejemplo
  • ¿Cuantos Box-sizing tenemos? y.. ¿Qué los diferencia?
  • Hablame sobre la propiedad display
  • Si tengo que dar soporte a IE11 que estratégia me recomiendas... ¿Qué evitarías utilizar? ¿Usarias polyfills?
  • ¿Qué tienen de especiales las pantallas retina?
  • ¿Cómo documentas tu CSS?

JavaScript

  • Diferencias entre == y ===...
  • ¿Cómo funciona la delegacion de eventos?
  • ¿Qué me aporta preventDefault?
  • ¿Cuando uso map, forEach o for...?
  • ¿Qué diferencia function Person(){}, var person = Person() y var person = new Person()?`
  • ¿Cuentame como funciona AJAX y ponme un ejemplo sencillo en la pizarra
  • ¿Qué es JSONP? Cuando lo usuarias?
  • ¿Qué es el bubbling?
  • ¿Qué difernecia un metodo de una propiedad en un objeto?
  • ¿Qué es un operador tenario? Cuando y como se usa?
  • ¿Qué es use strict;?
  • ¿Qué herramientas me ofrece el navegador para depurar mi proyecto?
  • ¿Qué me aporta que JavaScript no sea compilado?
  • ¿Qué quiere decir que las funciones de JavaScript son de primera clase?
  • ¿Qué es una función anonima autoejecutada? Pon un ejemplo...
  • ¿Qué me aporta onclick() y addEventListener?
  • ¿Si tengo un proyecto de IE8 como harias un polyfill de attachEvent y addEventListener?
  • ¿Cómo compartes codigo entre ficheros?¿Y sui tengo funciones anonimas autoejecutadas?
  • ¿Qué diferencia function foo() {} y var foo = function() {}?

Más preguntas interesantes, algunas con respuestas :-)

Donde buscar empleo

Ejercicios

NASA Rover Challenge

img

Context The purpose of this test is to enable you to demonstrate your proficiency in solving problems using software engineering tools and processes. Read the specification below and produce a solution.

Your solution should be in the form of completed code. The problem specified below requires a solution that receives input, does some processing and then returns some output.

Specification A robotic rover is to be landed by NASA on a plateau on Mars. This plateau, which is curiously square, must be navigated by the rover so that its on board cameras can get a complete view of the surrounding terrain to send back to Earth.

A rover's position is represented by a combination of an x and y coordinates and a letter representing one of the four cardinal compass points.

The plateau is divided up into a grid to simplify navigation.

An example position might be 0, 0, N, which means the rover is in the bottom left corner and facing North. In order to control a rover, NASA sends a simple string of letters. The possible letters are 'L', 'R' and 'M'.

'L' and 'R' makes the rover spin 90 degrees left or right respectively, without moving from its current spot. 'M' means move forward one grid point, and maintain the same heading.

Assume that the square directly North from (x, y) is (x, y+1).

Input The first parameter is the size of the square (the lower-left coordinates are assumed to be 0,0).

The rest of parameters is information pertaining to the rover that has been deployed.

The second argument gives the rover's position, and the third is a series of instructions telling the rover how to explore the plateau. The position is made up of two integers and a letter, corresponding to the x and y coordinates and the rover's orientation.

Output The output should be the final coordinates and heading.

Example function setup(5, “1 2 N”, [“L”, “M”, “L”, “M”, “L”, “M”, “L”, “M”, “M”]) Expected Output: “1 3 N”

Soluciones