Dado un problema, como un problema de diseño o un problema de algoritmos, ¿cómo resolverá un ingeniero de software experimentado ese problema?

Divide el problema en partes que tengan sentido para ti. Cuando divide un problema en sus partes, se vuelven más fáciles de manejar. Una vez que resuelva el problema más simple, es hora de pensar en la relación entre el problema más simple y sus problemas más simples adyacentes. A menudo, ser lógico requiere mucha disciplina y fuerza de voluntad para no verse tentado a resolver otros problemas más simples en medio de su problema más simple actual. Este tipo de enfoque de arriba hacia abajo aumenta gradualmente su capacidad de pensar en problemas y desglosarlos en problemas más simples y manejables.

Por ejemplo, supongamos que está construyendo una estantería. ¿Cómo lo harías? Una persona no capacitada comenzará a construir la estantería sin pensarlo. Recuerde, debe pasar el 90% de su tiempo pensando y solo el 10% de su tiempo implementando su estrategia.

Una persona capacitada primero dividiría el problema en varias partes:

¿Cuántos libros necesitan ir a la estantería? ¿Cuál es el peso promedio de un libro? ¿Qué madera es fuerte pero ligera para que puedas moverla fácilmente? y así sucesivamente … El aspecto clave aquí es hacer muchas preguntas . Esto le ayuda a comprender la relación entre sus problemas más simples.
Escriba las respuestas a todos sus problemas.

Una vez que tenga las respuestas a tantas preguntas como pueda pensar, es hora de ponerlas en acción y construir la estantería parte por parte. Esto tiene la ventaja de hacerlo modular, además de resistir los problemas más comunes asociados con una estantería, ya que ya pensó en los problemas individuales y la relación entre esos problemas.

HTH

Prueba estas técnicas simples que me funcionaron:

Algoritmos

  1. Sepa qué son las estructuras de datos, en inglés. No se requiere comprender el código
  2. Conozca varias técnicas de algoritmos, lo que es codicioso, programación dinámica, en inglés
  3. Ahora vea un problema aleatorio, para dividirlo en una estructura de datos o dos, y un algoritmo o dos.
  1. Si puedes resolver, lo estás haciendo bien.
  2. Otra repetición de 1, de Algoritmos

Diseño:

  1. Sepa qué son los patrones de diseño, en inglés. El código de comprensión no se requiere aquí nuevamente.
  2. Conozca los diagramas UML o ER, o ambos.
  3. Conoce patrones arquitectónicos
  4. Ahora vea un problema de diseño aleatorio, para dividirlo en un patrón de diseño, un diagrama UML, Patrones arquitectónicos.
  1. Si puedes resolver, lo estás haciendo bien.
  2. Otra repetición de 1, de Diseño

Espero que haya ayudado.

La mejor de las suertes.

More Interesting

¿Cuál es el código de búsqueda binaria usando recursividad?

¿Por qué la notación O grande no se parece más a O (c) y O (cn) en lugar de a O (1) y O (n), esto último no tiene sentido?

¿Qué es una matriz ordenada y en qué se diferencia de una que no está ordenada?

¿Por qué el algoritmo ikj es más rápido que el algoritmo ijk para la multiplicación de matrices?

¿Cuáles son algunos algoritmos de detección de edad y género que usan OpenCV?

¿Cuál es el mejor algoritmo para encontrar una ruta más corta a través de todos los puntos de control dados?

¿Cuál es el curso / certificación mejor pagado disponible para estructuras de datos y algoritmo?

¿Qué tipo de estrategias y algoritmos tenemos en el comercio cuantitativo?

¿Cuáles son algunas aplicaciones del algoritmo de clasificación de burbujas?

¿Cuál es la diferencia entre [matemáticas] 2 ^ {n ^ {o (1)}} [/ matemáticas] y [matemáticas] 2 ^ {O (n ^ e)} [/ matemáticas] (para algunos e <1)?

¿Existen algoritmos de descenso de gradiente que intenten ajustar valores de datos que representan cada uno un promedio de puntos de datos desconocidos individualmente?

Cómo averiguar la complejidad temporal de un algoritmo dado

Si hipotéticamente encontré un algoritmo que genera rendimientos comerciales al 100% anualmente, ¿qué debo hacer con él?

¿Cuáles son las estructuras de datos más utilizadas y más necesarias en el mundo de hoy?

¿Cómo entender el algoritmo SHA-1? ¿Cuáles son los mejores ejemplos para ello?