¿Es necesario memorizar código?

10

Soy un desarrollador nuevo, que acaba de ser contratado en una gran empresa. No sé cómo, pero supongo que están desesperados. Sin embargo, estoy bien versado en HTML5 / CSS3, aunque las cosas cambian y se lanzan cosas nuevas y me mantengo al día tanto como puedo. Pero este trabajo me obligó a codificar a mano Javascript, conocer Jquery y Ajax. He estado expuesto a esto un poco, pero no estoy seguro de poder codificar Javascript manualmente.

Mi pregunta es, ¿es necesario memorizar todo lo que hay sobre Javascript o hay algunas cosas clave que debería saber cómo codificar a mano porque al mirar el código javascript parece que hay muchas líneas de código!

Por favor, apúntame en la dirección correcta.

AAA
fuente
44
Quizás no estén desesperados. ¡Quizás pareces tener un gran potencial!
SuperM
3
heh, tenía un amigo que quería aprender a programar y comenzó con HTML / CSS / JavaScript. Me decía "Acabo de memorizar 'xyz'" y sonreí y le dije que debería aprender aprendiendo los conceptos de las cosas y luego encontrar una buena referencia para usar. Sabiendo que hay algo en lenguaje ABC que hace lo que sea suficientemente bueno. Puedes buscarlo en el manual / ref. Memorizará los conceptos básicos solo con la programación continua y necesitará el manual un poco menos.
programador
2
Los manuales de referencia existen por una razón. Memorizará las cosas que usa todos los días solo por pura repetición, pero para todo lo demás, solo tenga a mano un buen manual de referencia.
John Bode
44
Mi primer trabajo de programación fue genial. Tuve un colega que al principio me menospreciaba por usar mucho los árbitros. Había memorizado literalmente todo. Luego se sorprendió de lo que produje. Terminó conmigo no necesitando más los libros y él siendo mi mascota-enciclopedia. Lo más importante es que conozca una opción, sepa que existe en lugar de recordar exactamente la sintaxis exacta.
Pieter B

Respuestas:

33

Hoy, en nuestro trabajo como en nuestra vida, es más importante saber cómo encontrar información que conocer la información misma. Quiero decir que un buen desarrollador es una persona capaz de encontrar documentación, redes y compartir con una mente abierta.

Soy un desarrollador experimentado de .NET y, créanme, para cada proyecto en el que trabajo tengo que aprender cosas nuevas sobre el lenguaje y el entorno de desarrollo. Nuestro trabajo siempre es más complejo, así que no te preocupes. Dirija su atención a la resolución de problemas y luego busque ayuda. Todas las soluciones ya existen; debemos poder encontrarlos.

AngeloBad
fuente
Buena respuesta Si bien los problemas más comunes seguramente tienen soluciones existentes, debo señalar que todas las soluciones no existen y que muchos problemas no tienen solución.
VENIDO DEL
Depende del dominio del problema que esté considerando. La pregunta es sobre los restringidos. Por supuesto, si considera todo el problema, alguien seguramente es una solución incorrecta.
AngeloBad
1
no puedo estar más de acuerdo con respecto a "es más importante saber cómo encontrar información que conocer la información en sí misma" "Dirija su atención a la resolución de problemas y luego busque ayuda", esto es exactamente lo que estoy haciendo.
Zinking
2
Si bien estoy de acuerdo en que es importante poder buscar información, todavía tienes la responsabilidad de "conocer tu oficio". Si no puede codificar a mano Java, eso es simplemente ridículo. Si quieres ser un desarrollador profesional, no puedes depender de muletas durante toda tu carrera.
Bryan Oakley
La alegría de Google como herramienta de desarrollo. :-)
MathAttack
9

Después de trabajar con algo durante algún tiempo, aprenderá / conocerá las cosas importantes automáticamente.

No es necesario conocer todas las API, listas de parámetros de funciones, etc. Existen documentos para cosas como esas. En general, necesita saber cosas o dónde encontrarlas.

Por ejemplo, tomemos la $.ajax()función de jQuery. Yo sé lo que hace y las opciones de uso común, tales como url, type, data, etc. Si necesito algo no estándar, que abra los documentos y comprobar ellos.

Al buscar cosas, debe asegurarse de que sus fuentes sean confiables y estén actualizadas. Por ejemplo, MDN es mientras que w3schools no lo es .

ThiefMaster
fuente
Gracias. Me siento mucho mejor ahora, ya que esta es mi primera experiencia trabajando para alguien en desarrollo web, no estaba seguro de cómo abordarlo. Aparentemente son un entorno de ritmo de hechos, así que supongo que estudiaré muchas cosas antes de llegar allí y todos los días que estoy allí y de regreso a casa. ¡Gracias de nuevo!
AAA
3

