¿La velocidad de edición realmente importa para los desarrolladores de software?

Hay un argumento (algo de mala calidad) para la velocidad basado en alguna generalización de la ley de Little, que con suerte suena familiar de ser mencionado en una clase de sistemas operativos. Es decir, la cantidad de basura que necesita recordar es el producto de la cantidad de cosas que necesita hacer por el tiempo promedio que lleva terminarlas. Reduzca el tiempo para escribir, y ¡ puf , nunca mira fijamente un archivo preguntándose por qué lo abrió de nuevo!

OK, en realidad no (te advertí que el argumento era de mala calidad), porque muy pocos desarrolladores de software trabajan como una tienda minorista de un sistema operativo. Verá ganancias mucho mejores al comprender lo que está haciendo (y vamos, ¡tome notas para no tener que recordar!), En lugar de simplemente irrumpir en algún flujo de conciencia y quejarse de las personas que “interrumpen tu flujo “.

Eso sí, probablemente no te arrepentirás de aprender a escribir o simplemente practicar la resolución de problemas. Pero la forma más rápida de viajar a través de una ciudad con la que no está familiarizado es sacar un mapa y planificar su ruta, no dejar caer un pie en el acelerador.

ADVERTENCIA : esta respuesta puede parecer megalómana, pretenciosa o similar, pero no quiero jugar al juego del decoro.

Para que te hagas una idea: ¡yo era responsable de la validación central de SEPA para KBC cuando era un junior!
(La siguiente herramienta: página de inicio de sesión)
Como estudiante, hice QA y revisé el proceso de desarrollo y las políticas para Cetelem Bélgica (+ Automatización aquí y allá) …

Más detalles aquí: https://www.linkedin.com/in/chri


La velocidad no es un factor cuando piensas mucho en elaborar tu código.

Si lees mi código, lo encontrarás aficionado: muchos métodos simples. Incluso para un bucle que podría estar en línea con un “descanso”.

Pequeños objetos que son ridículos. Como 5 líneas en cada método.

Soy muy lento para escribir, pero al final del día, soy uno de los más productivos. Y tomo descansos …

Cuando las personas están en problemas o necesitan un impulso, dejo de hacer lo que estoy haciendo y les ayudo. A veces me recuerdan mi lenta velocidad de escritura. Cada vez, les recuerdo que vayan más despacio para evitar tener que regresar y reescribir.

Cuando codifico, no entienden de dónde viene el código. Escribo lentamente, presiono ejecutar … y funciona. Sin prueba y errores, sin variables perdidas. Se ejecuta y funciona.

Ahora, como revisor de control de calidad / código, ¡hago aún más! Todavía no escribo rápido.

Además, pienso muy rápido y puedo manejar más información que el Joe promedio (¡probado!). Aún así, no siento la necesidad de escribir más rápido. Ya estoy por encima del promedio considerando el trabajo. (En cantidad y calidad)

Ahora, si usted es promedio, la velocidad de escritura debe ser su principal preocupación. Esa es la única forma de hacer un máximo de pruebas y “modelar” a través del código. (Escribir mucho para hacer algo porque no tienes una visión clara. Entonces alguien como yo, un revisor, generalmente pasa y lo reescribe correctamente).

Más rápido y más profundo son tus pensamientos, menos importante se vuelve la velocidad de escritura. Es contrario a la intuición, pero proviene del hecho de que uno toma más tiempo al final para llegar a una buena solución por primera vez. Cuando no puede ver más adelante, escribe una gran cantidad de código que le dirá qué es bueno y qué es malo. Es como sentir tu entorno.

Cuando piensas rápido y profundo, puedes permitirte sentarte y hacerlo mentalmente. Por lo general, ver más preocupaciones ya que maneja más incógnitas a la vez y puede hacer muchas interconexiones. Cuando haya terminado de pensar, sabe qué escribir de la A a la Z y puede hacerlo a un ritmo más lento y con mayor confianza.

