¿Cómo recuerdas programar cosas relacionadas? ¿Ha tenido la sensación de haber encontrado el error que tenía antes, hace algunos años y podría jurar que sabía la causa en ese momento, pero ahora lo ha olvidado?
¿Trabajó con el análisis de la cadena de xsl hace algún tiempo pero ahora no puede recordar exactamente cuáles son las funciones de cadena de xsl y tiene que comenzar desde cero? O tal vez se olvide de alguna característica de Apache Commons como "filtrar una colección por algún predicado" que seguramente utilizó en el pasado.
Entonces, ¿cómo lo haces? Intenté tener un blog, pero cuando desarrollo aplicaciones, nunca encuentro el tiempo para actualizar el blog o escribir sobre mis experiencias. Además, usar un wiki es algo agradable, pero luego me resultó difícil mantener una separación limpia entre ellos, ya que muchas veces necesitaba cambiar una publicación de blog para agregar nueva información sobre ese tema. Esto me hizo pensar que en realidad debería haber puesto este tema en la wiki en lugar del blog.
¿Tiene algún sistema que lo ayude a recordar su experiencia de programación? ¿Cuál es tu configuración?
fuente
Respuestas:
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:
fuente
Mi clave es
Variedad
Repetición. Una vez puede ser fugaz. ¡Ver el evento número 100 hace la diferencia!
Memoria con los dedos . Recuerdo el código mucho mejor cuando lo he escrito algunas veces.
Biblioteca de códigos : mantenga una reserva personal de códigos y trucos que haya usado y visto.
Centralización. Mantengo 1 archivo con todos mis nombres de usuario (cientos) en 1 PC. Le aplico seguridad.
Disciplina : mencionó que no tiene tiempo / hacer el esfuerzo de actualizar su propio blog, etc. En el que solo tiene que trabajar más y asegurarse de hacerlo.
Aceptación : las habilidades y técnicas y las cosas que aprendiste la semana pasada serán frescas. Algunos de los artículos 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 mnemotecnia, a veces dejo caer una imagen con conceptos clave dibujados de formas distintivas. Leo, escucho podcasts, veo videos, uso el color en los editores. Cuanto más sentido uso, mejor.
Mnemotécnicos , p. Ej., Orden de borde css Tarball (TaRBalL) TopRightBottomLeft. También uso colores y formas para recordar palabras y temas. ¡A menudo, cuanto más extraño, más memorable!
Uso continuo : este es el efecto 'úsalo o piérdelo'. Todo el 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 "actuales" y "recordadas" incluso si no las estoy usando en mi trabajo / proyecto actual.
Dropbox : mantengo archivos pequeños comunes con elementos relacionados con la memoria
Libros : todavía me gusta la tontería y la sensación de los libros físicos. También tengo múltiples Kindle y otros libros técnicos en línea a los que puedo referirme en cualquier lugar. Obviamente, mi biblioteca técnica puede ser accesible desde cualquier lugar cuando es digital, lo cual es enorme.
El efecto Google : ninguna lista de elementos estaría realmente completa sin mencionar esto. Esto es más acerca de 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 expertas en esta forma de obtener conocimiento, la necesidad de memorizar un hecho determinado está disminuyendo. Sin embargo, esto también está 'elevando el listón' 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 sitio de marcadores .
fuente
Durante el año pasado, Evernote se convirtió en un programa del que no podía prescindir. Copié 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á allí en alguna parte.
La versión básica es gratuita. ¡Así que pruébalo!
fuente
Sherlock Holmes dijo una vez algo como "La mente de un hombre es como un ático. Si lo llenas de trivialidades, no hay espacio para nada realmente importante. Para todos estos detalles, tenemos la enciclopedia".
A menos que tenga una memoria fotográfica y sus problemas, no recordará todo. Cree un conjunto de recursos, una biblioteca personal de información y técnicas de resolución de problemas.
Puede que no recuerde la respuesta, y puede que ni siquiera recuerde 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.
fuente
Bueno, tal vez mi caso es particular ... pero: tengo cada fragmento de software que escribí desde 76 en mi computadora portátil, programas, scripts, configuraciones, etc. Así que con el tiempo (debo confesar), mi carga de memoria ha cambiado de recordar ' cosas 'para recordar metadatos sobre cosas. Claro, muchas de ellas ya no son relevantes, pero lo que encuentro es que lo difícil es tener ideas, no implementarlas. Entonces, los metadatos son básicamente un índice de qué 'ideas' se pueden encontrar dónde.
Cuando llego a un nuevo terreno, hoy en día, tiendo a encontrar una base de código grande que utiliza 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 que pueda acceder a nuevas herramientas (bibliotecas, idiomas, tecnología de construcción, etc.). Este proceso me permite mapear mis patrones, ideas, en un ejemplo. Puedo tomarme un tiempo para hacer algunos de estos mini proyectos y elegir como referencia el que más me hace sentir en casa. Una vez hecho esto, eventualmente cambiaré el propósito de esa base de código 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) regreso al gaagle. La primera respuesta relevante sobre esto suele ser un enlace a algunas preguntas interesantes sobre SO.
fuente
Como otros, llevo un registro de las cosas usando marcadores.
Solía usar Delicious, pero ahora me he mudado 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 más o menos, comencé a usar Stackoverflow como uno de mis términos de búsqueda!
Cada vez que vengo a hacer una pregunta de SO por un tema particularmente difícil, lo prefiero para rastrearlo, por lo que esta es otra forma de marcadores.
fuente
Es absolutamente normal no recordar los detalles más finos. Sin embargo, de lo que debe preocuparse es de olvidar las cosas más importantes. Si solucionó un error, al menos debería tener una idea conceptual sobre cuál era el problema.
Marcadores, blogs, cuadernos están bien para guardar esos detalles más finos. Pero en última instancia, aún debe recordar la "imagen" más grande. De lo contrario, volver a descubrir esos detalles "más finos" será mucho más difícil.
fuente
Mantenga sus propias notas, expresando las cosas en sus propias palabras. Su público objetivo es usted , nadie más, por lo que puede darse el lujo de ser conciso. (Sin embargo, una publicación de blog realmente debe ser clara y estar bien editada, lo que lleva mucho tiempo). Si encuentra buenos artículos / publicaciones de blog, registre la URL, pero aún explique las cosas con sus propias palabras.
Mantengo una gran jerarquía de archivos pequeños, cortos y de un solo tema. Los archivos son en su mayoría de forma libre, pero estoy cambiando a usar Markdown. Buscar usando grep / find. Mantengo la carpeta en mi DropBox, por lo que siempre está disponible para mí.
fuente
Cada uno puede tener su propio estilo al que está acostumbrado. Para mí, separo el conocimiento en categorías:
Libros
Artículos
Colecciones (Cosas que encuentro interesantes limitadas a unos pocos párrafos. En realidad copio la información y algunas veces anoto la fuente). Por ejemplo: Desarrollo de OOD, Genéricos, ... etc.
Código reutilizable (texto y fragmentos): cada uno en un archivo separado bajo una buena organización de árbol. Por ejemplo, el nodo DataValidation contendría muchas técnicas para validar diferentes elementos de datos, cada uno en un archivo separado
Proyectos completados
Video tutoriales personales (a veces grabo videos de cómo hacer las cosas cuando hay demasiados pasos involucrados).
Enlaces
Organizo lo anterior por materia, con cada materia en una estructura de árbol apropiada.
Algunas veces hay cosas superpuestas, pero logro encontrar lo que quiero.
Además, usando Google Desktop, encontrar texto o archivos es muy rápido.
fuente
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.
fuente
Debe estar equilibrado entre la memoria y el "almacenamiento". Si confía demasiado o por cosas incorrectas en la memoria, == problema, si confía demasiado en almacenar todo == inútil.
Mis reglas:
-¡No embellecer más! escribe las cosas importantes incluso si el tamaño de la fuente varía en tu documento :)
-No sobre orginizar. Convénzase usted mismo de que la organización de sus pensamientos no necesita una estructura de árbol de 10 niveles.
-HASTA TIEMPO en encontrar qué grabar. Puede encontrar 5 soluciones para el mismo problema. en el momento en que los escribes TODOS pierdes. 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 tener 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 migrarme a varias plataformas.
¿Entonces lo que hay que hacer?
Cualquier cosa que pueda obtener la información con el mínimo esfuerzo.
Por ejemplo, instale phpBB y escriba a usted mismo. obtienes la funcionalidad de búsqueda lista para usar, es gratis y puedes extraer datos con simples sentencias SQL y ponerlos en archivos. puedes tener un cronjob exportando tus pensamientos en archivos para archivar. Entonces, si alguna vez necesita colocarlos en otro sistema, está listo con el mínimo esfuerzo.
Otro problema es que nadie garantiza que los enlaces que encuentre funcionen mañana (imagínese 5 años después). Así que intenta duplicar la información:
-Descargue el video con cierta extensión del navegador y adjúntelo, por ejemplo, a su publicación phpBB (o wordpress o lo que sea).
Acéptalo: eres un programador y creas aplicaciones para otras personas. Haga uno simple para usted y conviértase en SU mejor cliente.
mi 2c
fuente
Respuesta corta:
Practica, practica, practica.
Respuesta no tan corta:
¿Cómo recuerdas cómo caminar? ¿Cómo recuerdas cómo hablar? Por supuesto, estas habilidades no son exactamente las mismas y no requieren un conocimiento aparentemente enciclopédico (al menos para principiantes), pero estás usando lo mismo: memoria.
Si bien admito que, para los principiantes, la programación puede parecer un tema increíblemente grande cuando comienzas a estudiarla, se vuelve como cualquier otro tema una vez que has aprendido lo básico.
Tan pronto como lo descubrí, comencé a dividir las cosas en trozos cada vez más pequeños (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).
Anotar las 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 solo copiarlo textualmente. Si puedes parafrasearlo o equipararlo con algo que ya sabes, aún mejor.
Por ejemplo: en C #, los objetos de cadena 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 tanto, se destruye y se crea una nueva.
No es un gran ejemplo, pero muestra los conceptos básicos de lo que quiero decir.
La documentación de calidad también ayuda. Algo que mi profesor de Programming 101 me dijo una vez me quedó grabado:
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 lo tienen), entonces no vale la pena comprarlo.
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 explicación. Prefiero leer un artículo completo sobre pequeños bloques de código, de esa manera te vas 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
fuente