¿Qué técnicas ayudan a retener el conocimiento de la programación? [cerrado]

44

¿Cómo recuerdas cosas relacionadas con la programación? ¿Has tenido la sensación de que te has encontrado con el error que tenías ante ti ahora mismo, hace unos años y podrías jurar que sabías la causa pero ahora la has olvidado?

¿Trabajó con el análisis de cadenas de xsl hace algún tiempo pero ahora no puede recordar exactamente cuáles son las funciones de cadena de xsl y tiene que empezar desde cero? O quizás se olvida de alguna característica de Apache Commons como "filtrar una colección por algún predicado" que seguramente usó en el pasado.

Entonces, ¿cómo lo haces? Intenté tener un blog, pero cuando desarrollo aplicaciones, nunca encuentro tiempo para actualizar el blog o escribir sobre mis experiencias. Además, usar una wiki es algo bueno, pero luego me resultó difícil mantener una separación clara entre ellos ya que muchas veces tuve que cambiar una publicación de blog para agregar nueva información sobre ese tema. Esto me hizo pensar que realmente debería haber puesto este tema en la wiki en lugar del blog.

¿Tiene algún sistema que lo ayude a recordar su experiencia en programación? ¿Cuál es tu configuración?

    
pregunta shining-light 19.03.2012 - 11:15

12 respuestas

64

Olvidar las cosas es normal. No recordar algunos trucos que te ayudaron en el pasado también es normal. Este es el primer paso que uno debe reconocer. Luego hay algunas formas en que puede "almacenar" el conocimiento para una revisión adicional:

  • Encuentra tiempo y blog sobre él . El futuro: estarás muy agradecido con el presente;
  • Trabaja con minúsculas demostraciones y archívalas de alguna manera. Seguramente pasará por este archivo muchas veces;
  • Utilice su perfil de stackexchange . Marque las preguntas / problemas / problemas / consejos / trucos interesantes como favoritos para una mayor investigación;
  • Sigue haciendo , sigue programando. Cuanto más use una cierta parte de un marco, más se familiarizará con él y más recordará.
respondido por el Claudiu Constantin 19.03.2012 - 11:36
20

Mi clave es

Variedad

Repetición. Una vez puede ser fugaz. ¡Ver la ocurrencia número 100 hace una diferencia!

Memoria con los dedos . Recuerdo mucho mejor el código cuando en realidad lo escribí varias veces.

Biblioteca de códigos : guarda un alijo de códigos y trucos personales que has usado y visto.

Centralización. Guardo 1 archivo con todos mis nombres de usuario (cientos) en 1 PC. Le aplico seguridad.

Disciplina : mencionaste que no tienes tiempo / esfuerzo para actualizar tu propio blog, etc. En lo que debes trabajar más duro y asegurarte de hacerlo.

Aceptación : las habilidades y técnicas y las cosas que aprendiste esta semana estarán frescas. Algunos de los elementos que dice hace 3 años serán difíciles de recordar. Eso es normal ya que el cerebro deja espacio para más.

Múltiples sentidos : a veces uso mnemónicas, a veces suelto una imagen con conceptos clave dibujados de formas distintas. Leo, escucho podcasts, veo videos, uso color en los editores. Cuanto más sentido use, mejor.

Mnemonics , por ejemplo. css border order Tarball (TaRBalL) TopRightBottomLeft. También utilizo colores y formas para recordar palabras y temas. ¡A menudo lo más extraño, lo más memorable!

Uso continuado : este es el efecto 'usarlo o perderlo'. Todo conocimiento se desvanece con el tiempo. Time ++ Fade ++

La red de intercambio de pila - Estoy usando Stack Overflow en múltiples áreas para tratar de mantener tantas habilidades y técnicas diferentes como "actuales" y "recordadas", incluso si no las uso en mi trabajo / proyecto actual.

Dropbox : mantengo archivos pequeños con elementos relacionados con la memoria

Libros : todavía me gustan los tontos de los libros físicos. También tengo varios kindles y otros libros técnicos en línea que puedo consultar en cualquier lugar. Obviamente, mi biblioteca técnica puede ser accesible en cualquier lugar cuando es digital, lo que es enorme.

