¿Es una mala señal si, como programador / ingeniero de software, sientes que es casi inútil (y por lo tanto no estás tan motivado) construir algo común que ya se ha construido?

Recuerdo este sentimiento de mis primeros días de programación. Mi solución siempre fue tomar algún proyecto paralelo que fuera más ambicioso, incluso si estaba por encima de mis habilidades. Hacer esto es una buena manera de mejorar el conocimiento y la motivación, y para obtener un contexto para decir, por qué los algoritmos de clasificación son útiles.

La práctica, sin embargo, es muy importante. Es posible escribir cosas asombrosas usando solo funciones de biblioteca para todos los algoritmos críticos. Pero si estudias CS, es posible que algún día te conviertas en el chico / chica que escribe u optimiza las bibliotecas, y para ese propósito necesitas entender lo que está sucediendo debajo del capó.

También recuerdo haber tenido esta sensación (afortunadamente pocas ocasiones) en lugares de trabajo reales. Eso puede deberse a diferentes razones. Si se trata de una situación transitoria, como un deja vu, ya comencé un proyecto e hice esto y aquello, entonces está bien, supéralo. Si se trata más del objetivo general del proyecto, las cosas se vuelven más sombrías. ¿Es esta calculadora de alguna manera nueva o especial? ¿Permitirá que personas discapacitadas / niños / etc. hagan algo que no podrían hacer? ¿Permitirá a las personas hacer cálculos directamente en un documento de texto sin tener que abrir un programa diferente? Si la conclusión es que el producto que está desarrollando no hace nada nuevo, entonces puede ser el momento de cambiar de proyecto o buscar un trabajo diferente. La clave aquí es que si no aporta ningún valor nuevo a los clientes, entonces no tiene ningún potencial comercial. Esto eventualmente resultará en una escasez de fondos para el desarrollo. Sin embargo, asegúrese de hablar con sus compañeros / gerentes / fundadores para comprender los objetivos y la visión del proyecto. Es posible que tenga un nuevo giro que se le haya escapado de la vista, y lo hará mucho más valioso si comprende la visión del proyecto y puede trabajar activamente para lograrlo.

En mis estudios definitivamente sentí esto. Me volvía loco cuando los profesores me obligaban a hacer algo que básicamente era reinventar la rueda.

Sin embargo, cada vez que surgieron los proyectos que quedaron abiertos y pudimos decidir qué características queríamos construir, cómo diseñar la tecnología para resolver un problema, la verdadera libertad creativa para priorizar y decidir qué es importante, todos esos sentimientos desaparecieron.

Es sorprendente la diferencia de productividad: los proyectos abiertos que construí fueron 10 veces mejores que reinventar los proyectos al volante y tomaron la misma cantidad de días de trabajo (ciertamente muchas más horas porque no perdí tanto tiempo evitando hacer el trabajo que odiaba, y el tiempo dedicado a trabajar nunca tuvo ganas de trabajar).