Esto es muy difícil de explicar.

Entonces, la respuesta real es: depende de cómo pienses. Si las cosas no están claras para usted y requieren una cantidad de pensamiento muy superior a lo que puede permitirse: escriba más rápido. Si las cosas hacen clic, puedes tomarte tu tiempo. Después de todo, ¿por qué presionarse cuando está peor, lo hará mejor que el promedio?

Ser rápido no significa que seas eficiente y que estés produciendo un producto que se pueda mantener.

Prefiero que alguien escriba un código bueno y limpio y luego sea rápido. En general, cada código debe mantenerse, actualizarse y ampliarse de vez en cuando.

Tener un código rápido mal escrito no ayuda mucho con los costos de mantenimiento. Si bien tener un código limpio y un conocimiento distribuido de ese código en el lugar de trabajo ayuda a un mejor mantenimiento.

Por lo que he aprendido hasta ahora, a la larga, necesitará pensar más en los costos de mantenimiento en lugar de los costos de desarrollo.

Dicho esto, uno que escriba código limpio y siga un cierto proceso (compartido por el equipo) para desarrollar su software, digamos alguna metodología de desarrollo ágil, debería tener un ciclo de vida de desarrollo aceptable.

La velocidad de edición es muy importante. Sin embargo, no creo que todos necesiten poder editar muy rápido.

Imagina que estás teniendo una conversación con amigos sobre tus pensamientos sobre una película que acabas de ver. Probablemente intentes conversar a la velocidad que estás pensando. Pero si eres una persona muy contemplativa, puedes hablar más despacio o elegir no hablar en absoluto mientras estás reuniendo tus pensamientos. ¡O tal vez estás hablando muy rápido porque estás emocionado y quieres poder decir todo lo que puedas tan rápido como puedas!

Ahora imagine que quiere expresar sus pensamientos muy rápido, pero por alguna razón no puede hablar a esa velocidad. ¿Crees que eso puede ser frustrante, no poder decir lo que piensas al ritmo que deseas?

Desde mi experiencia, funciona de la misma manera con la programación. Desea poder expresar sus pensamientos tan rápido como pueda escribirlos. Esta es la razón por la cual los editores de programadores han desarrollado muchos atajos de teclado, para que pueda expresar su lógica y estructura y navegar a través de ellos tan rápido como pueda pensar en ellos.

Si no puede codificar a la velocidad, puede pensar en el código, eso podría ser tan frustrante como no poder hablar a la velocidad que puede pensar en algún tema de conversación.

Lo compararía con escribir una novela. Si ya sabes lo que vas a escribir, o estás copiando una parte del libro, entonces la velocidad de escritura es útil. Pero cuando realmente tiene que crear todo desde cero, la mayor parte de su tiempo lo pasará anotando notas y caminando en círculos pensando cómo estructurar todo.

De manera similar con la codificación. Me encuentro pasando más tiempo pensando en cómo estructurar el código, dibujando diagramas y maquetas en lugar de escribir. Ocasionalmente ayuda a conocer el teclado y cómo trabajar con el editor de manera eficiente. Dicho esto, no estoy de acuerdo con las personas que se centran en la escritura rápida como el medio principal para evaluar a un buen programador.

No, no lo hace. Al menos no donde importa.

Un buen ingeniero es un ingeniero perezoso. Escriba menos, haga menos esfuerzo para lograr los mismos resultados, y luego se le pagará más. Así que realmente quieres escribir menos, no más rápido.

Como fot vim, ese es un lugar donde los segundos de tu vida van a morir. Es tan increíblemente ineficiente como editor de texto (y sí, trabajo mucho en una cocina tradicional), que en el mundo moderno solo lo usarías si eres uno de esos tipos “en mis días …”.

Escribe rápido cuando no lo piensa, y si no piensa en el código, probablemente sea porque escribe demasiado para la tarea en cuestión.

De todos modos, si eres un buen ingeniero, la velocidad de escritura no importará, y si eres un mal ingeniero, la escritura rápida no ayudará.