El efecto Google : ninguna lista de elementos estaría completa sin mencionar esto. Esto es más sobre lo que no necesita recordar, porque puede buscarlo en Google y encontrarlo. Esta es una consideración importante también A medida que más personas se vuelven más adeptas a esta forma de obtener conocimiento, la necesidad de memorizar cualquier hecho dado está disminuyendo. Sin embargo, esto también es "elevar el nivel" para los trabajadores del conocimiento que están encontrando cada vez más que se requiere una comprensión conceptual profunda para desempeñarse en el entorno actual. ¡Por supuesto que fuera para CME's !

Mi propio Blog

Mi propio marcadores

  • ¿Cómo mantengo mi blog y mis marcadores actualizados? Bueno, al final del día creo que es disciplina y ingenuidad , es decir, sí, se requiere cierta dedicación para ello. Sin embargo, si fue a la escuela para obtener un título y pagó $ 100,000 (o incluso $ 10,000) o es autodidacta, sabe el significado de dedicación y persistencia. Esto no es diferente. La ingenuidad, o "factor ingenioso", es que cuando ves un sitio web genial con un tutorial o técnica genial o lo que sea, o superas un problema espinoso difícil, dices "oye, ¡eso es ingenioso!" - así que cuando sientas esto (o la frase que utilices), ahora asocia eso con "Debo publicar un blog o grabar ese marcador". Existe una buena posibilidad de que no esté en una computadora, actualizando su blog en ese momento, así que envíese un correo electrónico, un mensaje de texto o incluso un correo de voz, o una nueva tarea en su lista de tareas, lo que sea más conveniente para usted - ¡para recordarte que debes hacerlo! Por ejemplo, mi teléfono Android tiene una aplicación de tareas que es útil para esto.
respondido por el Michael Durrant 19.03.2012 - 13:20
7

Durante el último año, Evernote se convirtió en un programa sin el que no podía trabajar. Copio todo en Evernote. Recortes de código, capturas de pantalla, datos de contacto, historial de versiones, etc. Así que no tengo que recordar tantos detalles. Solo sé que está ahí en alguna parte.

La versión básica es gratuita. ¡Así que pruébalo!

    
respondido por el Holli 19.03.2012 - 15:42
6

Sherlock Holmes dijo una vez algo como "La mente de un hombre es como un ático. Si lo llena con trivialidades, no hay espacio para nada verdaderamente importante. Para todos estos detalles, tenemos la enciclopedia".

A menos que tenga una memoria fotográfica y los problemas en ella, no recordará todo. Cree un conjunto de recursos, una biblioteca personal de técnicas de resolución de problemas tanto de información como .

Es posible que no recuerdes la respuesta y que ni siquiera recuerdes dónde está escrita la respuesta. Pero, si sabe cómo resolver el problema, siempre puede encontrar la respuesta nuevamente. Con suerte, esto incluirá documentar su solución de una manera que se pueda buscar y reutilizar.

    
respondido por el Spencer Rathbun 19.03.2012 - 14:27
4

Bueno, tal vez mi caso sea particular ... pero: tengo cada fragmento de software que escribí desde el 76 en mi computadora portátil, programas, scripts, configuraciones, etc. Así que con el tiempo (debo confesar), mi carga de memoria ha cambiado desde recordar 'cosas' hasta recordar metadatos sobre cosas. Claro, mucho de eso ya no es relevante, pero lo que encuentro es que la parte difícil es tener las ideas, no realmente implementarlas. Por lo tanto, los metadatos son básicamente un índice de las "ideas" que se pueden encontrar donde.

Cuando llego a césped nuevo, hoy en día, tiendo a encontrar una base de código grande que usa los nuevos aspectos, y paso un tiempo de calidad con la base de código. Lo estudio, trato de hacer que funcione en un entorno de prueba, luego trato de aumentarlo para poder introducir nuevas herramientas (bibliotecas, idiomas, tecnología de compilación, etc.). Este proceso me permite trazar mis patrones, ideas, en un ejemplo. Es posible que me tome tiempo para hacer algunos de estos mini-proyectos, y seleccione como referencia el con el que me siento más en casa. Una vez hecho esto, eventualmente reutilizaré ese código base para construir el esqueleto de mis propias aplicaciones.

