¿Por qué debería elegir un título de ingeniería de software en lugar de un campo de entrenamiento de codificación?

La creación de software es un proceso de dos etapas:
1) Diseñar el sistema.
2) Escribir código para implementar el sistema diseñado.

Para ser un buen diseñador de sistemas, necesita saber sobre:
1.1) Obtención de requisitos: para comprender lo que está construyendo, por qué lo está construyendo y cómo sería el resultado final.

1.2) Arquitectura de software: para construir sistemas escalables que cumplan con los requisitos descritos. Identifique las tecnologías principales, comprenda los méritos y deméritos de cada una y seleccione las tecnologías que mejor se adapten a los requisitos de su proyecto. Por ejemplo, ¿debo usar RoR o PHP, MySQL o Postgres, Unix o Apache, etc.

1.3) Análisis y mitigación de riesgos: identifique los riesgos clave que podrían afectar su proyecto en particular y descubra una forma de mitigar esos riesgos. Por ejemplo, mi MVP Bob se va a casar y no trabajará durante un mes, ¿cómo lleno los zapatos de Bob? ¿Contrato a un contratista por un mes? ¿Cómo me aseguro de que la ausencia de Bob no retrase el proyecto?

1.4) Planificación y gestión de proyectos: para traducir la complejidad del proyecto en términos de horas hombre, realizar un seguimiento del progreso del proyecto y asegurarse de entregar un proyecto de buena calidad de manera oportuna. Por ejemplo, ¿cuántas horas hombre se requieren para esta tarea? ¿Cuántos ingenieros necesito? ¿Cómo hago un seguimiento del progreso?

1.5) Procesos de desarrollo de software: para diseñar e implementar procesos de mejores prácticas que regirán sus esfuerzos de desarrollo y garantizarán que entregue productos de buena calidad.

Una vez que tenga todo esto cubierto, salte al # 2 arriba: escriba el código.

Las academias de codificación son excelentes para el # 2 pero no tanto para el # 1. Le ayudarán a conseguir un trabajo enseñándole a utilizar las herramientas necesarias para crear software, no para diseñar uno.

Para ser un buen gerente de producto, necesitará un conocimiento profundo en administración de software (algunos temas anteriores). Para adquirir ese conocimiento, puedes:
1) Ascienda (Ingeniero de Software a Ingeniero de Software Senior a Ingeniero Principal a Gestión de Producto) trabajando en una empresa de software, aprendiendo habilidades importantes (Certificaciones | Project Management Institute) en cada etapa, lo que tomará entre 5 y 10 años.

2) Vaya a la escuela y obtenga un título en Ingeniería de Software (~ 5 años), desarrolle la experiencia que ya ha acumulado y conviértase en Gerente de Producto.

De la revista Inc.:

El mes pasado, dos de los campamentos de codificación más grandes y mejor considerados del país cerrado Si bien todavía hay más de 90 campamentos de este tipo en los EE. UU. Y Canadá, estas escuelas de ingeniería de software intensivas con fines de lucro no preparan con éxito a sus estudiantes para trabajos de programación . Según un artículo reciente de Bloomberg, el reclutador de Silicon Valley Mark Dinan caracterizó los bootcamps como “ una broma loca “, mientras que representantes de Google y Autodesk dijeron respectivamente que “la mayoría de los graduados de estos programas no están preparados” y “las escuelas de programación no lo han hecho”. ha sido un gran enfoque para [nosotros] “.

En cierto sentido, el fracaso en la codificación de bootcamps refleja el fracaso casi universal de las universidades, colegios y escuelas autónomas con fines de lucro para proporcionar una educación utilizable. En otro sentido, sin embargo, la codificación de bootcamps representa un profundo malentendido de lo que se trata la programación de computadoras … La codificación a nivel profesional es altamente especializada y requiere años de práctica para dominar … la idea de un bootcamp para la codificación es tan práctica como la idea de un bootcamp para cirugía “.

¿Qué tal una tercera opción: continuar trabajando en su trabajo diario y obtener su título de ingeniería de software por la noche a través de cursos en línea? Recomiendo encarecidamente que obtenga la licenciatura en ingeniería de software, gran parte de su competencia por los trabajos lo tendrá. Eso no hace que sea imposible, solo más difícil, conseguir la posición que deseas. ¡Los mejores deseos!

Esta es una gran pregunta que incluso mi estudiante nos dijo en el primer año de la universidad y que dejaría de estudiar.

Pero después de ser un buen codificador, debe organizar el ciclo de vida del software, necesitará un nivel de ingeniería de software.

Después de conocer muy bien un idioma, irás a otro idioma, debes ser multilingüe como lo has enseñado en la universidad

Probablemente necesitará algunos conocimientos de hardware, como memoria, para mejoras como, por ejemplo, que le enseñen

Deberá aprender algoritmos, diagramas de flujo, etc.

Quiero decir que en su mayoría los necesitarás para progresar y debes demostrar que eres capaz de tener un graduado en tales campos.

Quizás haya algunas excepciones, como Bill Gates, pero hay cientos de miles de ingenieros que trabajan en el campo.

Los bootcamps son geniales, pero no te enseñan tanto sobre lo que aprenderías para obtener tu título. Los títulos aún significan algo y no tener uno no te puede detener de muchas oportunidades.