Soy desarrollador web, no memorizo ​​la sintaxis de programación intencionalmente. Tengo que buscar la sintaxis de Google la mayor parte del tiempo, incluso para la sintaxis fácil. ¿Soy el peor desarrollador web?

No, estás lejos del peor desarrollador web.

Para ser sincero, eso es lo que hacen casi todos los desarrolladores. No es humanamente posible recordar todas las sintaxis posibles, o incluso la mayoría de ellas. He estado programando desde hace más de 4 años (en Microsoft .NET), y desarrollo aplicaciones web, Windows, Silverlight, Azure y Windows phone. Aún así, hago un uso extenso de Google para ‘buscar’ cosas que me ayuden.

Piénsalo de esta manera. Las computadoras pueden almacenar una gran cantidad de datos, pero no pueden “pensar” por sí mismas. Solo realizan las tareas para las que están programados. Por otro lado, los humanos tienen memoria limitada pero tienen la capacidad de pensar lógicamente y llegar a soluciones. Entonces, cuando una persona busca ayuda en línea para completar tareas de programación, en realidad está combinando su capacidad de pensamiento con la información presente en la memoria de la computadora (Google devuelve resultados de búsqueda de información almacenada en varios servidores, así que supongamos que esto llega como ‘memoria’) para llegar En la mejor solución posible. Esto también acelera el tiempo de desarrollo, en comparación con escribir cada línea de código usted mismo, sin buscar ayuda en línea.

Como puede ver, siempre que pueda pensar lógicamente y eventualmente desarrollar aplicaciones eficientes que hagan lo que se supone que deben hacer, no importa si está buscando ayuda en línea, ya sea para sintaxis fáciles o difíciles.

Un área donde esto podría ser un problema es durante las entrevistas de trabajo. Algunos empleadores esperan que los candidatos escriban un código ‘sintácticamente correcto’ en la pizarra o papel. Sé que esta es una forma realmente tonta de entrevistar a los candidatos (porque la capacidad lógica importa mucho más que la sintaxis), pero es SU compañía, por lo que realmente no tenemos la autoridad para cuestionar sus métodos de entrevista.

¡Bienvenido al club!

He realizado proyectos en:

  • C, Objetivo-C, C #
  • Java
  • Javascript, Angular, Backbone
  • Rubí
  • Pitón
  • Perl
  • PHP
  • etcétera etcétera.

y eso ni siquiera es la mitad de las plataformas, a veces durante el mismo período. Oye, ni siquiera los recuerdo de la parte superior de mi cabeza, y mucho menos todos sus pequeños caprichos y convenciones.

Resultado: te acostumbras a uno, y eso interfiere con los demás. Por lo tanto, mi código Ruby la mayoría de las veces tiene puntos y coma innecesarios, porque son un reflejo de mi proyecto Java / C (los IDE modernos ayudan con eso). Python me sorprende con su paradigma de sangría-constituye-información cada vez que salgo de otro idioma, pero me toma un tiempo acostumbrarme y apreciar la limpieza. Acostumbrarse a la fealdad de Javascript es más difícil, pero bueno, todo tiene sus aspectos positivos y negativos.

Lo mismo aplica para varias convenciones. Entonces confieso, busco cosas básicas, repetidamente. cómo manejar diccionarios, matrices, comparar cadenas, etc., no porque no lo sepa, sino porque no puedo pensar en almacenar todas las variaciones en mi cabeza. Por lo general, es solo un recordatorio para ayudarme a cambiar el contexto y se queda conmigo el resto del tiempo. No siempre la web tampoco, sino algún libro de referencia.

Eso no siempre es sin frustración, pero vale la pena. También me basa en cierto sentido, ya que tengo más conocimiento del código. También se asegura de configurar un entorno de depuración adecuado.

Creo que, como desarrollador de software, uno debe ser lo suficientemente abstracto como para superar las diferencias en las plataformas y eso requiere no estar demasiado vinculado a ninguna de ellas. No menos importante porque nadie sabe dónde están en 3 años.

