¿Cuál es el camino para convertirse en ingeniero de software?

La ingeniería de software es un campo gratificante. Hay muchos “caminos”. Ciertamente, el camino que tomé no es el mismo que la mayoría de la gente toma en estos días. Pero incluso hoy hay muchos caminos válidos.

La ingeniería de software en sí misma es un campo sobre el ciclo de vida que produce software. No solo escribiéndolo. Tales cosas como comprender el problema, definirlo, convertirlo en tareas, dividir las tareas entre diferentes equipos, volver a armarlo para probar, probar, implementar, mantener y solucionar problemas (desde la etapa más temprana hasta la etapa de producción). Según su descripción, supongo que está hablando de escribir el software en sí.

Enseñé algunas escuelas de codificación diferentes en los últimos dos años y cada una adopta un enfoque muy diferente, pero al final de 12 semanas, los graduados consiguen trabajo en alguna parte. Una ruta de autoaprendizaje podría verse así:

  • elige un idioma Recomendaría Javascript y HTML / CSS juntos. Puede construir cualquier cosa con él, incluidas las aplicaciones móviles.
  • Aprende los conceptos básicos del idioma. (bucles, variables, funciones, módulos, etc.)
  • Cree algo como una aplicación de chat, algo que procese archivos, algo que requiera acceso a datos
  • Obtenga más información sobre la programación orientada a objetos (objetos, herencia, polimorfismo, modelado de objetos)
  • Cree algo más, como un visor de fotos, una aplicación de carrito de compras simple, algo
  • Obtenga información sobre la depuración (como herramientas de Chrome, registro, pruebas unitarias, TDD, etc.)
  • Obtenga más información sobre la programación funcional (mapa, reducción, funciones de orden superior, devoluciones de llamada, asíncrono, etc.
  • Comience a aprender sobre NodeJS / Express [o Hapi]
  • Comience a aprender sobre SQL (MySQL o PostgreSQL) y datos relacionales
  • Cree algo más, como una aplicación con reconocimiento de geolocalización (geocaching, hacer un recorrido en algún lugar, hacer turismo, planificar un viaje con estaciones de servicio calculadas y paradas de comida después de cierta distancia, etc.)
  • Aprenda sobre las mejores prácticas (el libro eficaz de Javascript, el código limpio, los patrones de diseño de Javascript, que en realidad no tiene mucho que ver con los patrones de diseño en el sentido tradicional, sino un buen libro para JS)
  • Aprenda sobre el ciclo de vida del software, como Agile (específicamente, iteraciones), pero también sobre otros ciclos de vida, como cascada, RUP, programación Xtreme, etc., pero practique una variante de agile.
  • Cree algo más como una API HTTP / REST de algún tipo, tal vez extendió esa aplicación de reconocimiento geográfico a algo en lo que otros se enganchan, o para que otros puedan usar la aplicación de chat que escribió anteriormente
  • Obtenga más información acerca de OOP, como: patrones de diseño, refactorización, SÓLIDO, SECO
  • En algún momento, ahora estará listo para comenzar a usar bibliotecas que lo hacen todo por usted, pero lo mejor es que no comience allí, debe saber cómo funcionan las cosas porque cada lenguaje, herramienta, nuevo marco es lo mismo en su esencia, reimplementar cualquier otra cosa que ya se haya hecho. Hará que tus habilidades sean más portátiles.

Mencionaste que estás creando una aplicación. Recomendaría seguir construyendo otra aplicación por el bien de la diversidad de habilidades, encontrará muchas cosas que no mencioné que ayudarán, pero tal vez a medida que crezcan sus habilidades, siga construyendo su aplicación a medida que sus habilidades mejoren con lo que usted ‘ he aprendido Esta es una versión condensada de lo que escribí anteriormente sobre esta pregunta de Quora que tiene más detalles.

Encuentre algunos amigos programadores, nada mejor que tener un mentor (o compañero) que tenga experiencia.

Enseño en las escuelas de codificación y, aunque son diferentes, la fórmula general es algo como esto:

  • Aprenda un poco por su cuenta sobre usando Aprender a codificar haciendo | Code School o Codecademy: aprende a codificar, interactivamente, gratis o algo
  • Empezar. Continuarán donde dejaron las habilidades requeridas. Conducirán directamente a algo como el modelado de objetos, llamando a las API REST, un poco sobre HTML / CSS, NodeJS, Express, bases de datos (MongoDB y SQL), seguridad y algunos otros misceláneos. cosas. Todos los lugares que enseñé tenían soluciones parcialmente completadas y tuviste que llenar los espacios en blanco
  • Estructuras de datos y algoritmos. No todos lo enseñan, es necesario, creo. Los que lo hacen, profundizan en varios niveles de detalle. Algunos superficialmente, algunos mucho más deliberados a lo largo de todo el programa.
  • Proyectos Tú eliges qué construir.

Y brindan una comunidad sólida de pares y mentores para superarlo en 12 semanas.

Hacerlo solo no funcionará de la misma manera. Pero para el ritmo personal, el mapa que mostré anteriormente (y en el enlace que proporcioné) debería ayudarlo a llegar allí. Por encima de eso, no tengas miedo de usar Learn JavaScript, React, Angular y más, ¡profundamente! o Pluralsight | Desarrolladores en línea ilimitados, TI y cursos creativos o cursos en línea de Udemy: aprenda cualquier cosa, en su horario como recursos de aprendizaje. Realmente necesitas estar expuesto a lo que los grandes practicantes del campo tienen que decir sobre su oficio. Google, StackExchange, codeproject.com, etc., son tus amigos. Usalos, usalos a ellos.

Cada vez que quieras saber cómo funciona algo, ve a explorarlo y construirlo. Así es como crecí. Construí casi todo como un ejercicio de aprendizaje (y aún lo hago, 20 años después), incluso si reutilizo algo ya construido al completar un proyecto para trabajar.

En resumen, el camino es este:

  • Aprende los fundamentos de . Los conceptos no cambian.
  • Aprende a poner en uso
  • Práctica práctica práctica
  • Aprenda sobre el SDLC
  • Sigue mejorando pero siempre estarás aprendiendo

El camino más seguro es ir a la universidad y especializarse en Informática. Estarás contento con esto si:

  • Aprendes mejor de las conferencias.
  • Necesita mucha orientación en su proceso de aprendizaje (aunque solo una orientación individual limitada).
  • Desea aprender algo sobre otros temas además del desarrollo de software.

Si eres bueno en el autoaprendizaje, podrías trabajar en proyectos de código abierto. Esto puede conducir al empleo en algunas empresas, pero no parece haber muchas. Y, mientras aprende, no habrá ayuda financiera disponible.

Para tener un producto de software exitoso, debes estar o formar equipo con alguien que se encuentre entre el 1% superior del 1% superior de emprendedores. O bien, sea extremadamente afortunado (como el ganador de la lotería).

Puede aprender lenguajes de programación de Youtube, Coursera, Undemy y hay muchas más plataformas de este tipo en línea. Aprende a codificar.

Únase a ingeniería informática después de su 12 °.

More Interesting

Estoy trabajando como ingeniero de software y no estoy nada satisfecho. ¿Qué trabajo es seguro y bien pagado para vivir en India?

¿Por qué las entrevistas de ingeniería de software senior son tan difíciles en estos días?

Dado que una biblioteca creada por un ingeniero experto invalida automáticamente todo (o la mayoría) del trabajo de muchos otros, ¿puedo decir que los trabajos de ingeniería y programación de software son trabajos de carnaval?

Cómo convertirse en ingeniero de software y animador

¿Qué debo elegir: desarrollo o pruebas de automatización o análisis empresarial?

¿Cuál es la condición de un ingeniero de software no IITiano?

Cómo escribir una biblioteca para un lenguaje de programación

¿Cómo debería un ingeniero de software, con más de 10 años de experiencia, ver el futuro en los próximos 10-15 o 20 años?

Quiero ganar la mayor cantidad de dinero posible como ingeniero de software sin seguir un camino que no disfrutaría (por ejemplo, el arquitecto empresarial de Java). ¿Debería duplicar mis habilidades de programación o utilizar mi mente matemática para alcanzar un alto nivel de competencia en inversiones, comercio, bienes raíces, etc.?

¿Cuáles son las clases de CS más importantes para un ingeniero de software?

¿Qué puede hacer un ingeniero de software si tiene 4 meses de tiempo libre?

¿Cuál es un mejor lugar para trabajar como ingeniero de software: LinkedIn o Yelp?

¿Los desarrolladores de software alguna vez tienen problemas de "pizarra" por el simple hecho de usar la pizarra?

¿Cuál es la diferencia entre los ingenieros de sistemas integrados de hardware y software?

¿Cuáles son sus experiencias como ingeniero de software de la India que vive en los Estados Unidos?