¿Cuáles son generalmente las diferencias en la calidad creadas por un desarrollador web experto en lugar de un desarrollador web principiante (si usan la misma pila)?

La carrera de un desarrollador web pasa por varias fases diferentes, dependiendo del tipo de problemas que enfrentan en el trabajo, durante la I + D, la construcción de proyectos paralelos, la ampliación de la infraestructura del servidor o el trabajo en sitios web de alto tráfico.

La experiencia no está bien definida ya que la industria de la ingeniería de software es bastante joven (especialmente cuando se habla de desarrollo web dada la reciente popularidad de las aplicaciones web en las últimas 2-3 décadas).

En términos generales, una aplicación grande con un equipo de 10 a 50 personas con experiencia diferente esbozaría fácilmente la competencia de los juniors en comparación con los seniors. Los desarrolladores web expertos prestan atención a los detalles, resuelven problemas comerciales específicos, se ocupan del rendimiento, la seguridad, la compatibilidad con versiones anteriores y la extensibilidad de una plataforma.

Los profesionales tienen una comprensión más profunda de la pila técnica y los diferentes elementos de la aplicación web, ya sea el motor de la base de datos, la configuración del servidor web, los marcos front-end u otra cosa. Ya han lanzado proyectos exitosos y recuerdan los desafíos enfrentados a lo largo de los años. Esto facilita la planificación y permite identificar los riesgos por adelantado, así como describir las posibles soluciones basadas en su impacto para el negocio y el desarrollo continuo del proyecto.

Bueno, ubicándome como principiante ya que tengo un poco más de 1 año de experiencia, el principal parámetro de diferencia que usaría es la “elasticidad del código”, que es una forma simple de decir cuán fácil es cambiar, crecer y mejorar el código. adaptar. Es mucho más fácil extender y modificar un código que se ha escrito (en el salón de Java para un ejemplo concreto) para una interfaz, en lugar de una implementación rígida y específica.
Al desacoplar completamente, o al menos tanto como sea posible, el código de una implementación específica, obtienes mucha flexibilidad … después de todo, todo lo que sabes es que algunas clases que implementarán una interfaz concreta específica deben implementar ciertos métodos, y Lo bueno es que no tiene que saber exactamente cómo se implementarán esos métodos, todo lo que sabe es que tendrá que proporcionar una implementación para ellos en algún momento. Pero la idea es que cuanto más tarde necesite vincularse a una implementación específica, mejor. ¿Por qué? Debido a que no tiene un código concreto que se vuelve dependiente de la implementación … en cierto modo, todo lo que tiene es un plano, y el rastreo a través de una serie de planos, no solo le brinda una mejor visión general del código, ya que lo hace simple de trabajar con … Al principio lleva tiempo, pero al final, resulta relativamente fácil entenderlo y es extremadamente poderoso.

Otra diferencia que puedo señalar es la facilidad con que se ajusta a una estructura de proyecto ya existente, sin destruir por completo sus ideas. El desarrollo de software, al menos desde mi experiencia hasta ahora, no se trata de ser un gran arquitecto que visualice la estructura perfecta del proyecto, sino que, en los niveles más bajos donde estoy ahora, se trata de poder ajustar su propio código a una estructura ya existente y aprender de ello y mejorar al adoptar una estructura ya existente que es diferente de lo que has visto antes …

La manera más simple de describir la diferencia es comparar el costo de cambiar el producto.

Contrata a un nuevo desarrollador, o le pide al mismo desarrollador que lo hizo que solucione un error, que cambie el estilo o que lo adapte a la versión más nueva del navegador.

Ahora, si el código se realizó correctamente, un pequeño cambio debería costar poco.

Si el trabajo no fue realizado por un desarrollador experimentado, revisan el código durante una semana y le dicen que es más barato tirarlo y reescribirlo desde cero que averiguar cómo funciona.

De repente, lo que el negocio pensaba que era un activo se convierte en responsabilidad.

Creo que es bastante dramático.

Otras respuestas han mencionado el costo de cambiar algo que se construyó (que es un gran indicador) pero también agregaré la capacidad de trabajar con el código de otras personas.

Cuando ingrese a un proyecto existente, el desarrollador más experimentado podrá descubrir lo que el tipo anterior tenía en mente cuando escribió ciertas cosas de cierta manera y trabajar con esas suposiciones y en gran medida dentro del mismo estilo, el principiante sugerirá una reescritura, y proceder a ‘hackear y recortar’ todo en torno a lo que está trabajando (a su vez, presenta muchos errores que el desarrollador anterior ya tenía en cuenta).

Cantidad de código requerida para realizar una tarea específica o implementar un diseño.

Cantidad de CSS innecesarios.

Seguridad del código (generalmente el código de fondo).

Qué tan bien se nombran las variables, funciones y clases css en relación a cómo se usan.

etc.

Piénselo como si dijera la diferencia entre un diseñador principiante de Fórmula Uno y un diseñador experto de Fórmula Uno.

¿Ves carreras de Fórmula Uno ganadas por diseñadores principiantes?