Comprender los conceptos subyacentes es mucho más importante. Y esos se quedan contigo. Oye, no he olvidado ciertas cosas de mis días de 6502-Assembler y todavía puedo usarlas.

Existe una compensación entre la seguridad de la rutina y la flexibilidad. Yo personalmente opto por lo posterior. Me preocuparía seriamente si supiera las diferencias específicas entre Visual Basic 17 y 18 o algunas oscuras iteraciones de PHP.

Ventaja, si un cliente quiere decir una API REST u otra cosa de mí, podré adaptarla a su plataforma, no a su plataforma en mi modo de trabajo. En realidad, elegir una plataforma está muy por debajo de la lista. Los requisitos reales y los procesos de trabajo son mucho más importantes para capturar primero: ahí es donde ahorra el tiempo que pasa cambiando de contexto.

Ninguna plataforma lo ayuda si el cliente no sabe lo que quiere.

Del episodio “Ensalada Waldorf” de Fawlty Towers :

Sr. Hamilton : Lo que estoy sugiriendo es que este lugar es el hotel más desaliñado, de mala calidad y peor gestionado de toda Europa occidental.
Mayor Gowen [ enojado ]: ¡No! No, no tendré eso. Hay un lugar en Eastbourne.

Casi cualquier codificador que no sea Saintly Perfect siempre buscará la sintaxis. Nadie debería sentir vergüenza, culpa o insuficiencia personal por eso. Le pasa a todo el mundo. (Sí, todavía estoy hablando de codificación).

Por lo general, mi patrón está buscando mucho al comienzo de un proyecto, especialmente si he pasado mucho tiempo sin usar los lenguajes y marcos específicos y especialmente si me veo obligado a usar versiones específicas de idiomas por una razón u otra. (Las versiones cambian. Por otro lado [si todavía puedo usar esa metáfora], a veces actualizar un servidor para permitir nuevas versiones es una molestia para algunas organizaciones). Una vez que obtengo o recupero mi confianza (lo que generalmente no toma largo), la mayor parte de mi búsqueda está dentro de mi propio código.

Los servidores cambian. Los navegadores cambian. Los idiomas cambian. Los marcos cambian. Mirar hacia arriba es inevitable para mantenerse al día con los cambios.

Si te sientes obligado a buscar algo en cualquier etapa de un proyecto o incluso a lo largo de todo un proyecto, estás lejos de estar entre los peores programadores del universo conocido. En lo que a mí respecta, tales distinciones deben reservarse para cualquier programador que voluntariamente, deliberada, conscientemente, trate conscientemente a cualquier otro programador, independientemente de su edad, educación, experiencia o conjunto de habilidades, como basura .

Aquí está mi experiencia y funciona para mí.

Nunca recuerdo nada

Como desarrollador java con más de 10 años de experiencia, nunca he recordado nada, ni siquiera el código para conectarme a la base de datos, escribir el archivo de registro … Pero cuando sea necesario, sé exactamente qué buscar en Google.

Comprender profundamente la visión general y la arquitectura.

Digamos que quiere construir un nuevo sitio web Spring MVC desde cero. ¿Qué tan rápido puedes escribir para codificar todas esas cosas? Voy a google y completo una aplicación básica después de menos de 10 minutos … No recuerdo fragmentos de código. Pero sé exactamente cómo funciona todo el sistema y cómo se integra con otros …

Atesoro el tiempo y solo confío en las cosas confiables

Si desea optimizar su código para fines de rendimiento, por ejemplo, ¿cuánto tiempo le lleva escribir el código y las pruebas? Vaya a google para encontrar las soluciones confiables … Se trata de productividad …

No reinventes la rueda

Cuando te asignan hacer algo o resolver un problema. Antes de esforzarse por desenterrar, vaya a google o pregunte a alguien para asegurarse de que alguien haya hecho algo similar. Ahorre tiempo, esfuerzo y más confianza.

Para ser honesto, después de ~ 15 años de programación PHP profesional, todavía no recuerdo una buena cantidad de los parámetros de la función.

