¿Cuáles son algunas cosas que todo ingeniero de software debería saber?

Me aventuraría a que un ingeniero de software debería saber lo suficiente para evitar los siguientes malos hábitos.

  1. La velocidad mata . Escriba su código cuidadosamente, depúrelo, integrelo, refactorice, optimice y repita. El desafío es la calidad, no la cantidad. La ingeniería de software requiere mano de obra experta. Hay demasiados códigos basura que se escriben diariamente en el mundo.
  2. La falta de autocrítica . Estar satisfecho y satisfecho con el código es un hábito peligroso. Tome un código importante que escribió hace unos años y si no puede ver cómo mejorarlo, técnicamente no está avanzando. Estar dispuesto a aprender de los demás. Aprende a reconocer, reconocer y aprender de tus errores.
  3. La complacencia Hacer que el código funcione es el resultado más bajo aceptable. Siempre se debe luchar por la claridad, simplicidad, extensibilidad, modularidad, comportamiento de tiempo de ejecución predecible y escalabilidad. El código que tiene estos atributos altamente deseables es más estable, comprobable y mantenible. Si eres bueno, algún futuro ingeniero tendrá la tarea de reutilizar tu código. Asegúrese de que este ingeniero tenga pensamientos amables para usted.
  4. Implementación del primer diseño propuesto . Hay muchos diseños posibles para módulos de software. Resuelva la tarea en cuestión N formas diferentes conceptualmente en la pizarra. Luego critique cada diseño en términos de pros y contras. Luego elija el diseño óptimo con las mejores compensaciones. Si solo puede crear un diseño, no está pensando lo suficiente. Implementar el diseño elegido. No seas flojo.
  5. Cortar y pegar código . Este es un hábito muy peligroso. El código de mierda se propaga con ligeras modificaciones como un virus horrible con mutaciones mortales. Cuando el código tiene que montarse en horquilla para adaptar la API más reciente, un savia pobre tiene que rastrear infructuosamente N ubicaciones en línea ocultas oscuras al azar en lugar de una interfaz API limpia (use una interfaz, función o clase, por favor). Las herramientas de refactorización de código IDE deben usarse en su lugar. Menos es más. Cree menos código refactorizando, no más código. Agregar más código cortando y pegando código es muy malo crear una base de código imposible de mantener.
  6. Falta de atención al detalle . Aunque la codificación requiere un diseño de alto nivel y conceptualización, habilidades, la ingeniería de software también requiere una atención extrema a los detalles, ya que es implacable. El código que es correcto al 99% es tan no funcional como el código que es funcional al 50%. El código funciona o no, las soluciones incompletas aproximadas no tienen valor.
  7. Falta de propiedad . La codificación es una artesanía refinada que requiere orgullo de propiedad. Si uno es el autor original de un módulo de software, siempre debe estar dispuesto a mejorarlo, mantenerlo y respaldarlo indefinidamente. El código de rechazo rompe el ciclo de retroalimentación positiva para mejorar sus habilidades usando el ciclo de vida completo del software. Su código debe tener una garantía de por vida infinita honrada por su sincero compromiso personal. El gran código no tiene una fecha de vencimiento o de uso.

¡Hola! Me gustaría enumerar algunas de las cosas básicas que el ingeniero de software debe saber:

  • Conocer los sistemas de control de versiones para que pueda trabajar mejor en la organización.
  • Tener la capacidad de escribir notas de lanzamiento para sus proyectos, enviar mensajes para el control de versiones y documentación clara sobre el proyecto.
  • Ser capaz de expresar códigos largos a expresiones regulares.
  • Ser capaz de usar bibliotecas.
  • Conocer los conceptos básicos de la normalización de la base de datos y poder hacer SELECCIONES (incluidas las UNIONES INNER y OUTER básicas), INSERT, ACTUALIZACIONES y DELETES.
  • Ser capaz de usar IDLE, editores, herramientas CLI de manera efectiva y segura.
  • Ser capaz de depurar con un depurador interactivo.
  • Poder trabajar con el equipo.

