Esta posición parece una posición de tipo ingeniero de pila completa, en mi opinión:
- “Tecnología web (HTML, CSS, JS)” es una interfaz
- “Docker, AWS” es la administración del sistema
- Java es backend
Para cualquiera de estas áreas, necesitará conocer el algoritmo y la estructura de datos. Es posible que no necesite un conocimiento avanzado en la estructura de datos para la administración de la interfaz y del sistema, pero tener un mínimo hará la diferencia entre un desarrollador normal y un gran desarrollador.
La estructura de datos y el algoritmo son temas bastante importantes durante los procesos de entrevista. Todas las entrevistas técnicas que he visto contenían algunas de ellas, para muchas compañías. Por lo general, las principales empresas como Facebook, Google o LinkedIn requerirán que tenga un conocimiento sólido en estructura de datos y algoritmo (porque la escala a la que operan requiere que sus ingenieros optimicen los algoritmos para la escala). A menudo, durante las entrevistas técnicas, deberá responder preguntas / resolver problemas que no reflejarán en absoluto el trabajo diario que implicará este puesto, pero desafortunadamente, ese es el único que puede obtener el trabajo.
- ¿Qué grado es mejor para un trabajo de desarrollo de software? Informática | El | ¿Desarrollo de software? Escuelas que ofrecen títulos de SD (UMUC, WGU, CTU).
- ¿Qué debo incluir en mi currículum para ser considerado para el puesto de Business Analyst?
- ¿Por qué la gente quiere unirse a la marina mercante a pesar de ser una mala opción de carrera?
- Cómo prepararse para una entrevista de Enterprise Architect
- Cómo hacer MBA mientras trabajas en TCS
Tengo un sólido conocimiento de las entrevistas técnicas, ya que estoy trabajando en la industria durante una década y estoy dirigiendo una escuela de ingeniería de software que capacita a ingenieros de software completos. Mis estudiantes han aplicado a un número de pequeñas y grandes empresas, así como a una variedad de roles y estos 2 temas siempre surgen.
Agregaría que, además de sentirse cómodo con las estructuras de datos y el algoritmo, debe sentirse cómodo al explicarlo y explicarlo en una pizarra, nuevamente para entrevistas técnicas.
Mi observación como ingeniero de software y ahora cofundador de una escuela de ingeniería de software es que hay una brecha entre lo que necesita saber para obtener un trabajo y lo que necesita saber para ser bueno en su trabajo:
- Para obtener el trabajo : estructura de datos / algoritmo / pizarra / conocimiento teórico
- Para ser bueno en tu trabajo: habilidades prácticas
A medida que se formula su pregunta, “sí” podría considerarse una pérdida de tiempo, pero así es como funciona la industria del software.
Algunas recomendaciones para estar en la cima de tu juego:
- El libro “Cracking the Coding Interview”
- El libro “The Algorithm Design Manual”
- Practica en HackerRank y entrega más rápido a través de Crowdsourcing
¡Buena suerte y si te gustó mi respuesta, por favor vota! :)!