Pero sé qué función usar dónde y cómo manejarlos para lograr incluso la solución más improbable / más loca a un problema molesto.

Creo que el espacio de memoria ahorrado al recordar estrictamente la sintaxis completa se usa mejor al recordar la lógica, los algoritmos, las soluciones comunes, las soluciones radicales, los diferentes enfoques.

Estos son mucho más críticos para resolver problemas o crear aplicaciones decentes que recordar una sintaxis dada en un segundo dado.

Creo que la tendencia también irá en esta dirección, ya que el mundo tecnológico y las tecnologías que estamos utilizando se están expandiendo y complicando cada año. Un desarrollador de pila completa necesita conocer muchas tecnologías diferentes y sus idiomas. Incluso los programadores especializados necesitan conocer varios lugares de uso común. Por ejemplo, un desarrollador de back-end que maneja el back-end de una aplicación de intranet corporativa que trata y se comunica con API de terceros también necesitará conocer la sintaxis, las peculiaridades y los ajustes de esas API.

El espacio de memoria es valioso y no es ilimitado.

Si tenemos los medios para no recordar la sintaxis pero sabemos qué usar cuándo y hacerlo bien, parece más productivo hacerlo, hoy y en el futuro previsible.

No soy profesional, pero siempre estoy en la misma situación.
Lo veo como una habilidad. Poder buscar rápidamente la solución en Google y hacer que funcione en segundos, es una habilidad muy valiosa hoy en día.
Nadie lo sabe todo. Es imposible recordar cada detalle, a menos que lo use todo el tiempo. Especialmente si trabaja con múltiples idiomas, marcos y herramientas.
Sitios como StackOverflow, Quora y otros están ahí para ayudarme todo el tiempo. Ni siquiera necesito preguntar nada allí, porque lo más probable es que alguien más lo haya hecho antes, y las respuestas ya están esperándome.

Así que no te desesperes. Creo que es muy normal.
Sin embargo, lo que es realmente importante es tener claros los conceptos generales.

No. Considere lo que debe saber para ser un desarrollador web, comenzando con el front end y trabajando hasta la base de datos:

  • HTML
  • CSS
  • JavaScript
  • Cualesquiera bibliotecas y frameworks de JavaScript que esté utilizando su trabajo
  • Lenguajes del lado del servidor, ya sea node.js o algo así como C # /. Net o PHP
  • Cualesquiera bibliotecas / frameworks que su trabajo esté usando en el lado del servidor
  • Alguna variedad de bases de datos e idiomas, como SQL Server y Transact-SQL

Ahora considere que cada una de estas tecnologías, marcos, bibliotecas e idiomas está en constante evolución, cambiando, de modo que partes de su solución pueden quedar obsoletas o suplantarse en cualquier momento. Y, lo que está utilizando en su trabajo en este momento podría cambiar completamente el próximo año, o cuando cambie de trabajo (por ejemplo, puede estar usando un poco de NoSQL en su próximo trabajo).
Creo que tendrías que estar loco para tratar de memorizar la sintaxis. Es mucho mejor saber qué puede hacer cada herramienta y tecnología, cómo resolver problemas con ellas y dónde obtener respuestas, en lugar de tratar de recordar los detalles arenosos de cómo funciona cada pieza de su pila. Es mucho mejor memorizar patrones de diseño y lo que funciona en la práctica que memorizar la sintaxis. Luego puede buscar “Cómo implementar ‘foo’ en ” y ser un buen desarrollador web que puede cambiar con los tiempos.

