Piensa más rápido? Ciertamente, la experiencia ayuda, ya que puedes aportar una gran cantidad de potencia de fuego “oh, he visto este patrón antes” para enfrentar un problema. Además, si sabe, increíblemente bien, las API y la sintaxis de un lenguaje, puede pensar en el código que está escribiendo en un nivel superior, sin ralentizarse para intentar recordar el paquete sangriento en el que se encuentra. Por ejemplo, ¿fue javax.ws.rs o esa cosa en apache.jetty.fml? Y sabe que puede escribir, diga (_1.x) en lugar de, diga (foo => {return foo.x}) si conoce bien la sintaxis, al menos en ciertos idiomas.
La familiaridad con los patrones ayuda mucho ya que ayuda a estructurar su pensamiento, esto se relaciona estrechamente con su experiencia, excepto que los patrones le permiten obtener beneficios de la experiencia de otras personas.
También puede seguir las mejores prácticas, como TDD, que le permiten pensar en los problemas de manera más eficiente y estructurada.
Ahora, la creatividad.
- ¿Qué es aprender?
- ¿Cuál es la cosa más valiosa que ha aprendido sobre el diseño centrado en el usuario?
- ¿Cuál es la mejor manera de adquirir conocimientos en inglés sencillo sobre un tema?
- Si tuviera mucho tiempo libre y dinero, ¿qué 10 idiomas no artificiales aprendería y por qué?
- ¿Puedes aprender todo lo que enseñan los campos de arranque de codificación, en línea (a bajo costo o gratis)?
La mayoría de las personas no le dan a esto el pensamiento que merece a un nivel meta. La creatividad no es un tipo de magia que proviene de algún rincón oscuro de la psique. Hay muchas herramientas que he encontrado que ayudan con la creatividad, muchas.
- Restricciones Es contrario a la intuición, pero en el segundo momento en que pones las restricciones correctas de un sistema, la ideación se vuelve mucho más fácil. Por ejemplo, hago desarrollo de recetas. Si solo trato de pensar en una receta, podría luchar un poco para pensar en algo. Pero todo lo que tengo que hacer es limitarme, por ejemplo, a recetas que incluyan tomillo o recetas con influencia mexicana o tailandesa, y de repente tengo cincuenta ideas, porque tengo un buen punto de partida.
- Duales Un ejemplo fantástico de la aplicación de los duales es la invención de la programación reactiva, donde los duales se aplicaron para derivar la idea de objetos observables a partir de la idea de colecciones iterables. Busque la dualidad y el video que discute los orígenes y el diseño del marco reactivo en .NET. Es encantador. En un sentido menos abstracto, me gusta aplicar lo que yo llamo inversión, que es un enfoque liviano para los duales, en el que adopto un enfoque que se nos ha ocurrido e intento encontrar formas de girarlo 180 a lo largo de un conjunto de ejes. Para derivar nuevas ideas.
- Aplicación correcta de la navaja de afeitar de Occam: obtenga formas creativas de eliminar partes móviles de su aplicación.
- Hibridación: a menudo, la mejor solución del mundo real implica la aplicación de múltiples enfoques a la vez a un problema (sí, en oposición directa al dictamen de Occam. El mundo es un lugar sucio.) Por ejemplo, me gusta usar ambas identidades numéricas e identidades de cadena en objetos que expongo a través de interfaces REST. Las identidades de cadena son mutables, pero forman URL encantadoras. Identidades enteras para cuando quiero referencias inmutables, como en esquemas internos. Muchas veces, generar muchas ideas y luego hibridarlas puede generar buenas soluciones.
- Colaboración. Otras personas son geniales
- Sospecho que encontrará muchas cosas sabrosas sobre la creatividad, que se aplican a la codificación, de escritores como IDEO. Polinización cruzada. En términos más generales, mirar otras disciplinas y leer sobre diversas soluciones a problemas interesantes en campos distintos al suyo, puede ser muy divertido y gratificante.
Eso es un buen paquete de inicio, ¿eh?