Una vez que entré en mi carrera, miraba las cosas un poco diferente. En una empresa, alguien tiene que hacer el trabajo sucio. Y si usted es el jefe, ¿quiere contratar al ingeniero que solo hace las cosas divertidas o el que hará todo lo posible para hacer cualquier cosa para hacer el trabajo, incluso la tediosa validación de otro formulario web? -framework, el mismo flujo de trabajo de registro antiguo, tareas de corrección de errores de IE de 6 horas. Y luego, después de un tiempo, millones de personas comenzaron a usar ese tedioso software de trabajo (¡incluso lo pagaron! 🙂 En general, tal vez no fue tan reinventar el trabajo al volante después de todo.

Hay algo que decir para hacer el trabajo. A veces apesta, pero alguien tiene que hacerlo.

Me he metido bastante en la cadena de herramientas y la metaprogramación para ayudar a aliviar los aspectos más mundanos de “solo hacer tu trabajo”. Pero realmente solo llego a este nivel cuando me encuentro haciendo regularmente lo mismo en un número limitado de formas diferentes.

Nunca entenderé realmente la mentalidad del mono código que quiere seguir escribiendo la misma basura una y otra vez. (O, más específicamente, quién no supera los límites, aprende y crece, el mismo código basura vuelve a mejorar con poca o ninguna mejora, y tiene la actitud de que él o ella es “genial” debido a esto).

En cuanto a la motivación: si nunca hay nada nuevo que hacer, sigue adelante, encuentra algo o algún otro lugar que te presente un desafío. Nadie con una mente progresista debe ser relegado para continuar construyendo la misma basura una vez más. Mi experiencia con esto es que, por lo general, impulsa a mis personalidades de tipo de ventas mediocres y rítmicas sin originalidad.

“Esta es una gran idea que es nueva porque me inspiré en algo más: ahora haz que se vea, se sienta y funcione exactamente como el otro y le pondremos nuestro nombre y lo llamaremos un éxito o un fracaso y pondremos palabras de moda como ‘fundador ‘y’ CEO ‘en un currículum “. –
– No, nadie con medio cerebro para empezar se deja engañar por esto.

Entonces, para responder la pregunta más directamente: Todos somos un poco diferentes. Hay un valor en el mono de código que construirá lo mismo una vez más. Están por todas partes. Pero las personas que se aburren de hacer la misma basura una y otra vez deberían encontrar otro lugar donde la innovación y la libertad para desarrollarse y experimentar sean bienvenidas.

Hay una desventaja en hacer lo mismo una y otra vez: por lo general, viene con poco o ningún apoyo moral y, si presionas demasiado, demasiado tiempo para intentar hacer el trabajo … podrías ver o tener un desafío que te hubiera motivado una vez, mirándote fijamente y dejar en blanco. Como escritores, el bloque es para los escritores. Los codificadores también son bloqueados … generalmente agotados.

No menosprecio ni pienso menos en las personas que no están interesadas o motivadas para proporcionar continuamente una nueva forma de hacer algo que ya se ha hecho. De hecho, animo a las personas a desalentar este comportamiento. Conduce a demasiados códigos basura, lo que dificulta la vida y el trabajo de todos. Cada (nuevo) mono de código reescribe lo mismo una y otra vez de una manera diferente (debido a la falta de experiencia, a la capacidad de hacer preguntas o proporcionar una tutoría positiva y a buscar respuestas rápidas en lugar de aprender en profundidad).

¿Qué dice Monkeys en una habitación reescribiendo a Shakespeare?

Sí mucho, todavía me siento así. Pero, debe tener en cuenta que construir cosas pequeñas lo hará más competente en el lenguaje / marco y luego puede avanzar en la búsqueda de construir cosas más grandes y mejores.

Además, esto puede ser un signo de dilación, dando excusas para no construir algo pequeño con fines de aprendizaje.

No hay nada pequeño / grande hasta ya menos que aprenda algo de él. Así que comienza ahora, construye algunos proyectos y luego usa esa experiencia para construir algo grande.

Depende de lo que quieras decir, creo.

En las clases, por supuesto, existen tareas inútiles porque necesitas un problema conocido de forma cerrada para saber quién lo ha hecho bien. También es para asegurarse de que comprende ciertos conceptos en lugar de ahogarse en los detalles de un proyecto real.

Al principio de un trabajo, hay dos cosas a tener en cuenta:

  • Nadie te contratará para tu entretenimiento. Especialmente al principio de tu carrera (pero nunca no), te contratan para facilitar la vida de tus colegas haciendo el trabajo aburrido que no quieren hacer.
  • Su gerente no necesariamente sabe si se le puede confiar algo importante. Si arrastra los pies y se queja de los trabajos fáciles (o se vuelve pícaro y no se comunica con nadie), será difícil imaginar sus proyectos de abordaje en el camino crítico.

Entonces, básicamente, aprende a amarlo, al menos por un tiempo.

Más adelante en un trabajo, aún tendrá que volver a implementar las cosas. Si es algo que usted o la compañía han hecho antes, es una mala señal (o una oportunidad para automatizar algo). Si es algo que la empresa necesita, bueno, el mundo corporativo no siempre tiene el lujo de integrar el trabajo de terceros. En ese momento, es tu decisión si crees que es aceptable para tu carrera.

Gracias por A2A!
Piense en las mejoras que se pueden hacer en las aplicaciones existentes.
Si ya se ha creado una calculadora, debe agregarle algunas características más. Como dijiste, ” Siento que no tiene sentido porque esas cosas se han construido y refinado innumerables veces a lo largo de los años. Todo se refina solo para mejorar algo.
Si construyes algo nuevo , sería muy bueno.