Creo que una gran cantidad de conocimiento sintáctico es memoria muscular de todos modos: una vez que lo ha usado mucho, lo sabe porque lo ha usado mucho, eso es todo. Las tres herramientas más importantes para aprender a hacer cosas nuevas en el desarrollo web, al menos en mi experiencia, han sido:

  • Stack Overflow y sitios similares, donde otros desarrolladores han encontrado los mismos problemas que usted, y con suerte, alguien ha publicado una solución.
  • GitHub y sitios similares, donde otros desarrolladores han creado bibliotecas que resuelven estos problemas, por lo que no tiene que resolver todos los problemas desde cero.
  • Ver código fuente de la página: este es el más grande. Cualquier desarrollador web ha aprendido cómo hacer las cosas al encontrar una página que se parece a lo que quiere hacer, y luego usó el navegador para mostrarles el origen de la página.

Los finalistas serían pastebins como JSFiddle y Plunkr, etc., pero si terminas en Stack Overflow, los encontrarás a su debido tiempo.

Lo hago cuando trabajo en programación TCP / IP o cuando trabajo en aplicaciones de Servidor / Cliente. No creo que seas un mal desarrollador por hacer eso.
Además de eso, compre un buen libro sobre patrones y recetas de C # y, combinado con las búsquedas de Google, podrá modificar y rediseñar patrones y recetas para satisfacer sus necesidades. En realidad, la mayoría de los textos sobre la arquitectura y los patrones de .NET reconocen que casi todos los problemas tenían un patrón / algoritmo de diseño existente que se puede rediseñar para su solución, lo siguiente me ayuda mucho cuando se diseña en C #:
Visual C # 2010 Recetas: un enfoque de solución de problemas: Allen Jones, Adam Freeman, Matthew MacDonald, Rakesh Rajan: 9781430225256: Amazon.com: Libros
C # Design Pattern Essentials: Tony Bevis: 9780956575869: Amazon.com: Libros
Microsoft .NET – Aplicaciones de arquitectura para la empresa (2ª edición) (Referencia del desarrollador): Dino Esposito, Andrea Saltarello: 9780735685352: Amazon.com: Libros
Leo mucho con respecto a los patrones de diseño de C # y la arquitectura de C #, también busco en Google al codificar, la mayoría de las veces rediseño y modifico los patrones y recetas existentes de lo que he leído en los libros de diseño y los manuales de mejores prácticas de arquitectura de C # . Creo que estás en el camino correcto también invierte tiempo en leer sobre diferentes recetas .NET. Leer de ninguna manera implica memorizar, pero estará familiarizado con las diferentes metodologías de diseño que puede utilizar para sus aplicaciones.

Estás bien. Llevo 35 años escribiendo software y hace mucho tiempo que dejé de memorizar la sintaxis. De hecho, cuando entrevisto a personas para trabajos de desarrollo, ya ni siquiera hago preguntas de codificación. Habilidades analíticas, pensamiento lateral, conocimiento de qué herramientas utilizar para qué tareas … son mucho más importantes que poder codificar una función de clasificación en una pizarra.

¿Estás seguro de que no puedes recordar la sintaxis del lenguaje de programación que estés usando? Es decir, cómo se ve una declaración “if”, cómo se escribe un ciclo “while”, etc. Eso sería preocupante. Pero buscar nombres de funciones, el orden de los parámetros, etc. es normal. Pero eso no es sintaxis.

No, pero naturalmente programar mucho hará que sea muy fácil recordar la sintaxis.

En general, la sintaxis de programación no significa mucho: la sintaxis puede cambiar con el tiempo (consulte JavaScript y cómo ES6 lo ha cambiado). Lo importante es que comprenda los fundamentos (algunos de estos son específicos de la sintaxis y otros no). Hay muchos sitios de documentación para facilitar la búsqueda de sintaxis por la única razón de que todos se olvidan y eso está bien.

Dicho esto, hablando desde la perspectiva del entrevistador, nunca castigaría a alguien por no conocer la sintaxis. Puede ser una señal de alerta para mí lo cómodos que están programando en ese lenguaje o con qué frecuencia programan en general, pero si saben cómo resolver el problema y tienen una idea general de cómo incluso seudocódigo, eso está lejos más valioso.

