Como un codificador relativamente nuevo, mi código es un poco más largo que el de un programador experimentado en resolución de problemas. ¿Será esto un elemento disuasorio para los empleadores?

El código corto no es muy importante en mi lista de cosas que no me gustan. De hecho, no está en la lista en absoluto; a menudo el código corto es demasiado inteligente y el código inteligente es difícil de depurar.

Tenemos un dicho en mi oficina: “tienes que ser más inteligente para depurar el código que escribirlo; si estás escribiendo el código más inteligente que puedas, entonces, por definición, no eres lo suficientemente inteligente como para depurarlo”. Probablemente no sea del todo cierto, como dicen los refranes, pero esa es mi actitud hacia un código demasiado inteligente.

Por otro lado, el código repetitivo es malo. Esto a menudo se vilipendia como código “copiar y pegar”. La razón es esta: casi cada pieza de código se va a cambiar eventualmente. Lo más común es corregir un error, pero también podría ser parte de la refactorización, la mejora de los comentarios, etc. Sea lo que sea, el código repetitivo es muy difícil de mantener . Esto se debe a que el cambio generalmente tiene que ocurrir en cada copia del código, y un programador de mantenimiento rara vez nota las otras copias. Si su código es largo porque es repetitivo, ¡trate de encontrar formas de evitar la repetición! Por lo general, es mejor dividir la parte repetida en una función y luego llamar a la función en cada punto donde se copió el código original. ¡Esto suele ser cierto incluso si el segmento repetido solo se usa dos veces!

No es la longitud del código, sino la claridad del código y la facilidad de mantenimiento lo que importa. Si los nombres de sus variables y funciones dejan en claro cuáles son sus significados y unidades, bien. Si su código incluye pruebas automatizadas que exploran a fondo todos los casos, incluidas todas las condiciones de error, excelente. Si su código incluye comentarios que me ayudan a comprender sus intenciones (no solo lo que hace el código, sino lo que pretende que haga y por qué), excelente. Dicho código es fácil de modificar y es fácil distinguir los errores de las peculiaridades necesarias.

El código sucinto es mejor que el código largo si todo lo demás es igual. Pero tomaré una función larga y legible durante un breve estallido de sopa de puntuación cada vez.

Gracias por el A2A Brian.

No creo que tengas nada de qué preocuparte. El código seguro, claro y lento es mejor que el código corto y rápido ofuscado en la mayoría de los casos. Al final de un proyecto, usted o un programador senior puede optimizar el código largo, y a veces se puede acortar y agilizar, pero durante el 99% del tiempo de desarrollo, buscar errores en el código limpio es mucho menos doloroso que en código optimizado prematuramente, incluso si tiene buenos comentarios.

Sigue haciendo lo que estás haciendo y con el tiempo, naturalmente, mejorarás de todos modos. Siempre busque nuevas formas de mejorar su programación, pero los mejores programadores son los que tienen en cuenta el objetivo final / los plazos del proyecto y la facilidad de depuración / mantenimiento por parte de los colegas.

El código más corto es bueno solo si también es legible y rápido de ejecutar.

Puedes sacrificar la falta para ganar legibilidad.

Dicho esto, si tiene dudas sobre la calidad de su código, solicite una revisión de código de un colega, es una excelente manera de aprender y aumentar la calidad de su software.

Tu código mejorará. Pero sí, debería estar en tu mente. Cada línea adicional de código se convierte en una responsabilidad.

More Interesting

¿Cuándo Quicksort tiene su peor complejidad de tiempo de caso?

¿Cómo implementaría el ranking de respuestas de Quora?

Cómo mejorar en algoritmos, estructuras de datos y programación competitiva, solo por puro aprendizaje, así como por ubicaciones en empresas de primer nivel, en un año

¿Cómo podemos calcular el factorial de los primeros N números naturales usando la metaprogramación de plantilla en C ++?

¿En qué programas podemos practicar para comprender la programación y los algoritmos?

¿Los algoritmos de aprendizaje profundo representan métodos basados ​​en conjuntos?

¿Qué calcula este algoritmo? ¿Cuál es su funcionamiento básico? ¿Cuántas veces se ejecuta la operación básica? ¿Cuál es la clase de eficiencia de este algoritmo?

¿Cómo podemos encontrar el número de subcadenas palindrómicas en una cadena en tiempo lineal?

¿Pueden dos funciones hash criptográficas diferentes generar el mismo hash para la misma entrada?

¿Cuál es la diferencia entre un algoritmo basado en restricciones y un algoritmo basado en reglas?

¿Cuál es el mejor algoritmo para encontrar el camino con dos limitaciones?

En la industria, ¿con qué frecuencia se usa el algoritmo de compresión Lempel-Ziv-Welch?

¿Cómo se realiza la detección en el procesamiento de imágenes?

¿Cuáles son las mejores prácticas para usar algoritmos de Machine Learning con Android?

¿Es mejor hacer InterviewBit ahora (actualmente estoy en mi quinto semestre) o hacer SPOJ ahora y luego hacer InterviewBit solo 3 o 4 meses antes de las entrevistas? Solo conozco algunas estructuras de datos y algoritmos básicos. He hecho 40 problemas en SPOJ.