¿Cuáles son los mejores recursos para convertirse en un buen ingeniero de software autodidacta?

La mejor respuesta

La verdadera respuesta es “¡Depende!”. Depende de qué segmento le interese más: front-end, full-stack, backend, ciencia de datos, etc. La base de todo esto se puede resumir como se muestra a continuación:

  • Elija su favorito lenguaje de programación. Y aprenda todos los conceptos de ese lenguaje practicando para usarlo en algún problema de código u otro. Esto sentará una buena base para aprender otro lenguaje de programación, incluso si su paradigma es completamente diferente. Para apreciar A debes tener gusto por B, porque en cierto sentido todo es relativo. Comenzaría a comparar idiomas en función de cómo resuelve algunos problemas.
  • Haga Code Katas. Intente resolver el mismo problema de diferentes formas. Piense en los diferentes enfoques que intentó. Haga esto para cada otro código kata que haga. ¡Ayuda!
  • Haz un mini-proyecto para resolver algún problema. Vuelva a visitarlo después de un tiempo y vea si puede agregar funciones. Lo más probable es que se esté abusando de usted mismo por el mal trabajo que hizo. Ésta es una buena comprensión. Piense en sus errores, piense cuál es el mejor camino que tomó. Aprenda de sus errores. Esto es lo que es la experiencia real. La experiencia no es un número, sino lo que aprende a medida que trabaja en las cosas.
  • Elija algún código de mini-proyecto o biblioteca de Github, y lea el código para ver cómo se resuelve algún problema. Leer y pensar en el código de otros ayuda a uno.
  • Leer libros, blogs, etc.
  • Empiece a escribir sus pensamientos a través de blogs. Seguro que ayuda a su aprendizaje.
  • Asista a reuniones y conferencias para conocer lo que está sucediendo a su alrededor. Podría inducir su aprendizaje. Después de todo, todos necesitamos una dosis de motivación y un sentido de propósito inducidos de vez en cuando.
  • Intente compartir sus aprendizajes en reuniones y conferencias. Te hace magia, en serio.

Sugerencia especial: ¿mencioné que, en el camino, es probable que te encuentres con muchos bromistas que te agotarían la energía y el tiempo, desalentándote de Que haces. Aprender a diferenciar a los críticos de los bromistas es un gran salvavidas.

Esto es lo que hice desde el comienzo de mi carrera y sigo haciéndolo todo incluso hoy.

Respuesta

Depende de lo que quiera decir con ingeniero de software. El mejor recurso para la ingeniería de software que he encontrado es la experiencia. Ten paciencia conmigo un momento. La mayoría de las respuestas aquí parecen estar relacionadas con la programación y, de hecho, hay muchos recursos excelentes sobre programación (con muchos buenos ejemplos en las respuestas aquí). Siempre he sentido que el problema se divide en tres categorías:

  • Programación. Elija un lenguaje razonable para el tipo de problemas que le gusta abordar hoy. Aprende bien. Mucha practica. Mucha lectura de otros códigos de expertos respetados. Escribe un poco más. Agregue un idioma según sea necesario o interesado.
  • Algoritmos, estructuras de datos, lenguajes comparativos y el conjunto de conocimientos generalmente denominado informática. Esto es lo que eleva el juego desde la resolución de problemas pequeños hasta la resolución de problemas grandes, resolviéndolos de manera efectiva (no solo eficiente) y entendiendo los límites de las soluciones para que pueda explicarlas.
  • “Ingeniería de software ”Es algo diferente para mí que las dos ideas anteriores. Es el proceso mediante el cual se entrega el software a los «clientes». Es una entrega confiable, repetible y consistente de la solución. Entiende que una GUI es buena para crear soluciones iniciales de prueba de conceptos / prototipos en su escritorio, pero insuficiente para entregar en «producción». Es la comprensión de la canalización de entrega en cada paso y por qué se realiza cada paso. Es toda la automatización y la disciplina. Sin disciplina, el software no escala. Todavía tengo que ver un curso sobre esto, porque en su mayor parte es capacitación en el trabajo. Y muchos lugares se equivocan. Los errores son costosos.

Quizás la mejor metáfora que puedo darte es cocinar. Puedes aprender a cocinar por ti mismo bastante rápido. Puedes ser bueno en un puñado de recetas y la práctica te acelera. Intente cocinar una comida elegante para amigos y familiares y saldrá un poco de su zona de confort, tal vez necesitando nuevas habilidades, nuevas herramientas, nuevas recetas. Toma una clase o dos y podrás mejorar drásticamente tu juego, y las clases abarcan desde clases nocturnas en la universidad local hasta Le Cordon Bleu. Luego está el paso al «restaurante» que lo cambia todo. Ahora se trata de la entrega de alimentos repetible y confiable a personas con expectativas. Usted obtiene, procesa por lotes, prepara, prepara y herramientas de manera diferente. La «industrialización» del proceso es «ingeniería». Y ahora eres parte de un equipo. Y hay un cliente. No importa si eres un puesto de tacos o un restaurante con estrella Michelin, es diferente. Ninguna cantidad de trabajo en el aula lo prepara completamente para todo el aprendizaje en el trabajo.

Y puede comenzar a aprender los tres a la vez. Solo entienda en cuál de los tres conjuntos de habilidades está trabajando y no se olvide de los otros dos conjuntos de habilidades. Los dos primeros suelen venir con práctica, pero el último con experiencia.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *