Parece que uno tiene que recordar todo tipo de sintaxis para poder programar. Si uno no tiene buena memoria para recordar nombres, ¿será más difícil aprender a programar?
Parece que uno tiene que recordar todo tipo de sintaxis para poder programar. Si uno no tiene buena memoria para recordar nombres, ¿será más difícil aprender a programar?
Respuestas:
La sintaxis de un idioma no es tan difícil como cree recordar, si lo usa a diario. Finalmente se vuelve muy fácil. Recordar todas las funciones de la biblioteca podría ser mucho más difícil y no creo que la mayoría de la gente pueda recordar más que las más comunes que usan, pero está bien si tienes acceso a la Web, a un libro o algo más que " recuerda "todos los otros detalles para ti.
Parece que uno tiene que recordar todo tipo de sintaxis para poder
programarun lenguaje natural.Si uno no tiene buena memoria para recordar palabras de
nombres, ¿será más difícil aprender aprogramarhablar?
No puede ser cierto que las personas tengan una instalación "natural" con los idiomas, ¿verdad?
No es posible que tengamos hardware neuronal de bajo nivel solo para adquirir idiomas, ¿verdad?
La programación utiliza lenguajes artificiales que siguen muchas de las reglas de los lenguajes naturales.
Los lenguajes naturales tienen un poco más de flexibilidad que los lenguajes de programación.
gramática de todavía estricta. reglas hay muy son cuales Pero
Si puede hablar, puede aprender a programar sin memorizar nada más de lo que memorizó cuando aprendió a hablar.
Si está hablando de memoria a corto plazo, entonces sí . Un programador debe ser capaz de hacer malabarismos con múltiples bits de información simultáneamente al programar / resolver problemas.
Si estás hablando de memoria a largo plazo, entonces no realmente. Hay muchos manuales y referencias + herramientas que pueden ayudar significativamente a recordar información. Ciertamente, memorizar esta información a largo plazo lo convertirá en un desarrollador más rápido (en general), pero no es un requisito previo.
Una buena memoria es absolutamente esencial, pero no por las razones obvias.
Recordar detalles sobre algoritmos específicos, bibliotecas, nombres de variables, etc. es muy útil, pero no es súper importante. Tiene Google, DuckDuckGo, páginas de manual, documentación específica del idioma y editores inteligentes para ayudar con todo lo anterior. Ayuda si no necesita depender de estas muletas, pero le irá bien si las necesita de vez en cuando.
Donde la memoria es esencial es mantener los detalles de lo que está trabajando en la memoria activa a corto plazo. Ser capaz de visualizar el diseño, el flujo de datos, los algoritmos, las estructuras de datos y cómo interactúan todos para hacer lo que sea que haga su producto separa al programador OK del gran programador. Cuando lo haces activamente, se siente como si estuvieras haciendo malabares con éxito una cantidad gigantesca de pelotas mientras andas en monociclo.
Esto a menudo se conoce como estar en la zona . Las interrupciones, las preguntas estúpidas, los jefes que necesitan informes TPS te sacan de esta zona.
Cuanto mejor sea su memoria, más fácil será ingresar a la zona, más fácil será permanecer allí, y más fácil será regresar a ella después de una interrupción.
Si tienes problemas con este tipo de memoria, te sugiero que aprendas técnicas de meditación y trucos de memoria a medida que tu memoria sea más fácil, mayor éxito tendrás como programador.
Voy a ir en contra de la corriente y decir que sí . Un buen recuerdo es ser un activo increíble como programador. Mi memoria siempre la he visto como un problema de programación, así que he aprendido algunos trucos para compensar mi discapacidad:
Debería poder recordar cómo se deletrea esa variable (que usó 3 líneas antes). Si no puede aprender a usar Intellisense (o cualquiera que sea su forma de autocompletar está en su editor o IDE).
Debería poder recordar rápidamente lo que estaba haciendo la última vez que trabajó en este proyecto. Esto pudo haber sido hace días, podría haber sido justo antes del almuerzo. Si no puede, aprenda a escribir cosas . Mantenga un cuaderno a su lado y escriba lo que estaba (o está haciendo), TODOS los elementos y las cosas que necesita recordar sobre cómo encaja el código actual en el que está trabajando.
La depuración y el control de calidad es difícil. Idealmente, debe mantener un cuaderno muy detallado sobre los pasos que siguió al intentar reproducir un error o depurar algo. Esto es algo que sé que debo hacer, pero con lo que aún lucho.
¡Espero que esto ayude!
La Guía de Guerrilla para las entrevistas (versión 3.0) es una referencia común que señala que ser inteligente y hacer las cosas son los puntos importantes de la programación. Smart incluye algunas habilidades de memoria, pero no necesariamente tanto como puede pensar.
Intellisense puede ayudar mucho en lo que respecta a la sintaxis si desea ayuda en ese aspecto. Saber cómo aprende para que pueda aplicar rápidamente lo que aprende de una manera significativa es más importante que poder responder preguntas de trivia.
Creo que recordar nombres es una función cognitiva bastante diferente de recordar procesos, que es diferente de recordar vocabularios. Ha habido casos de personas que han recibido lesiones cerebrales que eliminaron por completo la capacidad de recordar nombres y funcionar perfectamente bien de lo contrario.
Entonces diría que la capacidad de recordar nombres no está relacionada con el aprendizaje de lenguajes de programación.
Sin embargo, sería útil poder recordar patrones lógicos, reglas y vocabulario.
No. La profundidad de memoria de las herramientas (Intellisense, Google, compiladores, generadores de código) es infinita en comparación con la memoria humana. Por lo tanto, un programador con buena memoria no es mucho mejor que uno con un agujero en la cabeza.
Lo que los programadores realmente necesitan es la "velocidad máxima de ganancia de enfoque" cuando cambian entre niveles de abstracción. Cuanto más rápido puedas, mejor serás como programador. Algunos tienen una velocidad de latido del corazón de 500 ms, con la llegada de la primera onda de sangre al cerebro en el que estás concentrado. Algunos tienen un reloj de enfoque redondeado al ciclo de fumar, aproximadamente 2 horas. Algunos necesitan una ducha matutina, así que unas 24 horas. etc. La diferencia entre programador bueno y malo se declaró una vez hace 1:80 veces, y la brecha solo está creciendo.
No, solo necesitas entender cómo funciona Google para obtener lo que quieres
Tengo un recuerdo horrible, pero mis habilidades en Google son increíbles ^ _ ^
Con toda seriedad, siempre que sepa dónde encontrar la sintaxis, no necesita recordarla. Para eso sirven Intellisense, archivos de ayuda, guías de referencia, Internet, etc.
En primer lugar, aprender a programar es difícil para todos. Tener una buena memoria ayuda, estoy seguro. Pero, la dedicación y el amor por el aprendizaje permanente son más valiosos. La sintaxis de aprendizaje es como cualquier otra cosa, la repetición.
No hay nada mágico o sobrehumano en la habilidad de programar. Solo pasa alrededor de 10,000 horas en él ... y serás un maestro como cualquier otra habilidad. Por supuesto, eso son 10,000 horas de entrenamiento, no repetir ciegamente y aturdir los errores del pasado.
Escribiste esta publicación en inglés, con la sintaxis adecuada. Claramente puedes recordar cómo usar un idioma. Solo necesita aprender un nuevo idioma y usarlo con la frecuencia suficiente para acertar todo el tiempo. A diferencia de los lenguajes orientados a los humanos, los lenguajes de programación de computadoras siempre le avisarán cuando haya usado una sintaxis incorrecta, por lo que en realidad es más fácil. :-)
Estoy de acuerdo en que hay una gran variedad de cosas que un programador promedio puede saber para llevar a cabo sus tareas, solo piense en todas las palabras, sintaxis, técnicas que básicamente debe controlar para construir un sitio web simple (en la parte frontal: html, css, javascript (puede contar también algunos frameworks Js como jquery), ajax, en el back-end: Php o ASP o ASP.Net, y no se olvide de las bases de datos, mySql o SqlServer u Oracle o MongoDB, etc. Hay una gran lista de lenguajes, paradigmas, sintaxis, patrones, etc., es imposible recordarlo todo.
Piensa que lo que hace a un buen programador es practicar, practicar con algoritmos más que con lenguajes, y con eso eventualmente recordará las cosas que usa con más frecuencia, por lo demás, siempre hay google = P
Un gran recuerdo puede cortar en ambos sentidos.
Si puede hacer malabares con docenas de bits de información en su cabeza a la vez, será mucho más fácil darle sentido (y con suerte reescribir) ese horrible fragmento de código heredado que es crítico para el proyecto pero tan complicado que todos los demás tienen miedo tocarlo
Por otro lado, ese horrible fragmento de código que es crítico para el proyecto pero tan complicado que todos los demás tienen miedo de tocarlo probablemente fue escrito por alguien con una capacidad increíble para hacer malabares con docenas de bits de información. Si tienes un gran recuerdo, trabaja mucho para cultivar un aprecio por la elegancia de la simplicidad.
Aprender la sintaxis de un lenguaje de programación no requiere una gran memoria. Como otros han dicho, la sintaxis se refuerza tanto en su memoria que rápidamente se convierte en una segunda naturaleza. ¿Alguna vez olvidaste en qué lado de la carretera debes conducir? ¿Qué símbolos aritméticos representan suma y resta? Si no, dominará las partes más comunes de la sintaxis de su idioma elegido sin demasiados problemas, y puede buscar los bits menos comunes cuando aparezcan.
Algunas bibliotecas tienen cientos o miles de funciones, clases y / o métodos. A un extraño le parecería una tarea imposible aprender a usar toda esa funcionalidad. Pero casi siempre hay una estructura subyacente en la biblioteca. En lugar de tratar de recordar todas esas funciones, un programador inteligente intenta comprender cómo está organizada la biblioteca y qué puede hacer. Una vez hecho esto, generalmente es bastante fácil encontrar la función que necesita cuando la necesita.
En resumen, la memoria es mucho menos importante que la comprensión.
Depende. Dentro de Java y .NET, las bibliotecas estándar están en una especie de jerarquía y están bien documentadas. Por lo tanto, si sabe que se trata de redes, vaya a system.net en C # y desde allí puede profundizar en los objetos / llamadas específicos que necesita. Entonces, desde ese punto de vista, no necesita memorizar los detalles y allí.
En su propio programa, se trata de cómo organizar / nombrar las cosas. Si está utilizando nombres como a $, b $, c $ ... o g $ de Basic de antaño, entonces buena suerte. si nombra las cosas de la manera en que las considerará como Nombre, Apellido, es mucho más fácil. Muchos idiomas tienen estándares de nombres que también ayudan. En Java, por ejemplo, existe una convención de setX, getX para obtener / establecer atributos específicos de una clase, así como convenciones de capitalización. Entonces, si sabe que una persona tiene nombre, entonces probablemente se llama firstName y el getter / setter es probablemente getFirstName y setFirstName ..... Entonces esas convenciones ayudan mucho ...
Además, los métodos / funciones más cortos te ayudan a mantener menos en tu cabeza al mismo tiempo. Y usar nombres propios lo ayuda a no tener que ir a buscar. Por ejemplo, si nombra las cosas por lo que hacen, cuando lea un procedimiento que llame a getMaximumValue probablemente no necesitará leer getMaximumValue para descubrir qué hace ... Pero a medida que las funciones / métodos se alargan y se anidan más, entonces una mejor memoria Definitivamente ayuda.
La memoria no es tan importante. Si está preocupado por eso, regularmente olvido mi billetera o llaves en mi casa por la mañana. Llamo a todos por el nombre equivocado al menos una vez (incluidos mi familia y mi novia). Simplemente me olvido de hacer cosas en la casa todo el tiempo.
Al final del día, los principios de programación seguirán en tu cabeza como "nunca olvidas cómo andar en bicicleta". Los detalles específicos y los detalles de implementación no son tan importantes. Siempre puedes buscarlos en Google.
De Joel On Software sobre la productividad de un programador
La productividad depende de poder hacer malabarismos con muchos pequeños detalles en la memoria a corto plazo de una sola vez.
Por lo tanto, la memoria a corto plazo es muy importante para un programador dado una tarea crítica.
Pero no creo que la memoria a largo plazo importe tanto.
De una lectura rápida, no vi a nadie hablando de memoria en el sentido general de programación en lugar de una tarea singular de escribir un programa.
La memoria es útil para dos cosas:
Recordando la semántica / bibliotecas básicas:
Esto es fácilmente suplantado por la repetición y Google. IOW, la cantidad de memoria con la que naces tiene que ser ridículamente baja para no poder superar este problema.
Recordando el contexto en grandes programas:
Aquí es donde está el truco. A medida que los programas se hacen más grandes (y usted se hace mayor), las decisiones que toma se relacionan totalmente con la cantidad de su conocimiento del sistema y la capacidad de recuperarlo en cuestión de milisegundos si va a ser de alguna utilidad en discusiones de proyectos, depuración, reaccionar ante emergencias operativas, etc. Cuando el empuje llega a su fin, ninguna cantidad de documentación / entradas de wiki lo ayudará; el "asistente" de su equipo será su única opción. Esta es una de las razones por las cuales los ingenieros principales son valorados / pagados tanto. Es posible que la mayoría de ellos no dediquen todo su tiempo a codificar en este momento, pasan más tiempo manteniéndose al día con la imagen completa y aplicándola para cualquier problema / mejora. Los buenos solo se mantienen en contacto haciendo un montón de CR y un cambio de codificación aquí y allá / creación de prototipos de revisiones más nuevas.
IOW, puede ser un programador razonable con el n. ° 1 solo, pero si alguna vez va a ser el próximo Linus, será mejor que tenga mucha memoria, al menos lo suficiente como para abarcar el problema que está resolviendo.
Según mis observaciones, incluso podría decir que la memoria de trabajo es casi directamente proporcional al valor de la persona.
Un pequeño descargo de responsabilidad para concluir: si tiene memoria eidética pero cero / bajo poder intelectual para aplicar esa lógica, no será bueno para un proyecto que una cámara.
Si tiene dificultades para recordar los nombres de las personas que conoce, aún podría convertirse en un gran programador.
Olvido los nombres de las personas todo el tiempo. Soy un programador senior con casi una década de experiencia. En mi caso, mi terrible memoria auditiva se compensa con una gran memoria visual.
Aun así, el requisito esencial para un buen programador es la capacidad de abstraer. No importa cuánto o qué poco recuerde, si no puede comprender el concepto de una variable y cómo usarla en un programa, no se convertirá en un buen programador.
Mi sugerencia es que pruebe un curso corto de programación o complete el tutorial de Python para ver cómo le gusta.
Eso debería darle una buena idea sobre si la programación es una carrera que podría interesarle seguir.
¡Digo un enfático SÍ!
Actualmente estoy aprendiendo JAVA & C #. Todas las pruebas son de libro cerrado, por lo que para JAVA todo es 100% de memoria que codifica todas las aplicaciones en los exámenes.
Además, cada vez es más difícil. Ahora estoy en el punto donde necesito comenzar a usar trucos de memoria como mnemónicos, etc.
Yo diría que un alto coeficiente intelectual, buen conocimiento general, buen vocabulario, polimatismo, conocimiento matemático superior, escritura táctil y buena memoria son todos activos para un programador.
Conozco programadores muy inteligentes que no pueden escribir con letras o hacer cálculos matemáticos más altos, etc. Si lo hicieran, podrían ser mucho mejores.