Hola habr. Recientemente, discutí con un colega los estereotipos y mitos comunes que la industria de la programación ha adquirido. Me pareció que valía la pena escribir una publicación aquí, a pesar del material ya existente sobre este tema. Todos los que vengan, bienvenidos a cat.
Parece que una profesión tan racional y basada en la lógica es poco probable que sea susceptible a todo tipo de ficciones, pero la comunidad de desarrolladores aún se enfrenta a mitos tan generalizados que comienzan a penetrar en la realidad. Si todos estos mitos fueran ciertos, el mundo de la programación sería como una cohorte de geeks de 20 años que usan sus altas habilidades matemáticas para codificar en cualquier momento del día o de la noche. Si trabaja en este campo, lo más probable es que sepa que este no es el caso. Sin embargo, incluso los propios desarrolladores tienden a creer algunos prejuicios. Vamos a hacerlo bien.
1. Los buenos desarrolladores trabajan las 24 horas
A pesar de la renuencia a sucumbir al pensamiento estereotípico, una imagen de un chico aparece inmediatamente en su cabeza con ojos somnolientos y una energía en sus manos, como un atributo invariable de cualquier programador. Sí, hay algo de verdad en esto: a veces una fecha límite próxima requiere sacrificar el sueño, especialmente cuando se trata de nuevas empresas. Sin embargo, este no es siempre el caso.
Además, todos saben desde hace tiempo que la falta de sueño no aumenta la productividad, sino que ralentiza el proceso. Pocas personas están satisfechas con este estado de cosas, porque muchos desarrolladores tienen familiares, amigos y sus asuntos personales, a los que es más probable que dediquen su tiempo libre. En lugar de cultivar esta idea, la comunidad de programadores debería buscar otras formas de mejorar el flujo de trabajo y centrarse en la fijación de objetivos siguiendo la metodología ágil. Pocas personas están satisfechas con el trabajo "desgaste", y esto se aplica no solo a los programadores.
2. Cuantas más personas revisen el código, menos errores
Inventado por Eric S. Raymond, el aforismo "con suficientes ojos, todos los errores están en la superficie" implica una ventaja para el código abierto porque cualquier desarrollador puede revisarlo y corregirlo. En realidad, esto no es del todo cierto, porque los programas de código abierto tienen más usuarios que no pueden corregir errores en el código que personas que están dispuestas a contribuir. En pocas palabras, siete niñeras tienen un hijo sin ojo. La mejor solución en esta situación sería utilizar un equipo centrado en el problema con un buen software de seguimiento de errores.
3. Las habilidades matemáticas determinan las habilidades de desarrollo.
Sí y no, porque es imposible decir inequívocamente qué habilidades se convertirán en el factor determinante en su crecimiento profesional. Una adicción a las matemáticas no garantiza el cien por ciento de éxito, así como su ausencia no conduce al fracaso. Con la excepción de los juegos, la mayoría de los desarrolladores usan solo álgebra básica y estadísticas para descubrir la efectividad del código, pero es aquí donde se involucra el conocimiento fundamental.
4. Los desarrolladores son genios.
No tienes que ser un genio para ser un programador; solo tienes que tener motivación y la capacidad de aprender. Los errores son una parte integral del desarrollo profesional, e incluso los desarrolladores ingeniosos los hacen. Solo es importante poder transformarlos en lecciones útiles que le permitan mejorar sus habilidades.
5. Es suficiente dominar una cosa
El mundo de la programación está cambiando a la velocidad de la luz, lo que significa que siempre tendrá algo que aprender. Habiendo dominado solo un idioma, tarde o temprano quedará atrapado en un punto muerto que requerirá soluciones flexibles. Si deja de educar, se estancará y dejará de ser competitivo, así que prepárese para que tenga que mejorar a lo largo de su carrera.
6. El lenguaje X es mejor
La verdad es que no hay un lenguaje omnipotente para todo el desarrollo. Cada idioma ocupa un nicho específico en este entorno y está diseñado para fines específicos. Para el desarrollo de software interactivo, es más probable que el desarrollador use JavaScript, y para algo orientado a la velocidad de la tarea: C ++. Los argumentos sobre la superioridad de un idioma sobre otro son simplemente irrelevantes, porque cada uno de ellos se centra en tareas específicas que no tienen nada que ver con el sesgo personal.
7. Puedes dominar el idioma en unas pocas semanas.
No quisiera matar el entusiasmo de los principiantes, pero un par de semanas no será suficiente. Incluso si puede aprender los principios básicos del idioma en dos o tres semanas, para el resto necesitará mucha fuerza, perseverancia y práctica. En ausencia de interés y paciencia, no será suficiente por mucho tiempo, y es imposible dominar un gran conjunto de habilidades en poco tiempo.
Trace un paralelismo entre el trabajo de un programador y el trabajo de un médico: un cirujano sin experiencia no podrá llevar a cabo una operación exitosa sin una buena práctica detrás de él, al igual que un programador no escribirá código complejo sin el tiempo dedicado a estudiar todos los aspectos. En otras palabras, un buen desarrollador necesita desarrollar la memoria muscular tan mal como un cirujano.
8. Producción del producto en producción = fin del trabajo del proyecto
En realidad, el software rara vez se finaliza. Por supuesto, a los administradores y desarrolladores les gustaría creer que el gran software multinivel que crearon funcionará durante años muy largos. Sin embargo, con el tiempo, pueden aparecer nuevos problemas que deben corregirse, y las aplicaciones cambiarán y requerirán la adición de nuevas funciones, por lo que este proceso es interminable. Debe recordar los costos de soporte y mantenimiento, así como invertir en el desarrollo de innovación para mantener la competitividad.
9. La programación es solo escribir código
Muchas personas creen erróneamente que los desarrolladores simplemente están transformando ideas en código, sin comprender la esencia de las decisiones tomadas en el proceso de redacción. Esta es una gran idea errónea, porque en cada etapa los desarrolladores tienen que formar soluciones abstractas al problema y anticipar posibles errores incluso antes de que ocurran, y esto requiere un profundo conocimiento y comprensión del problema. Entre otras cosas, tienen que lidiar con muchos requisitos no funcionales y decisiones de diseño fallidas, y solo los buenos desarrolladores pueden rastrearlos y comunicarlos claramente al equipo, tomando decisiones más pequeñas por su cuenta.
10. La programación no es una actividad creativa.
Tal estereotipo se basa con mayor frecuencia en ideas superficiales de personas alejadas de esta área, porque escribir código, algoritmos y otros momentos del mundo de la programación parecen para un simple laico ser algo ajeno a la actividad creativa. Sí, la base de la programación puede llamarse indudablemente lógica y el campo científico y técnico del conocimiento, pero esto no niega su lado creativo. Hasta cierto punto, esto se puede llamar una forma de arte, porque muchos desarrolladores intentan diseñar el código de manera hermosa, estructurarlo y hacerlo más limpio. Esto no es más que un proceso creativo.
11. Los desarrolladores tienen pocas habilidades sociales.
Según muchas personas, los programadores son solitarios que están listos para pasar todo su tiempo libre a solas con su computadora, y tan pronto como se trata de la comunicación social, pierden su ingenio rápido y tienden a cerrarse del mundo exterior. Este mito puede vincularse con el primer punto.
Sin embargo, la posición de un programador, como cualquier otra, no lo convertirá en una fobia social insociable y es poco probable que afecte sus rasgos de carácter. Sucumbiendo a este estereotipo, muchos gerentes interactúan con los desarrolladores de tal manera que se subestima su contribución comunicativa. Cada desarrollador es un individuo con sus propios rasgos internos, y solo porque disfruten escribiendo código no significa que tengan miedo de las personas.
12. Los desarrolladores jóvenes se consideran los mejores especialistas.
Tal vez sea la edad, pero al principio de sus carreras, muchos desarrolladores tienden a pensar que son mejores que sus colegas experimentados. Han dominado las nuevas tecnologías que creen que son más productivas y, a su vez, más valiosas que el uso de plataformas más antiguas. De hecho, muchos desarrolladores aprenden nuevas tecnologías incluso a medida que crecen (de lo contrario, es difícil competir y mantener la demanda). Y los graduados recién educados a menudo pasan por alto un factor importante: la profundidad y amplitud de la experiencia que solo llega con el tiempo.
13. La programación es aburrida.
¿Dedicarías tu vida a lo que crees que es aburrido? La respuesta es obvia, todos determinan el alcance de sus intereses. La programación puede ser tan divertida como cualquier otra actividad porque es una mezcla de arquitectura, matemáticas y lenguaje. Las personas que encuentran aburrido el desarrollo no entienden todas las sutilezas. Pero los desarrolladores saben que el desarrollo es capacitación continua, la búsqueda de soluciones efectivas y la oportunidad de sentirse como el creador de algo importante y útil. ¿Qué tan aburrido puede ser?
14.Después de los 35, la carrera de desarrollador termina
El ageism es una parte muy real del mundo de la programación, pero la edad no es algo a lo que puedas renunciar en tu carrera. Las personas que están atrapadas en el mismo idioma o que no han podido dominar nuevas plataformas y tecnologías están contribuyendo a la confirmación de este mito.
Esto no significa que los desarrolladores abandonen por completo la programación después de los 35. Muchos pasan a puestos de liderazgo o crean sus propias empresas. Otros continúan aprendiendo y desarrollándose con amor por su causa a lo largo de sus carreras, es solo un deseo de recibir información relevante y monitorear los cambios en curso.
15. Los desarrolladores son una mercancía.
A menudo las personas piensan que mientras más líneas de código escriba un desarrollador, más productivo será, pero el desarrollo no es un obstáculo. Es una tontería contratar programadores más baratos y esperar que el trabajo se haga igual de bien. Los desarrolladores son principalmente personas. Cada uno de ellos tiene sus propias habilidades especiales, rasgos de personalidad y base de conocimiento. Como en el caso de los lenguajes, en algunos proyectos, los programadores pueden probarse a sí mismos mejor que en otros, lo que a su vez afectará la eficiencia del proceso de desarrollo.
Conclusión
Será interesante para mí escuchar acerca de los estereotipos ridículos con los que te has encontrado durante tu práctica (y estoy seguro de que hubo algunos de ellos). Deja tus opciones en los comentarios.