Bueno, antes que nada: solicite incluso si no tiene todos los años. Rara vez es un requisito difícil y más una indicación de qué tipo de capacidades está buscando la empresa. Si parece interesante, puede pasar a la etapa de entrevista, y si demuestra las habilidades requeridas, tiene todas las posibilidades de ser contratado.
He contratado a mucha gente.
Esto es lo que buscaría en un buen desarrollador con cero años de experiencia:
- ¿Por qué el diseño de CS / software es mucho más popular que el diseño de CPU / circuito integrado?
- ¿Cómo se escala una organización de ingeniería de software? 5 -> 15 -> 60 personas?
- ¿Cuáles son algunas malas experiencias que ha tenido con la gestión del desarrollo de software?
- Cómo escribir código para un fondo de pantalla que cambia semanalmente
- Para convertirme en un ingeniero de software con las oportunidades más abiertas, ¿debería especializarme en ciencias de la computación o ingeniería de software? Muchas universidades superiores solo tienen una u otra (Ejemplo, Berkeley con informática pero no ingeniería de software).
- Pasión por el producto y la empresa!
- La capacidad de aprender cosas rápidamente y enfrentar desafíos desconocidos
- Una buena actitud y disposición para recibir comentarios, combinada con el hambre de comprender cuál es la mejor manera de hacer algo.
- Una comprensión decente de los principios básicos de OOP y cualquier tecnología con la que trabajemos
Esto es lo que buscaría en un desarrollador con algunos años de experiencia:
- La capacidad de poseer cosas. No solo haciendo lo que se les dice, sino resolviendo y manteniendo proactivamente a las personas informadas sobre los desafíos
- Poder saber si el código es fácil de mantener y si es importante. Lo mismo para el rendimiento.
- Tenga la sabiduría de decir si un patrón de diseño es adecuado para un problema o no
- Una tendencia a refactorizar continuamente la base de código para que sea mejor, pero con la sabiduría de decir cuándo retroceder y no caer en la trampa de pasar tiempo cambiando las cosas para obtener beneficios mínimos.
- La capacidad de detectar debilidades en el proceso del equipo y tener ideas para mejores formas de hacer las cosas.
- La capacidad de asesorar y orientar a más desarrolladores junior sobre cómo escribir código que sea mejor
- Exposición a trabajar en bases de código que por una razón u otra fueron terribles, fomentando la sombría determinación de aprender de los errores del pasado
- Después de haber tenido experiencias increíbles, proporcionando planos útiles sobre cómo se pueden hacer las cosas
Hay muchas cosas que solo aprende de años de experiencia. Si está formando un equipo, es una buena idea asegurarse de tener personas allí que puedan brindarle orientación que fortalezca al equipo en su conjunto, apoyándose en sus éxitos y terribles errores.