Verifique Holberton School of Software Engineering en San Francisco una vez que desee si desea un enfoque de aprendizaje basado en proyectos. Abogamos por un enfoque de educación progresiva para aquellos sin experiencia previa en programación también. La escuela Holberton enfatiza principalmente en 4 puntos para convertirse en un gran ingeniero de software: tener un sólido conocimiento de la pila completa , capacidad de autoaprendizaje , habilidades blandas , aprendizaje basado en proyectos . En esta escuela, hemos ayudado a muchas personas, incluso a aquellas que no tienen experiencia previa en programación, a conseguir trabajos en software en gigantes como Apple y la NASA, por nombrar algunos. Ha estado capacitando a ingenieros de software full-stack de la mejor manera para satisfacer las demandas del mundo tecnológico dinámico y desafiante.

¡Buena suerte con todos tus esfuerzos!

No entendí lo que querías decir. Un ingeniero de software debe ser estudiante de por vida. Simplemente no es posible contar con la punta de los dedos. Pocos de ellos incluyen:

  1. Capacidad y sed de aprender nuevas tecnologías que se avecinan.
  2. Conocimientos básicos sobre organización de computadoras, terminologías de software y cultura de TI, algoritmos.
  3. Conceptos básicos del sistema operativo, conceptos básicos de redes, análisis orientado a objetos, diseños, lógicas, etc.
  4. Conceptos básicos de inteligencia emocional, patrones arquitectónicos.
  5. Acerca de la gestión de proyectos, seguridad de software, métricas de desarrollo / herramientas de prueba que reciben actualizaciones todos los días, factores de calidad del software.
  6. Comprender el negocio de los clientes y los requisitos.
  7. Mapeo relacional de objetos, inyección de dependencias, internacionalización, control de versiones ……

Y muchos otros conceptos ……

No hay espacio para héroes. El trabajo en equipo, donde se roban el trabajo del otro, descaradamente, es la regla. De hecho, estoy orgulloso de que alguien robe mi código o mis diseños, y lo primero que hago cuando hago algo nuevo es encontrar cosas similares o idénticas que se hayan hecho antes y adaptarlas.

Un buen líder lo sabe y no da crédito personal, solo crédito de equipo.

La nube no es ciencia espacial, sino informática

La nube es solo ciencia espacial si eres NASA y estás usando la nube para la ciencia espacial. De lo contrario, para el resto de nosotros, es una plataforma increíble en la que aprovechamos varias oportunidades para mejorar la forma en que pensamos e implementamos las prácticas y la tecnología necesarias para asegurar las cosas que más nos importan.

–Hoff

No soy un ingeniero de software per se, pero yo mismo escribí software (divertido) y también depuré y revisé software creado por otros (no divertido). Aquí están mis simples sugerencias:

  • Hacer copias de seguridad
  • Aprende a usar el control de versiones
  • Escriba código modular que alguien pueda leer, depurar y mejorar fácilmente, lo que significa:
  • Añadir comentarios por favor
  • Use nombres significativos para sus variables
  • El código debe ejecutarse rápidamente, pero comprimir 5 líneas de código en una sola, cuando el ensamblador creará el mismo código no ayuda a nadie, especialmente después de que se haya ido.
  • Escribir documentación

Diseño primero, ahorra mucho tiempo

Escriba un código limpio, si no lo hace, eventualmente se convertirá en una basura horrible e inadmisible. Te lo agradecerás más tarde.

Por arduos que sean los procesos y los estándares, se alegrará de que estén allí en algún momento.

Siempre obtenga un código / revisión por pares. De nuevo, te alegrarás de haberlo hecho.

En ningún orden particular:

1. Patrones de diseño. Aprenderlos, practicarlos.

2. Siempre habrá personas que son mejores en lo que haces que tú.

3. Si eres el mejor ingeniero de software que conoces, una de dos cosas es cierta:

– Eres un ególatra y necesitas superarte, o

– Necesitas salir de donde estás e ir a algún lugar donde puedas estar cerca de personas que te desafíen.

4. El trabajo en equipo es bueno y debe ser aceptado. No seas un llanero solitario.