¿Cómo aprendo los principios de la ingeniería de software de manera constructiva si nunca he escrito un software con más de mil líneas?

Para escribir sistemas complejos, se beneficiaría de un amplio conocimiento de Patrones de diseño Y un conocimiento práctico de bibliotecas y marcos de uso común como ASP.NET.

“Un patrón de diseño es la forma reutilizable de una solución a un problema de diseño” (estoy citando directamente de wikipedia)

Mientras que un patrón de diseño trata sobre soluciones conceptuales para problemas comunes, puede encontrar una ayuda más práctica en forma de bibliotecas de código y marcos.

Las bibliotecas encapsulan funciones comunes y proporcionan un conjunto bien definido (y documentado) de interfaces para codificar.

Frameworks, por otro lado, proporciona un código estructural al que puede agregar su propio código para construir su aplicación. Los marcos se utilizan para crear código de manera eficiente con una reinvención mínima del código. Utilizo frameworks para crear aplicaciones de bases de datos, aplicaciones web e interfaces de clientes, etc.

Los patrones de diseño, las bibliotecas y los marcos están bien documentados tanto en términos de libros como de soporte en línea. Recomiendo leer algunos libros o artículos sobre patrones de diseño para comenzar. También puede suscribirse a sitios web gratuitos como codeproject (dot com) que proporcionan información valiosa sobre todos los niveles de ingeniería de software.

Armado con algunos conocimientos básicos, debe configurar una aplicación para escribir que esté (ligeramente) más allá de su nivel actual de conocimiento. Al resolver los diversos problemas que encuentre, obtendrá conocimiento y podrá aprovechar la riqueza existente de conocimiento y código que ya existe.

La duración del programa no importa: un corrector ortográfico puede tener decenas de miles de líneas, mientras que un programa para borrar toda la RAM puede tener 2 líneas de ensamblaje.

Si quieres aprender los conceptos básicos, prueba Teach Yourself Computer Science.

More Interesting

¿Cuáles son las mejores oportunidades de carrera alternativas para un probador de software manual que no tiene habilidades técnicas en la industria de TI?

¿Qué opciones hay para un estudiante con una licenciatura de cuatro años, sin tener antecedentes en investigación, que busque la admisión en un doctorado en ciencias de la computación / ingeniería de software para demostrar a una institución que él / ella es investigador?

¿Tendría sentido nunca instalar ningún software que no sea de stock y también evitar Java y JavaScript tanto como sea posible para mejorar la seguridad informática?

Tengo una entrevista para una pasantía de ingeniería de software en Uber en menos de una semana. ¿En qué debería centrarme?

¿Por qué tanta gente en Quora hace preguntas sobre unirse a Microsoft y no a Apple a pesar de que los productos de Apple son superiores?

¿Cuál es la diferencia entre el código ensamblador y el código de lenguaje de máquina que obtenemos en un archivo objeto?

Cómo obtener información sobre los cambios internos o externos de la biblioteca en su trabajo diario

Soy graduado de Ingeniería de Software, trabajé como administrador web antes y recientemente comencé a trabajar como desarrollador web (soporte). ¿Estoy en el camino correcto?

Me abruman los plazos de TI, pero me encanta la ingeniería de software, ¿qué debo hacer?

¿Qué personas vivas admiran más los desarrolladores?

¿Cuáles son las métricas de rendimiento de software más importantes?

¿Cuál es la anatomía de los proyectos de programación donde se usan múltiples lenguajes?

¿Hay algunas cosas que hacen las ingenieras de software para socavar el progreso de las mujeres en el campo?

¿Cuáles son los otros trabajos que los programadores de software pueden hacer si pierden su trabajo debido a la recesión o por cualquier otra razón?

¿Conoces alguna herramienta que use un rastreador que simule el comportamiento del usuario para probar aplicaciones?