Suponiendo que el trabajo es de nivel de entrada y bien remunerado, vería las siguientes cosas, tenga en cuenta que esperaría cosas de ese compañero ya que es un trabajo bien remunerado:
- Enfoque de resolución de problemas : el enfoque es tan importante como resolver el problema en sí mismo, no importa si puede resolver el problema que le doy dentro de una o dos horas, supongamos que le pido que cree un juego de Tic Tac Toe y le doy dos horas para hacerlo, luego, si puede presentar un producto que funcione, entonces es una ventaja, pero no lo calificaría como la base de si el programa se ejecuta o no, vería su enfoque, cómo Pensé y diseñé el programa. En este juego, obtienes puntos de bonificación si completas antes de que termine el tiempo y tienes la estructura adecuada.
- Estructura del código : si el candidato tiene un código bien estructurado, entonces es un plus, y crearía un impacto negativo en la evaluación si no hay una estructura para el código, y por estructura no me refiero al programa modular, quiero decir la sangría , sangra tu código correctamente. Esto se debe a que no es el caso de que el código escrito por usted sea mantenido por usted durante toda la vida del software, por lo que su código debe ser sangrado.
- Estructura de datos y algoritmos: un comando fuerte sobre la estructura de datos y algoritmos es imprescindible . No espero que debas saberlo todo, pero debes ser muy bueno en lo que sabes y ser capaz de adaptarte rápidamente, por ejemplo, si dejo caer algunas pistas, entonces deberías ser capaz de captar las pistas y modificar la respuesta
- Proyectos realizados: este es un aspecto importante que será crítico, los proyectos que la persona ha realizado, ya sea en la universidad o en contribuciones de código abierto, cuando trabajas en proyectos, y por proyectos me refiero a los realmente útiles y no a la “gestión estudiantil normal” sistema “que los estudiantes normales programan en su graduación, debe hacer algo mejor en su proyecto, algo que sea una mejora sustancial en la tecnología existente o crear una prueba de concepto de una nueva tecnología. Es fácil aprender un idioma, y hay una gran diferencia en ser un buen programador y poder completar proyectos a tiempo.
- Rendimiento bajo estrés: cómo uno se desempeña bajo estrés dice mucho sobre esa persona, y si le estoy pagando a alguien un salario alto, entonces esperaría que trabaje igualmente bien bajo estrés
- competente en al menos un lenguaje de computadora: aunque el lenguaje es solo un medio para traducir su algoritmo a un programa que convierte la entrada en salida, aún así debe ser competente en al menos un lenguaje de computadora, junto con eso debe ser muy fuerte en los conceptos OO, también en el enfoque modular [experiencia de haskell es una ventaja].
- Linux o Unix: el candidato debe estar familiarizado con el entorno * nix, el script de shell básico
Entonces, en general, debes ser fuerte en tu conocimiento básico, eso no significa que necesites saberlo todo, ni tampoco significa que pasarás igual de bien si no sabes la diferencia entre un árbol binario y un árbol de búsqueda binaria, necesita conocer los conceptos básicos y demostrar que tiene la capacidad de resolver los problemas que la empresa está resolviendo diariamente.
- ¿Qué startup está trabajando en la construcción de un sistema de seguimiento de candidatos simple, mínimo y asequible para gestionar el reclutamiento?
- ¿Cuál es el verdadero costo de contratar a un empleado?
- ¿Cuáles son las mejores bolsas de trabajo para diseñadores de productos?
- ¿Cómo encuentras y contratas a las mejores personas para una startup en etapa temprana?
- ¿Cuál es el mejor sitio de trabajo para contratar a un desarrollador de nodejs?