Cuando los archivos personales fallan, llego a la red, a la que recientemente agregué SO. Obtendré un éxito en los conceptos "nuevos" (nuevos desde un punto de vista personal) en SO antes de gaagle. De hecho, rara vez (hoy en día) vuelvo a gaagle. La primera respuesta relevante allí es típicamente un enlace a algunas preguntas interesantes sobre SO.

    
respondido por el YvesLeBorg 19.03.2012 - 11:48
4

Al igual que otros, hago un seguimiento de las cosas utilizando marcadores.

Solía usar Delicious, pero ahora me he movido a Pinboard.

Pero no lo uso tanto como solía hacerlo. Parece que cada problema de programación que encuentro es una pequeña búsqueda en Google. Y en el último año, ¡empecé a usar Stackoverflow como uno de mis términos de búsqueda!

Siempre que vengo a una pregunta de SO para un problema particularmente difícil, prefiero que la rastree, así que esta es otra forma de marcadores.

    
respondido por el ozz 19.03.2012 - 12:36
3
  

"Recuerda la pintura, olvida los trazos finos"

Es absolutamente normal no recordar los detalles más finos. Sin embargo, lo que debería preocuparte es olvidar las cosas más importantes. Si solucionó un error, al menos debería tener una idea conceptual sobre el problema.

Los marcadores, los blogs y las libretas están bien para guardar esos detalles más finos. Pero en última instancia, todavía necesita recordar la "imagen" más grande. De lo contrario, volver a descubrir esos detalles "más finos" será mucho más difícil.

    
respondido por el Darknight 19.03.2012 - 11:59
2

Mantenga sus propias notas, expresando las cosas en sus propias palabras. Tu público objetivo es tú , nadie más, por lo que puedes permitirte estar tenso. (Sin embargo, una publicación de blog debe ser clara y bien editada, lo que requiere mucho tiempo). Si encuentra artículos / artículos de blog buenos, registre la URL, pero aún así explique las cosas con sus propias palabras.

Mantengo una gran jerarquía de archivos pequeños, cortos y de un solo tema. La mayoría de los archivos son de forma libre, pero estoy cambiando a usar Markdown. Búsqueda usando grep / find. Guardo la carpeta en mi DropBox, por lo que siempre está disponible para mí.

    
respondido por el Noach 19.03.2012 - 15:49
1

Cada persona puede tener su propio estilo al que está acostumbrado. Para mí, separo el conocimiento en categorías:

  • Books

  • Artículos

  • Colecciones (las cosas me parecen interesantes y están limitadas a pocos párrafos; en realidad copio la información y a veces escribo anotaciones en la fuente).

  • Código reutilizable (texto y fragmentos) - Cada uno en un archivo separado bajo una buena organización de árbol. P.ej. El nodo DataValidation contendría muchas técnicas para validar diferentes elementos de datos, cada uno en un archivo separado

  • Proyectos completados

  • Tutoriales de videos personales (a veces grabo videos de cómo hacer cosas cuando hay muchos pasos involucrados).

  • Enlaces

Organizo lo anterior por tema, con cada tema en una estructura de árbol apropiada.

Algunas veces hay cosas que se superponen, pero logro encontrar lo que quiero.

Además, usar Google Desktop, encontrar texto o archivos es muy rápido.

    
respondido por el NoChance 19.03.2012 - 11:59
0

Yo uso OneNote. Tengo muchos lenguajes de programación diferentes con los que trabajo, así que tengo diferentes secciones para cada idioma y diferentes pestañas para diferentes tipos de notas.

Ahora, estoy empezando a usar Stack Exchange también.

    
respondido por el Susan Kennedy 20.03.2012 - 22:15
-1

Debe estar equilibrado entre la memoria y el "almacenamiento" ... Si confía demasiado en la memoria o por errores, == problema, si confía demasiado en almacenar todo == inútil.

Mis reglas:

- ¡No más de embellecer! escribe las cosas importantes incluso si el tamaño de la fuente varía en tu documento :)

-No sobregrabar. Convéncete a ti mismo de que organizar tus pensamientos no necesita una estructura de árbol de 10 niveles

-Pasó TIEMPO para encontrar qué grabar. Puedes encontrar 5 soluciones para el mismo problema. En el momento en que las escribas TODAS las sueltas. Escribe 1-2 que realmente te ayuden. NO te permitas decirte que no tienes tiempo para esto ahora. Es bastante extraño, pero se aplica: "Pasé tiempo para obtener tiempo"