No se preocupe, probablemente sea útil poder escribir * razonablemente * rápido, pero conozco buenos programadores que son buenos mecanógrafos.

“Editar en vim” suena genial, pero en realidad solo es ser un buen mecanógrafo y poder trabajar con la aplicación Vim, no es especial, no es mágico, es solo un editor.

Use el editor que desee, realmente no importa.

Si.

Necesita aprender Vim / Emacs para saber cómo codificar más rápido.

Aprender a Vim lleva media hora, Emacs dos semanas. Son habilidades para toda la vida.

Acabado `vimtutor`. Solo lleva media hora. Los enlaces básicos de teclas vim son absolutamente suficientes para la mayoría de los desarrolladores.

Si desea obtener más información sobre las combinaciones de teclas, lea Cómo ser extremadamente eficiente en Emacs. Esta es una técnica moderna.

También puede seguir a los principales desarrolladores de Emacs en el mundo:

Emacs_lisp en todo el mundo | Premios Git

Comencé a codificar en 1988 y desde entonces he estado escribiendo regularmente. Incluso una vez tuve un trabajo en la oficina de correos (o como se llame ahora en Inglaterra) donde tuvimos que leer un código postal y escribirlo. Tuvimos que limpiar alrededor de 60 por minuto, lo que significaba que no teníamos que pensar conscientemente sobre lo que estábamos escribiendo. Los datos tuvieron que pasar de los ojos a la mano.

Ahora, por tiempo y práctica, puedo escribir en la oscuridad sin mirar las teclas y puedo escribir rápido. Me parece que el resultado final es que trabajo mucho más rápido, especialmente con el uso de atajos de teclado.

Sin embargo, cuando estoy cansado empiezo a cometer errores. Faltan llaves, faltas de ortografía, etc. y luego tengo que parar.

Creo que mi punto es que, si bien la velocidad es una consideración, la calidad es lo primero.

Yo uso Notepad ++ por cierto. Nunca podría sentirme cómodo con vim y poder editar y escribir una columna completa es perfecto. Debe usar lo que le resulte más cómodo y que también haga el trabajo.

Puede mejorar su velocidad de codificación con solo pasar más tiempo escribiendo; eventualmente llegará si aún no está allí, pero no se preocupe.

More Interesting

¿Con qué otras carreras funcionaría bien el conjunto de habilidades de un desarrollador web?

¿Qué herramienta de CI utiliza y por qué? ¿Qué 3 palabras usarías para describir la marca? ¿Cómo describirías las alternativas?

¿Qué quieren decir los ingenieros / desarrolladores de software con el código de calidad?

¿Cuáles son los diferentes dominios en el desarrollo de software?

Cómo comenzar a contribuir en proyectos de código abierto

Cómo entrevistar a un desarrollador de software senior, específicamente Java

En su experiencia, ¿cuáles fueron las preguntas más efectivas que le hizo al entrevistador al final de una entrevista para un puesto de ingeniero de software?

Cómo hacer cumplir la documentación del software del proyecto para que sea más fácil para los desarrolladores de software entrantes

¿Qué recursos puedo usar para obtener información sobre cómo iniciar sesión correctamente en mis programas?

Muchos trabajos de desarrollo de software requieren pruebas en línea en estos días. ¿Debo molestarme con las compañías que los requieren?

¿Cómo pueden los pasantes de ingeniería de software lograr impulsar el código a la producción en menos de 3 meses, dado que utilizan múltiples tecnologías, la mayoría de las cuales son utilizadas por primera vez?

Estoy en mis primeros 40 años; ¿Es tarde para mí volver a entrenar como desarrollador de Hadoop Software?

¿Puede una niña convertirse en desarrollador de software a la edad de 28 años?

¿Los desarrolladores de software depuran su propio código?

¿Qué diría un desarrollador de software sénior si no sabe la respuesta a una pregunta en una entrevista para un proyecto en el que trabajó?