Inicialmente, incluso intenté mucho tratando de recordar las sintaxis de los lenguajes de programación. Pero pronto me di cuenta de que ese no era mi punto positivo tampoco y olvidé todo sobre los idiomas de una vez.
Eventualmente, solo importa si está realmente interesado en la programación, más bien todo el tiempo pensando en ciertas totalidades (sin recordar sintaxis o dibujar código del papel de otra persona). Identificar cuál es el código correcto (sintaxis real o secciones para un trabajo en particular) no lleva mucho tiempo gracias a Google, comunidades o documentos directos o tutoriales disponibles en los sitios respectivos (para algún idioma, marco, tecnología, ciencia …) para lo que se necesita y requiere habilidad proyectándose sabes identificar lo que se necesita.
Todos lo hacemos y probablemente no lo haría si nada cambiara y nos hubiésemos quedado en alguna literatura diciendo que son los únicos. Además, si esto fue un inconveniente, ¿por qué crees que tantos grandes constructores tecnológicos también pusieron los tutoriales o sus experimentos en sus sitios?

Un lenguaje de programación no es su lengua materna. Realmente se necesita mucho trabajo que la mayoría de la gente subestima para escribir un código muy bueno. Cuando usas google, te paras sobre los hombros de personas que han encontrado problemas similares en el pasado y que lucharon para obtener soluciones de larga data.

GOOGLE ON !!! .. PERO ENTIENDE LO QUE COPIA Y PEGA

Su enfoque nunca debe estar en la sintaxis. Aprende ‘n’ idiomas, por lo que habría un ‘n’ número de sintaxis para realizar un seguimiento. Ese sería un muy mal ejemplo de malgastar el espacio de memoria de su cerebro. En lo que respecta a mi opinión, diría que olvide la sintaxis y concéntrese más en la lógica.
Si se sienta para crear un nuevo algoritmo o una nueva solución a un problema, un buen desarrollador NUNCA se preocupará por la sintaxis o el idioma (aunque podría preocuparse por ello en etapas posteriores). En cambio, él / ella se preocupará más por CÓMO crear esa solución. Sintaxis todo lo que puede obtener fácilmente de Internet. No te preocupes por eso.

Los dominarás en tiempo extra.
Conozco personas que conocen varios idiomas y pueden recordar la sintaxis perfectamente. (psst … psst … tienen experiencia de 15-17 años).

Para responder a su pregunta, no es el peor desarrollador simplemente porque copió el código pegado de Google. Lee todas las respuestas. ¡Mira a Jeff Nelson! Si Jeff Nelson lo hace, entonces no deberías preocuparte por esto, supongo. 😛

Creo que esta es una habilidad poderosa para buscar soluciones rápidamente. Pero tiene sus efectos secundarios a largo plazo. Por ejemplo, no podrá hacer su trabajo si se pierde la conexión a Internet. Como usted es un desarrollador, debe tener la responsabilidad de construir un conocimiento sólido que lo haga codificar en todas las circunstancias. Por otro lado, este comportamiento puede afectar la calidad de su código, incluso si es correcto. Al final del día, su jefe verá fragmentos de código entornado. Millones de líneas para nada.

Una buena técnica que puede respaldar positivamente su comportamiento es: reescribir lo que encontró (no copiarlo y pegarlo). Después de repetir lo mismo, podrá escribir el mismo fragmento en el futuro sin preguntarle al Sr.Google.

Sería un escritor terrible si buscara en Google cada frase que escribiera y copie y pegue una buena de otra página web. Yo (la mayoría de las veces, al menos) tendría oraciones que fueran sintácticamente correctas, y significarían más o menos lo que yo quería que significaran. Tal vez el autocompletado de Google sea lo suficientemente bueno como para ser la base de la comunicación escrita (nota para mí: ¿mi próxima novela?)

Pero no sería ningún tipo de escritor sin tener una comprensión decente del vocabulario, la gramática y el estilo [elegir el idioma] (análogo en formas superpuestas con las bibliotecas de sintaxis y núcleo en lenguajes y entornos de programación). Todavía me gustaría consultar de vez en cuando un diccionario, diccionario de sinónimos o guía de estilo para refrescar mi memoria. Y me gustaría leer mucho para entender cómo funciona el lenguaje e internalizar diferentes patrones de significado.

Pero no creo que ignore intencionalmente el acuerdo verbo-sujeto, la declinación de los sustantivos, la conjugación de verbos, las reglas de pluralización, el orden de las palabras en las oraciones o la puntuación para hacer algún tipo de punto. Los ha memorizado en el idioma o idiomas reales en los que habla con fluidez. ¿Desea no tener fluidez en el idioma de su computadora?

Bueno o no, no está definido por si puedes memorizar la sintaxis. Pero dudo que un desarrollador que escribe una cantidad decente de código necesite google para sintaxis.
Hay muchas ventajas de memorizar la sintaxis.
1. Incrementar la productividad.
2. Aumente la velocidad de resolución de problemas, la imagen que está depurando es un problema en un entorno Linux, todo lo que tiene es VIM, al recordar la sintaxis le da ventaja para buscar y solucionar el problema de inmediato.

De hecho, me obligo intencionalmente a memorizar la sintaxis en mi desarrollo diario.

Se suponía que los hombres nunca debían saberlo todo. Por eso nació Google. !!

Hablando en una nota seria, la programación definitivamente no se trata de sintaxis, se trata de la capacidad de formular soluciones a los problemas. Por lo tanto, nunca debe preocuparse si olvida las sintaxis, no es la sintaxis lo que hace a un programador, es la capacidad de usar esa sintaxis para conectar soluciones.

Cortar y pegar puede llevarte bastante lejos. Honestamente, a veces pienso que nunca he escrito el código original, pero he cortado y pegado un par de millones de líneas.

More Interesting

Quiero crear un sitio web como GrubHub.com, ¿por dónde empiezo?

Necesito impartir un seminario en dos días sobre aplicaciones web. ¿Cuáles son las últimas tendencias?

Tengo 16 años y voy a estar haciendo experiencia laboral en una empresa que trabaja en el desarrollo web front-end. Necesito aprender a usar angular 2 con mecanografiado. ¿Cuál es la mejor forma de aprender angular?

Actualmente estoy aprendiendo HTML, CSS y JavaScript. ¿Se volverán obsoletos estos idiomas debido a sitios web como WordPress y Wix?

Me gustaría aprender un lenguaje que se compila en Javascript como mi primer lenguaje de programación completo. ¿Cuál debería aprender?

Quiero hacer un sitio similar a LinkedIn. Sin embargo, no estoy seguro de los pasos que necesito para hacer esto. ¿Alguien puede ayudarme con un punto de partida para esto?

He estado creando sitios web con PHP usando editores de texto. ¿Cómo empiezo a usar Laravel Framework? No tengo ningún conocimiento sobre su uso.

Quiero crear un sitio web donde publique blogs sobre mis proyectos personales. Además, deseo usar Python / Django. ¿Qué base de datos debo usar?

Tengo 28 años, ¿debería comenzar la universidad y estudiar Comp Sci o pasante?

Estoy planeando hacer un juego de navegador como Grepolis. ¿Qué necesito saber y qué lenguajes de programación debo usar?

Tengo un sitio de WordPress de membresía, y quiero migrar a una nueva versión del sitio, construir con RoR. ¿Son Jekyll / Middleman buenas soluciones para esto?

¿Cómo editar una casilla de verificación si está guardando las casillas de verificación en una sola columna en una base de datos, dado que una casilla de verificación desmarcada no se guardará en la base de datos? ¿Qué pasa si vas a editar esas casillas de verificación?

Quiero construir un PAAS, pero ¿por dónde empiezo?

Mi departamento en mi universidad aún no tiene un sitio web, así que hice un borrador en WordPress solo por diversión. Ahora puede ser compatible. ¿Cuál es mi papel ahora?

Estaba viendo a algunas personas en el código de YouTube, los temas de WordPress y todos sus archivos .PHP tenían HTML. ¿Por qué no usan .HTML para el tipo de archivo?