No me gusta poner estas cosas en algún "producto" porque quiero estar seguro de que existirá 20 años después y no quiero migrar a varias plataformas ...

Entonces, ¿qué hacer?

Todo lo que pueda obtener la información con el mínimo esfuerzo.

Por ejemplo, instale phpBB y escriba a usted mismo. Obtiene la funcionalidad de búsqueda fuera de la caja, es gratuita y puede extraer los datos con sentencias de SQL simples y colocarlas en archivos. puede tener un cronjob exportando sus pensamientos en archivos para archivar. Entonces, si alguna vez necesita ponerlos en otro sistema, estará listo con el mínimo esfuerzo.

Otro problema es que nadie garantiza que los enlaces que encuentres funcionen mañana (imagínate 5 años después). Así que intenta duplicar la información:

-Descargue el video con alguna extensión del navegador y adjúntelo, por ejemplo, a su publicación phpBB (o wordpress o lo que sea).

Enfréntalo: eres un programador y haces aplicaciones para otras personas. Haga uno simple para usted y conviértase en SU mejor cliente.

mi 2c

    
respondido por el e4rthdog 07.04.2012 - 11:06
-1

Respuesta corta:

Practica, practica, practica.

Respuesta no tan breve:

¿Cómo recuerdas cómo caminar? ¿Cómo recuerdas cómo hablar? Por supuesto, estas habilidades no son exactamente iguales y no requieren un conocimiento enciclopédico (aparentemente, al menos para los principiantes), pero estás usando lo mismo: la memoria.

Aunque admito que, para los principiantes, la programación puede parecer un tema increíblemente grande cuando empiezas a estudiarlo, se vuelve como cualquier otro tema una vez que hayas aprendido lo básico.

Tan pronto como lo descubrí, comencé a dividir las cosas en partes cada vez más pequeñas (mi propia versión personal de abstracción). De esa manera, algo que parecía difícil de recordar se vuelve más fácil (al menos conmigo lo hace).

Escribir cosas ayuda más de lo que piensas (después de haber trabajado en Educación, sé que esto puede tener efectos positivos masivos en la retención). Especialmente si puedes ponerlo en tus propias palabras, en lugar de simplemente copiarlo literalmente. Si puedes parafrasearlo o igualarlo con algo que ya sabes, aún mejor.

Por ejemplo: En C #, los objetos String son inmutables. Esto significa que cada vez que le digo a mi programa que cambie el contenido de un objeto de cadena, lo que realmente sucede es que la cadena original se destruye (técnicamente se coloca en el nivel más bajo del recolector de basura). Exactamente como cuando un artista comete un error al crear una escultura de mármol: no se puede cambiar, por lo que se destruye y se crea uno nuevo.

No es un gran ejemplo, pero muestra los aspectos básicos de lo que estoy tratando de conseguir.

La documentación de calidad también ayuda. Algo que mi profesor de Programación 101 me dijo una vez que se quedó conmigo:

  

Haz tu comentario detallado. No hasta el punto de la estupidez, pero necesita poder escribir comentarios que un programador no pueda entender. De esa manera, usted sabe que alguien más en el proyecto puede entenderlo perfectamente. Imagina que pasarías meses implementando un sistema, pero te verías involucrado en algún tipo de horrible accidente en el camino al trabajo. A otra persona se le asignará su trabajo, especialmente si está cerca del momento crítico, y si no pueden averiguar qué está haciendo su código, la producción se detiene.

Los buenos libros también son un excelente recurso. Un tutor diferente me dijo una vez que si un libro no tiene un índice (y hay muchos de ellos, que no tienen), entonces no vale la pena comprarlos.

Google puede ser un recurso increíble, pero tenga en cuenta los codificadores de copiar y pegar. Manténgase alejado de los sitios que solo le dan un bloque de código sin ninguna explicación. Prefiero leer un artículo completo sobre pequeños bloques de código, de esa manera te irás sabiendo exactamente lo que el bloque de código debe hacer, cómo lo hace y por qué el programador lo escribió de esa manera.

Espero que ayude

    
respondido por el Jamie Taylor 17.04.2012 - 15:06

Lea otras preguntas en las etiquetas