No haría ningún esfuerzo específico para memorizar todo lo que haces. Lo mejor es aprender sobre la marcha. Si te encuentras buscando algo más de 3 veces, es hora de memorizar.

Excepciones a esta regla:

  • Elementos centrales en su código
  • Atajos de marco
Algunos gatitos
fuente
¡Gracias! Entonces, te refieres a códigos de uso frecuente y atajos de marco si hay un marco involucrado. ¿Algún recurso que pueda sugerir para una gran exposición a ajax / json / jquery / js? Gracias de nuevo.
AAA
2
Empezaría aprendiendo JS correctamente antes de entrar en los demás.
SomeKittens
3

Lo más importante que necesita memorizar es CÓMO resolver un problema y NO QUÉ escribir . Si sabe cómo resolver problemas, puede aplicar ese conocimiento en cualquier idioma y tecnología.

Creo que memorizar código es solo una pérdida de tiempo. Lo olvidará de todos modos si no lo usa correctamente. Lo que viene a lo esencial, como dijo ThiefMaster, con el tiempo los memorizará y usará automáticamente.

Es como esa historia sobre el pescador que puede dar un solo pez a un hombre hambriento o enseñarle a pescar. Creo que definitivamente es mejor aprender a pescar.

superM
fuente
2

Primero, no te desanimes. A menos que haya tergiversado por completo su conjunto de habilidades y haya mentido en la entrevista, tiene algo que ellos consideran valioso. Los impresionó lo suficiente como para conseguir el trabajo, y eso no es poca cosa en estos días.

En segundo lugar, me concentraría principalmente en aprender las estructuras de programación y en cómo se implementarían en JavaScript. A para el siguiente bucle es para el siguiente bucle es para el siguiente bucle, etc. La única diferencia es si es para x: = 1 a 30, o para (i = 0; i <30, i ++) o alguna otra cosa.

Una vez que conozca los conceptos básicos, puede aplicarlos en casi cualquier lenguaje de programación con un poco de ajuste, y comenzará a aprender cómo aplicar accesos directos, soluciones más esotéricas.

Luego, en algún momento, la compañía dirá "Necesitamos a alguien que haga X", y usted puede decir "Yo puedo hacer eso".

JohnP
fuente
1

¿Qué quiere decir "se requiere para entregar el código"? ¿No le permitirán ejecutar Eclipse o una miríada de herramientas que asimilen estos idiomas? ¿O simplemente están tratando de juzgar su comprensión básica de ellos? Trabajo diariamente con varios lenguajes (C ++, Java, JavaScript, Php), por lo que a menudo olvido la sintaxis exacta de lo que quiero hacer. Digamos que quiero obtener la parte de una cadena después del primer espacio en Java. Uso indexof ("") para encontrar la posición, luego substring () para obtener el resto de la cadena. No recuerdo si es indexOf, pero es una tontería no usar Eclipse y ahorrar unos minutos de lectura en los documentos.

doug

SnoopDougieDoug
fuente
1

He estado trabajando en mi proyecto actual durante varios años y me he sorprendido de la cantidad de base de datos que he memorizado. Obviamente, esta información está fácilmente disponible para buscar, pero cuando te familiarizas con algo, no puedes evitar recordarlo. Mi jefe me hizo una pregunta ad hoc, y respondí una pregunta mientras él miraba sorprendentemente por encima de mi hombro. Es bueno ser reconocido; Disfrútalo mientras puedas.

Normalmente, esto no es cierto para mí en absoluto. Utilizo muchas herramientas para realizar un seguimiento de las cosas y para buscar ejemplos de código. Supongo que si trabajo en otra cosa, algo de esto desaparecerá.

Si su trabajo requiere que trabaje en varios proyectos utilizando diferentes herramientas, no va a ser completamente fluido en muchos de ellos. La capacidad de comprender conceptos y aprender cosas nuevas será más importante a largo plazo porque muchas cosas cambiarán. En algún momento, no debería tener que buscar la sintaxis de if / then / else en el idioma que elija 5 veces al día.

JeffO
fuente
0

Hasta donde yo sé, no tienes que memorizar todo el código que usas. Se acostumbrará automáticamente a los códigos que son importantes en su campo, lo que viene repetidamente en su tarea. Pero lo más importante que debes entender es lo que vas a hacer, después de eso puedes usar google para saber cómo puedes hacerlo, no estoy diciendo que obtendrás todo tu código en google pero puedes usar su referencia .

Ishan Shah
fuente